深入理解Apache Dubbo與實(shí)戰(zhàn)
定 價:79 元
- 作者:詣極
- 出版時間:2019/7/1
- ISBN:9787121366345
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP316.4
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書首先介紹Dubbo的簡史、后續(xù)的規(guī)劃和整體架構(gòu)大圖;接著介紹Dubbo環(huán)境配置,并基于Dubbo開發(fā)*款應(yīng)用程序;然后介紹Dubbo內(nèi)置的常用注冊中心的實(shí)現(xiàn)原理,Dubbo擴(kuò)展點(diǎn)加載的原理和實(shí)現(xiàn),Dubbo的啟動、服務(wù)暴露、服務(wù)消費(fèi)和優(yōu)雅停機(jī)的機(jī)制,Dubbo中RPC協(xié)議細(xì)節(jié)、編解碼和服務(wù)調(diào)用實(shí)現(xiàn)原理,Dubbo集群容錯、路由和負(fù)載均衡機(jī)制,Dubbo的擴(kuò)展點(diǎn)相關(guān)知識,Dubbo高級特性的實(shí)現(xiàn)和原理,Dubbo常用的Filter的實(shí)現(xiàn)原理,Dubbo中新增etcd3注冊中心的實(shí)戰(zhàn)內(nèi)容和Dubbo服務(wù)治理平臺的相關(guān)知識;*后介紹Dubbo未來生態(tài)和Dubbo Mesh的相關(guān)知識。
與官方文檔不同,官方文檔側(cè)重講解使用方法,《深入理解Apache Dubbo與實(shí)戰(zhàn)》主要側(cè)重于詳細(xì)解讀Dubbo框架工作原理和底層機(jī)制,并結(jié)合少量核心源碼進(jìn)行講解。在原理的基礎(chǔ)上,展示一些動手?jǐn)U展Dubbo特性的實(shí)戰(zhàn)場景,并對Dubbo的發(fā)展方向Dubbo Mesh做了一些探索。
序一
近年來,隨著業(yè)務(wù)規(guī)模的發(fā)展和復(fù)雜度的增加,傳統(tǒng)的單體應(yīng)用已經(jīng)很難適應(yīng)業(yè)務(wù)迭代的訴求,越來越多的公司開始進(jìn)行服務(wù)化的改造。很高興看到Apache Dubbo被許多公司采用,作為服務(wù)化改造的基礎(chǔ)架構(gòu)進(jìn)行演進(jìn)。這里面就包括了許多互聯(lián)網(wǎng)公司、國字頭的大型企業(yè),以及金融行業(yè)的巨頭公司。Apache Dubbo因為良好的設(shè)計和擴(kuò)展性受到許多開發(fā)者的歡迎,然而當(dāng)開發(fā)者需要深入了解Dubbo底層的架構(gòu)設(shè)計和實(shí)現(xiàn)的時候,往往會有些不知所措。網(wǎng)上也有很多愛好者撰寫的源碼分析等文章,雖有所有啟發(fā)和裨益,但總覺得不夠成體系。令人遺憾的是,市面上始終缺乏一本完整的、體系化的對Apache Dubbo進(jìn)行深入原理剖析的書。
本書的出現(xiàn)填補(bǔ)了這一空白,本書由淺入深,娓娓道來。既有對Dubbo基本概念的講解、底層原理的分析,同時又不乏生動的實(shí)戰(zhàn)內(nèi)容。作為進(jìn)階的內(nèi)容,對擴(kuò)展點(diǎn)、過濾器,以及Dubbo的高級特性,都有深入淺出的介紹。非常適合想了解Dubbo,對Dubbo內(nèi)部實(shí)現(xiàn)感興趣的讀者閱讀。
我和本書作者因為共同參與Dubbo社區(qū)而認(rèn)識,彼時Dubbo剛剛加入Apache基金會進(jìn)行孵化。在參與社區(qū)開發(fā)的過程中,經(jīng)常有過深入的交流,在此過程中,本書作者所展現(xiàn)出來的對Dubbo內(nèi)核機(jī)制透徹的理解,以及對細(xì)節(jié)的準(zhǔn)確把握,讓我受益匪淺。正式因為本書作者出色的貢獻(xiàn),他也成為Dubbo加入Apache孵化器之后首個committer(提交者,對代碼具有提交權(quán)限),后續(xù)更是成為首個PMC Member(項目管理委員會成員,對項目發(fā)展具有決定性的投票權(quán))。由他提筆來撰寫本書,我認(rèn)為再合適不過。在閱讀本書的過程中,我收獲頗豐。
工欲善其事,必先先利器。希望更多的讀者因為本書而受益,也希望有更多的人閱讀本書之后,了解Dubbo,參與到社區(qū)中,一起把社區(qū)發(fā)展得越來越好。
寫在Dubbo從Apache基金會畢業(yè)之際。
張乎興,阿里云技術(shù)專家,
Apache Member,Apache Dubbo/Tomcat PMC Member
序二
過去十多年互聯(lián)網(wǎng)產(chǎn)業(yè)的高速發(fā)展,在給社會帶來深刻變革的同時,也催生了服務(wù)架構(gòu)的演進(jìn):從傳統(tǒng)的單體應(yīng)用到面向服務(wù)的SOA,再到現(xiàn)今主流的微服務(wù)架構(gòu),而Apache Dubbo就是微服務(wù)領(lǐng)域中的先行者和佼佼者。
Apache Dubbo是阿里巴巴于于2011年開源的一款高性能Java RPC框架,開源伊始就在業(yè)界產(chǎn)生了很大的影響,被大量公司廣泛使用,甚至在很多公司自研的RPC框架中也能看到不少Dubbo的影子,可以說Dubbo在國內(nèi)服務(wù)化體系演進(jìn)過程中扮演了一個非常重要的角色。雖然中間經(jīng)歷了幾年時間的沉寂,不過2017年阿里巴巴又重啟了對Dubbo的開源維護(hù),受到了社區(qū)的廣泛歡迎,社區(qū)活躍度也隨之迅速提升,Dubbo也正在從一個微服務(wù)領(lǐng)域的高性能RPC框架,逐步演變?yōu)橐粋完整的微服務(wù)生態(tài)。
之前由于工作關(guān)系,對Dubbo有過比較深入的研究,在閱讀Dubbo的源碼過程中,深深體會到了作者的匠心設(shè)計和深厚功底。我們知道服務(wù)往往是一家公司技術(shù)體系中最核心的部分,是整個業(yè)務(wù)的基石,所以作為一款涵蓋了服務(wù)交互全過程的通用RPC框架,就必須能非常簡單、無侵入地支持業(yè)務(wù)對服務(wù)調(diào)用過程中的各個階段做擴(kuò)展和定制,比如通信協(xié)議、序列化格式、路由策略、負(fù)載均衡、監(jiān)控運(yùn)維等。而Dubbo通過微內(nèi)核設(shè)計、SPI擴(kuò)展的方式完美地解決了這一難題,不管是Dubbo自身的特性,還是業(yè)務(wù)方的擴(kuò)展,都統(tǒng)一通過SPI來實(shí)現(xiàn),在Dubbo內(nèi)核面前都是一等公民,從而保證了框架自身的可持續(xù)性和穩(wěn)定性。有特殊需求的業(yè)務(wù)或公司可以在不修改一行Dubbo源碼的情況下加載自己的擴(kuò)展或接入自己的產(chǎn)品和運(yùn)維體系,這一點(diǎn)非常值得我們學(xué)習(xí)。
和詣極認(rèn)識也是源于Dubbo,他是Apache Dubbo項目的PMC,為Dubbo貢獻(xiàn)了很多有價值的特性,如HTTP2協(xié)議、etcd注冊中心等,現(xiàn)在有幸成為同事,對他也有了更深的了解。在我看來,他是一個很純粹的技術(shù)人,熟讀眾多開源框架的源碼并對其原理了然于胸,對技術(shù)也充滿了熱情,能在工作非常飽和的情況下堅持完成本書的寫作,可見一斑。受其熱情感染,所以當(dāng)收到邀請為本書作序時,我也是毫不猶豫地就答應(yīng)了。
收到書稿后第一時間細(xì)細(xì)通讀了一遍,本書作為第一本體系化講解Apache Dubbo的書籍,深入淺出地解釋了Dubbo的工作原理,配以源碼級解析,向讀者展現(xiàn)了一款優(yōu)秀的分布式中間件的設(shè)計用心和實(shí)現(xiàn)細(xì)節(jié),非常適合有志于成為優(yōu)秀架構(gòu)師的技術(shù)愛好者細(xì)細(xì)閱讀和品味。同時本書在Dubbo的協(xié)議設(shè)計、編解碼原理、線程模型等方面也做了深度剖析,使讀者不僅知其然也能知其所以然,有助于理解分布式環(huán)境下的服務(wù)通信范式,對問題排查也會有很大益處。所以在此向大家推薦本書,相信不管是初學(xué)者還是有多年經(jīng)驗的資深工程師,通過閱讀本書,都會有所收獲。
宋順,螞蟻金服高級技術(shù)專家
開源配置中心Apollo作者
前言
本書的由來
在Apache Dubbo(以下簡稱Dubbo)重新開源之前,Dubbo已經(jīng)被很多公司廣泛用于生產(chǎn)環(huán)境并獲得了良好的反饋,很多公司內(nèi)部也會建立私有分支自己維護(hù),其中Dubbox就是基于Dubbo分支進(jìn)行擴(kuò)展并二次維護(hù)的。重新開源后,社區(qū)維護(hù)的Dubbo版本進(jìn)行了大量bug fix和特性支持,收到了大量Dubbo用戶的支持和參與。編寫本書的想法是在開源后提出來的,因此本書取名《深入理解Apache Dubbo與實(shí)戰(zhàn)》。
我最早接觸Dubbo是2015年在參與云基礎(chǔ)設(shè)施建設(shè)和微服務(wù)框架搭建時,那時的Dubbo基本是分布式系統(tǒng)的不二之選。我在使用過程中遇到了不少問題,不得不通過調(diào)試Dubbo源碼來解決。在源碼調(diào)試過程中,我逐漸理解Dubbo的設(shè)計理念,越發(fā)驚嘆其架構(gòu)設(shè)計的巧妙,正所謂:優(yōu)秀的設(shè)計萬里挑一。
后來我加入另外一家公司擔(dān)任架構(gòu)師,在基礎(chǔ)架構(gòu)組負(fù)責(zé)中間件與框架的研發(fā),也是基于Dubbo等框架做二次開發(fā)。此時,我與本書另一位作者詣極成為同事,我們志趣相投,也為編寫本書埋下了伏筆。
2017年,Dubbo經(jīng)歷了數(shù)年的停滯后,終于又重啟維護(hù)。我還依稀記得阿里巴巴公司宣布的那天詣極的興奮狀,詣極是首批投入Apache Dubbo開源工作中去的開發(fā)者,期間為Apache Dubbo貢獻(xiàn)了眾多特性,如HTTP 2、etcd注冊中心等,現(xiàn)在已經(jīng)成為Apache Dubbo PMC。
Dubbo在重啟維護(hù)后,短時間內(nèi)有了大量的更新。此時我正就職于螞蟻金服,每天苦于繁重的CRUD。我發(fā)現(xiàn)市面上沒有一本系統(tǒng)講解Dubbo的書籍,Dubbo相關(guān)的資料大都是一些博客文章,并且內(nèi)容也相對陳舊。于是我慫恿詣極與我一起寫這本書,作為這些年來工作的一個總結(jié),他也欣然答應(yīng)。
然后就是歷時半年的寫作過程,一波三折。中途有一些朋友加入,又因為各種不可抗拒的原因退出。我和詣極平時的工作都非常飽和,又要關(guān)注開源工作,常常焦頭爛額。道雖邇,不行不至;事雖小,不為不成。時間是一點(diǎn)一點(diǎn)擠出來的,最終我們還是堅持完成了本書,并且沒有偏離原計劃太多。由于時間緊迫和能力有限,本書的內(nèi)容難免有錯漏,讀者的勘誤可以發(fā)送到以下電子郵箱:
yiji@apache.org或315157973@qq.com。
面向的讀者
由于Dubbo重啟維護(hù)后,官方的使用文檔已經(jīng)非常詳細(xì),本書如果再講使用方法就沒有太多的意義,所以一開始就按源碼解析、設(shè)計原理說明的方向定位,因此需要讀者有一定的基礎(chǔ)。涉及源碼的講解,注定會有很多地方枯燥乏味,我們在編寫的時候也盡量用自己的語言去提煉總結(jié),讓讀者可以少看代碼。
在開始動筆編寫本書時,Apache Dubbo 2.7正在開發(fā)中,考慮到代碼的穩(wěn)定性,我們最終決定基于公開發(fā)布的2.6.5版本(release)來寫。當(dāng)本書快完成的時候,Apache Dubbo 2.7正式發(fā)布了。因此,本書的內(nèi)容并不是基于最新的代碼的,寫書的速度永遠(yuǎn)比不上框架更新的速度,也希望讀者能夠諒解。
本書內(nèi)容
第1章主要介紹Dubbo的簡史、后續(xù)的規(guī)劃和整體架構(gòu)大圖。
第2章主要介紹Dubbo的環(huán)境配置和基于Dubbo開發(fā)第一款應(yīng)用程序。
第3章主要介紹Dubbo內(nèi)置的常用注冊中心的實(shí)現(xiàn)原理。
第4章主要介紹Dubbo擴(kuò)展點(diǎn)加載的原理和實(shí)現(xiàn)。
第5章主要介紹Dubbo的配置解析、服務(wù)暴露、服務(wù)消費(fèi)和優(yōu)雅停機(jī)的機(jī)制。
第6章主要介紹Dubbo的RPC協(xié)議細(xì)節(jié)、編解碼和服務(wù)調(diào)用的實(shí)現(xiàn)原理。
第7章主要介紹Dubbo的集群容錯、路由和負(fù)載均衡機(jī)制。
第8章主要介紹Dubbo擴(kuò)展點(diǎn)的相關(guān)知識。
第9章主要介紹Dubbo高級特性的實(shí)現(xiàn)和原理。
第10章主要介紹Dubbo過濾器的實(shí)現(xiàn)原理。
第11章主要介紹Dubbo中新增的etcd3注冊中心的實(shí)戰(zhàn)內(nèi)容。
第12章主要介紹Dubbo服務(wù)治理平臺的相關(guān)知識。
第13章主要介紹Dubbo的未來生態(tài)和Dubbo Mesh相關(guān)知識。
致謝
首先感謝我的領(lǐng)導(dǎo)與同事,也感謝我的團(tuán)隊,你們給了我很大的幫助。
然后要感謝我妻子,在我寫作期間,她承擔(dān)了家里的大小事務(wù),讓我可以有更多的時間投入寫作。如果沒有妻子的支持,那么這本書我肯定是無法完成的。
商宗海,花名詣極,開源Dubbo核心開發(fā)者之一。曾就職于阿里巴巴、金蝶中國,F(xiàn)就職于有贊科技,擔(dān)任Dubbo框架技術(shù)負(fù)責(zé)人,參與中間件開發(fā),長期活躍在Dubbo社區(qū)。
目錄
第1章 Dubbo高性能RPC通信框架1
1.1 應(yīng)用架構(gòu)演進(jìn)過程1
1.1.1 單體應(yīng)用1
1.1.2 分布式應(yīng)用3
1.2 Dubbo簡介6
1.2.1 Dubbo的發(fā)展歷史7
1.2.2 Dubbo是什么7
1.2.3 Dubbo解決什么問題9
1.2.4 誰在使用Dubbo10
1.2.5 Dubbo后續(xù)的規(guī)劃11
1.3 Dubbo總體大圖11
1.3.1 Dubbo總體分層11
1.3.2 Dubbo核心組件12
1.3.3 Dubbo總體調(diào)用過程13
1.4 小結(jié)15
第2章 開發(fā)第一款Dubbo應(yīng)用程序16
2.1 配置開發(fā)環(huán)境16
2.1.1 下載并安裝JDK17
2.1.2 下載并安裝IDE17
2.1.3 下載并配置Maven18
2.1.4 下載并配置ZooKeeper18
2.1.5 使用IDEA調(diào)試Dubbo源碼18
2.2 基于XML配置實(shí)現(xiàn)21
2.2.1 編寫Echo服務(wù)器21
2.2.2 編寫Echo客戶端24
2.3 基于注解實(shí)現(xiàn)26
2.3.1 基于注解編寫Echo服務(wù)器26
2.3.2 基于注解編寫Echo客戶端28
2.4 基于API實(shí)現(xiàn)30
2.4.1 基于API編寫Echo服務(wù)器30
2.4.2 基于API編寫Echo客戶端31
2.5 構(gòu)建并運(yùn)行32
2.6 小結(jié)34
第3章 Dubbo注冊中心35
3.1 注冊中心概述35
3.1.1 工作流程36
3.1.2 數(shù)據(jù)結(jié)構(gòu)37
3.1.3 ZooKeeper原理概述37
3.1.4 Redis原理概述39
3.2 訂閱/發(fā)布40
3.2.1 ZooKeeper的實(shí)現(xiàn)40
3.2.2 Redis的實(shí)現(xiàn)44
3.3 緩存機(jī)制48
3.3.1 緩存的加載49
3.3.2 緩存的保存與更新50
3.4 重試機(jī)制50
3.5 設(shè)計模式51
3.5.1 模板模式51
3.5.2 工廠模式52
3.6 小結(jié)54
第4章 Dubbo擴(kuò)展點(diǎn)加載機(jī)制55
4.1 加載機(jī)制概述55
4.1.1 Java SPI56
4.1.2 擴(kuò)展點(diǎn)加載機(jī)制的改進(jìn)57
4.1.3 擴(kuò)展點(diǎn)的配置規(guī)范59
4.1.4 擴(kuò)展點(diǎn)的分類與緩存60
4.1.5 擴(kuò)展點(diǎn)的特性61
4.2 擴(kuò)展點(diǎn)注解62
4.2.1 擴(kuò)展點(diǎn)注解:@SPI62
4.2.2 擴(kuò)展點(diǎn)自適應(yīng)注解:@Adaptive63
4.2.3 擴(kuò)展點(diǎn)自動激活注解:@Activate65
4.3 ExtensionLoader的工作原理66
4.3.1 工作流程66
4.3.2 getExtension的實(shí)現(xiàn)原理67
4.3.3 getAdaptiveExtension的實(shí)現(xiàn)原理70
4.3.4 getActivateExtension的實(shí)現(xiàn)原理73
4.3.5 ExtensionFactory的實(shí)現(xiàn)原理73
4.4 擴(kuò)展點(diǎn)動態(tài)編譯的實(shí)現(xiàn)76
4.4.1 總體結(jié)構(gòu)77
4.4.2 Javassist動態(tài)代碼編譯78
4.4.3 JDK動態(tài)代碼編譯79
4.5 小結(jié)80
第5章 Dubbo啟停原理解析81
5.1 配置解析81
5.1.1 基于schema設(shè)計解析82
5.1.2 基于XML配置原理解析85
5.1.3 基于注解配置原理解析91
5.2 服務(wù)暴露的實(shí)現(xiàn)原理97
5.2.1 配置承載初始化97
5.2.2 遠(yuǎn)程服務(wù)的暴露機(jī)制97
5.2.3 本地服務(wù)的暴露機(jī)制105
5.3 服務(wù)消費(fèi)的實(shí)現(xiàn)原理106
5.3.1 單注冊中心消費(fèi)原理106
5.3.2 多注冊中心消費(fèi)原理113
5.3.3 直連服務(wù)消費(fèi)原理114
5.4 優(yōu)雅停機(jī)原理解析115
5.5 小結(jié)116
第6章 Dubbo遠(yuǎn)程調(diào)用117
6.1 Dubbo調(diào)用介紹117
6.2 Dubbo協(xié)議詳解119
6.3 編解碼器原理122
6.3.1 Dubbo協(xié)議編碼器123
6.3.2 Dubbo協(xié)議解碼器128
6.4 Telnet調(diào)用原理136
6.4.1 Telnet指令解析原理136
6.4.2 Telnet實(shí)現(xiàn)健康監(jiān)測140
6.5 ChannelHandler141
6.5.1 核心Handler和線程模型141
6.5.2 Dubbo請求響應(yīng)Handler145
6.5.3 Dubbo心跳Handler148
6.6 小結(jié)150
第7章 Dubbo集群容錯151
7.1 Cluster層概述151
7.2 容錯機(jī)制的實(shí)現(xiàn)153
7.2.1 容錯機(jī)制概述153
7.2.2 Cluster接口關(guān)系155
7.2.3 Failover策略157
7.2.4 Failfast策略158
7.2.5 Failsafe策略158
7.2.6 Failback策略159
7.2.7 Available策略160
7.2.8 Broadcast策略160
7.2.9 Forking策略161
7.3 Directory的實(shí)現(xiàn)162
7.3.1 總體實(shí)現(xiàn)162
7.3.2 RegistryDirectory的實(shí)現(xiàn)163
7.4 路由的實(shí)現(xiàn)166
7.4.1 路由的總體結(jié)構(gòu)166
7.4.2 條件路由的參數(shù)規(guī)則167
7.4.3 條件路由的實(shí)現(xiàn)168
7.4.4 文件路由的實(shí)現(xiàn)169
7.4.5 腳本路由的實(shí)現(xiàn)170
7.5 負(fù)載均衡的實(shí)現(xiàn)171
7.5.1 包裝后的負(fù)載均衡171
7.5.2 負(fù)載均衡的總體結(jié)構(gòu)173
7.5.3 Random負(fù)載均衡175
7.5.4 RoundRobin負(fù)載均衡176
7.5.5 LeastActive負(fù)載均衡178
7.5.6 一致性Hash負(fù)載均衡179
7.6 Merger的實(shí)現(xiàn)181
7.6.1 總體結(jié)構(gòu)181
7.6.2 MergeableClusterInvoker機(jī)制183
7.7 Mock185
7.7.1 Mock常見的使用方式185
7.7.2 Mock的總體結(jié)構(gòu)186
7.7.3 Mock的實(shí)現(xiàn)原理187
7.8 小結(jié)189
第8章 Dubbo擴(kuò)展點(diǎn)190
8.1 Dubbo核心擴(kuò)展點(diǎn)概述190
8.1.1 擴(kuò)展點(diǎn)的背景191
8.1.2 擴(kuò)展點(diǎn)整體架構(gòu)191
8.2 RPC層擴(kuò)展點(diǎn)192
8.2.1 Proxy層擴(kuò)展點(diǎn)192
8.2.2 Registry層擴(kuò)展點(diǎn)194
8.2.3 Cluster層擴(kuò)展點(diǎn)195
8.3 Remote層擴(kuò)展點(diǎn)198
8.3.1 Protocol層擴(kuò)展點(diǎn)199
8.3.2 Exchange層擴(kuò)展點(diǎn)202
8.3.3 Transport層擴(kuò)展點(diǎn)203
8.3.4 Serialize層擴(kuò)展點(diǎn)206
8.4 其他擴(kuò)展點(diǎn)207
第9章 Dubbo高級特性210
9.1 Dubbo高級特性概述210
9.2 服務(wù)分組和版本211
9.3 參數(shù)回調(diào)214
9.4 隱式參數(shù)217
9.5 異步調(diào)用218
9.6 泛化調(diào)用219
9.7 上下文信息220
9.8 Telnet操作221
9.9 Mock調(diào)用224
9.10 結(jié)果緩存226
9.11 小結(jié)226
第10章 Dubbo過濾器227
10.1 Dubbo過濾器概述227
10.1.1 過濾器的使用228
10.1.2 過濾器的總體結(jié)構(gòu)228
10.2 過濾器鏈初始化的實(shí)現(xiàn)原理231
10.3 服務(wù)提供者過濾器的實(shí)現(xiàn)原理233
10.3.1 AccessLogFilter的實(shí)現(xiàn)原理233
10.3.2 ExecuteLimitFilter的實(shí)現(xiàn)原理234
10.3.3 ClassLoaderFilter的實(shí)現(xiàn)原理235
10.3.4 ContextFilter的實(shí)現(xiàn)原理237
10.3.5 ExceptionFilter的實(shí)現(xiàn)原理237
10.3.6 TimeoutFilter的實(shí)現(xiàn)原理238
10.3.7 TokenFilter的實(shí)現(xiàn)原理238
10.3.8 TpsLimitFilter的實(shí)現(xiàn)原理239
10.4 消費(fèi)者過濾器的實(shí)現(xiàn)原理240
10.4.1 ActiveLimitFilter的實(shí)現(xiàn)原理240
10.4.2 ConsumerContextFilter的實(shí)現(xiàn)原理242
10.4.3 DeprecatedFilter的實(shí)現(xiàn)原理242
10.4.4 FutureFilter的實(shí)現(xiàn)原理243
10.5 小結(jié)243
第11章 Dubbo注冊中心擴(kuò)展實(shí)踐245
11.1 etcd背景介紹245
11.2 etcd數(shù)據(jù)結(jié)構(gòu)設(shè)計246
11.3 構(gòu)建可運(yùn)行的注冊中心248
11.3.1 擴(kuò)展Transporter實(shí)現(xiàn)248
11.3.2 擴(kuò)展RegistryFactory實(shí)現(xiàn)249
11.3.3 新增JEtcdClient實(shí)現(xiàn)250
11.3.4 擴(kuò)展FailbackRegistry實(shí)現(xiàn)260
11.3.5 編寫單元測試263
11.4 搭建etcd集群并在Dubbo中運(yùn)行263
11.4.1 單機(jī)啟動etcd264
11.4.2 集群啟動etcd265
11.5 小結(jié)266
第12章 Dubbo服務(wù)治理平臺267
12.1 服務(wù)治理平臺總體結(jié)構(gòu)267
12.2 服務(wù)治理平臺的實(shí)現(xiàn)原理269
12.3 小結(jié)273
第13章 Dubbo未來展望274
13.1 Dubbo未來生態(tài)274
13.1.1 開源現(xiàn)狀274
13.1.2 后續(xù)發(fā)展275
13.2 云原生281
13.2.1 面臨的挑戰(zhàn)281
13.2.2 Service Mesh簡介283
13.2.3 Dubbo Mesh284
13.3 小結(jié)285