關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
深入理解Apache Dubbo與實(shí)戰(zhàn)
本書(shū)首先介紹Dubbo的簡(jiǎn)史、后續(xù)的規(guī)劃和整體架構(gòu)大圖;接著介紹Dubbo環(huán)境配置,并基于Dubbo開(kāi)發(fā)*款應(yīng)用程序;然后介紹Dubbo內(nèi)置的常用注冊(cè)中心的實(shí)現(xiàn)原理,Dubbo擴(kuò)展點(diǎn)加載的原理和實(shí)現(xiàn),Dubbo的啟動(dòng)、服務(wù)暴露、服務(wù)消費(fèi)和優(yōu)雅停機(jī)的機(jī)制,Dubbo中RPC協(xié)議細(xì)節(jié)、編解碼和服務(wù)調(diào)用實(shí)現(xiàn)原理,Dubbo集群容錯(cuò)、路由和負(fù)載均衡機(jī)制,Dubbo的擴(kuò)展點(diǎn)相關(guān)知識(shí),Dubbo高級(jí)特性的實(shí)現(xiàn)和原理,Dubbo常用的Filter的實(shí)現(xiàn)原理,Dubbo中新增etcd3注冊(cè)中心的實(shí)戰(zhàn)內(nèi)容和Dubbo服務(wù)治理平臺(tái)的相關(guān)知識(shí);*后介紹Dubbo未來(lái)生態(tài)和Dubbo Mesh的相關(guān)知識(shí)。
與官方文檔不同,官方文檔側(cè)重講解使用方法,《深入理解Apache Dubbo與實(shí)戰(zhàn)》主要側(cè)重于詳細(xì)解讀Dubbo框架工作原理和底層機(jī)制,并結(jié)合少量核心源碼進(jìn)行講解。在原理的基礎(chǔ)上,展示一些動(dòng)手?jǐn)U展Dubbo特性的實(shí)戰(zhàn)場(chǎng)景,并對(duì)Dubbo的發(fā)展方向Dubbo Mesh做了一些探索。
序一
近年來(lái),隨著業(yè)務(wù)規(guī)模的發(fā)展和復(fù)雜度的增加,傳統(tǒng)的單體應(yīng)用已經(jīng)很難適應(yīng)業(yè)務(wù)迭代的訴求,越來(lái)越多的公司開(kāi)始進(jìn)行服務(wù)化的改造。很高興看到Apache Dubbo被許多公司采用,作為服務(wù)化改造的基礎(chǔ)架構(gòu)進(jìn)行演進(jìn)。這里面就包括了許多互聯(lián)網(wǎng)公司、國(guó)字頭的大型企業(yè),以及金融行業(yè)的巨頭公司。Apache Dubbo因?yàn)榱己玫脑O(shè)計(jì)和擴(kuò)展性受到許多開(kāi)發(fā)者的歡迎,然而當(dāng)開(kāi)發(fā)者需要深入了解Dubbo底層的架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)的時(shí)候,往往會(huì)有些不知所措。網(wǎng)上也有很多愛(ài)好者撰寫(xiě)的源碼分析等文章,雖有所有啟發(fā)和裨益,但總覺(jué)得不夠成體系。令人遺憾的是,市面上始終缺乏一本完整的、體系化的對(duì)Apache Dubbo進(jìn)行深入原理剖析的書(shū)。 本書(shū)的出現(xiàn)填補(bǔ)了這一空白,本書(shū)由淺入深,娓娓道來(lái)。既有對(duì)Dubbo基本概念的講解、底層原理的分析,同時(shí)又不乏生動(dòng)的實(shí)戰(zhàn)內(nèi)容。作為進(jìn)階的內(nèi)容,對(duì)擴(kuò)展點(diǎn)、過(guò)濾器,以及Dubbo的高級(jí)特性,都有深入淺出的介紹。非常適合想了解Dubbo,對(duì)Dubbo內(nèi)部實(shí)現(xiàn)感興趣的讀者閱讀。 我和本書(shū)作者因?yàn)楣餐瑓⑴cDubbo社區(qū)而認(rèn)識(shí),彼時(shí)Dubbo剛剛加入Apache基金會(huì)進(jìn)行孵化。在參與社區(qū)開(kāi)發(fā)的過(guò)程中,經(jīng)常有過(guò)深入的交流,在此過(guò)程中,本書(shū)作者所展現(xiàn)出來(lái)的對(duì)Dubbo內(nèi)核機(jī)制透徹的理解,以及對(duì)細(xì)節(jié)的準(zhǔn)確把握,讓我受益匪淺。正式因?yàn)楸緯?shū)作者出色的貢獻(xiàn),他也成為Dubbo加入Apache孵化器之后首個(gè)committer(提交者,對(duì)代碼具有提交權(quán)限),后續(xù)更是成為首個(gè)PMC Member(項(xiàng)目管理委員會(huì)成員,對(duì)項(xiàng)目發(fā)展具有決定性的投票權(quán))。由他提筆來(lái)撰寫(xiě)本書(shū),我認(rèn)為再合適不過(guò)。在閱讀本書(shū)的過(guò)程中,我收獲頗豐。 工欲善其事,必先先利器。希望更多的讀者因?yàn)楸緯?shū)而受益,也希望有更多的人閱讀本書(shū)之后,了解Dubbo,參與到社區(qū)中,一起把社區(qū)發(fā)展得越來(lái)越好。 寫(xiě)在Dubbo從Apache基金會(huì)畢業(yè)之際。 張乎興,阿里云技術(shù)專(zhuān)家, Apache Member,Apache Dubbo/Tomcat PMC Member 序二 過(guò)去十多年互聯(lián)網(wǎng)產(chǎn)業(yè)的高速發(fā)展,在給社會(huì)帶來(lái)深刻變革的同時(shí),也催生了服務(wù)架構(gòu)的演進(jìn):從傳統(tǒng)的單體應(yīng)用到面向服務(wù)的SOA,再到現(xiàn)今主流的微服務(wù)架構(gòu),而Apache Dubbo就是微服務(wù)領(lǐng)域中的先行者和佼佼者。 Apache Dubbo是阿里巴巴于于2011年開(kāi)源的一款高性能Java RPC框架,開(kāi)源伊始就在業(yè)界產(chǎn)生了很大的影響,被大量公司廣泛使用,甚至在很多公司自研的RPC框架中也能看到不少Dubbo的影子,可以說(shuō)Dubbo在國(guó)內(nèi)服務(wù)化體系演進(jìn)過(guò)程中扮演了一個(gè)非常重要的角色。雖然中間經(jīng)歷了幾年時(shí)間的沉寂,不過(guò)2017年阿里巴巴又重啟了對(duì)Dubbo的開(kāi)源維護(hù),受到了社區(qū)的廣泛歡迎,社區(qū)活躍度也隨之迅速提升,Dubbo也正在從一個(gè)微服務(wù)領(lǐng)域的高性能RPC框架,逐步演變?yōu)橐粋(gè)完整的微服務(wù)生態(tài)。 之前由于工作關(guān)系,對(duì)Dubbo有過(guò)比較深入的研究,在閱讀Dubbo的源碼過(guò)程中,深深體會(huì)到了作者的匠心設(shè)計(jì)和深厚功底。我們知道服務(wù)往往是一家公司技術(shù)體系中最核心的部分,是整個(gè)業(yè)務(wù)的基石,所以作為一款涵蓋了服務(wù)交互全過(guò)程的通用RPC框架,就必須能非常簡(jiǎn)單、無(wú)侵入地支持業(yè)務(wù)對(duì)服務(wù)調(diào)用過(guò)程中的各個(gè)階段做擴(kuò)展和定制,比如通信協(xié)議、序列化格式、路由策略、負(fù)載均衡、監(jiān)控運(yùn)維等。而Dubbo通過(guò)微內(nèi)核設(shè)計(jì)、SPI擴(kuò)展的方式完美地解決了這一難題,不管是Dubbo自身的特性,還是業(yè)務(wù)方的擴(kuò)展,都統(tǒng)一通過(guò)SPI來(lái)實(shí)現(xiàn),在Dubbo內(nèi)核面前都是一等公民,從而保證了框架自身的可持續(xù)性和穩(wěn)定性。有特殊需求的業(yè)務(wù)或公司可以在不修改一行Dubbo源碼的情況下加載自己的擴(kuò)展或接入自己的產(chǎn)品和運(yùn)維體系,這一點(diǎn)非常值得我們學(xué)習(xí)。 和詣極認(rèn)識(shí)也是源于Dubbo,他是Apache Dubbo項(xiàng)目的PMC,為Dubbo貢獻(xiàn)了很多有價(jià)值的特性,如HTTP2協(xié)議、etcd注冊(cè)中心等,現(xiàn)在有幸成為同事,對(duì)他也有了更深的了解。在我看來(lái),他是一個(gè)很純粹的技術(shù)人,熟讀眾多開(kāi)源框架的源碼并對(duì)其原理了然于胸,對(duì)技術(shù)也充滿(mǎn)了熱情,能在工作非常飽和的情況下堅(jiān)持完成本書(shū)的寫(xiě)作,可見(jiàn)一斑。受其熱情感染,所以當(dāng)收到邀請(qǐng)為本書(shū)作序時(shí),我也是毫不猶豫地就答應(yīng)了。 收到書(shū)稿后第一時(shí)間細(xì)細(xì)通讀了一遍,本書(shū)作為第一本體系化講解Apache Dubbo的書(shū)籍,深入淺出地解釋了Dubbo的工作原理,配以源碼級(jí)解析,向讀者展現(xiàn)了一款優(yōu)秀的分布式中間件的設(shè)計(jì)用心和實(shí)現(xiàn)細(xì)節(jié),非常適合有志于成為優(yōu)秀架構(gòu)師的技術(shù)愛(ài)好者細(xì)細(xì)閱讀和品味。同時(shí)本書(shū)在Dubbo的協(xié)議設(shè)計(jì)、編解碼原理、線(xiàn)程模型等方面也做了深度剖析,使讀者不僅知其然也能知其所以然,有助于理解分布式環(huán)境下的服務(wù)通信范式,對(duì)問(wèn)題排查也會(huì)有很大益處。所以在此向大家推薦本書(shū),相信不管是初學(xué)者還是有多年經(jīng)驗(yàn)的資深工程師,通過(guò)閱讀本書(shū),都會(huì)有所收獲。 宋順,螞蟻金服高級(jí)技術(shù)專(zhuān)家 開(kāi)源配置中心Apollo作者 前言 本書(shū)的由來(lái) 在Apache Dubbo(以下簡(jiǎn)稱(chēng)Dubbo)重新開(kāi)源之前,Dubbo已經(jīng)被很多公司廣泛用于生產(chǎn)環(huán)境并獲得了良好的反饋,很多公司內(nèi)部也會(huì)建立私有分支自己維護(hù),其中Dubbox就是基于Dubbo分支進(jìn)行擴(kuò)展并二次維護(hù)的。重新開(kāi)源后,社區(qū)維護(hù)的Dubbo版本進(jìn)行了大量bug fix和特性支持,收到了大量Dubbo用戶(hù)的支持和參與。編寫(xiě)本書(shū)的想法是在開(kāi)源后提出來(lái)的,因此本書(shū)取名《深入理解Apache Dubbo與實(shí)戰(zhàn)》。 我最早接觸Dubbo是2015年在參與云基礎(chǔ)設(shè)施建設(shè)和微服務(wù)框架搭建時(shí),那時(shí)的Dubbo基本是分布式系統(tǒng)的不二之選。我在使用過(guò)程中遇到了不少問(wèn)題,不得不通過(guò)調(diào)試Dubbo源碼來(lái)解決。在源碼調(diào)試過(guò)程中,我逐漸理解Dubbo的設(shè)計(jì)理念,越發(fā)驚嘆其架構(gòu)設(shè)計(jì)的巧妙,正所謂:優(yōu)秀的設(shè)計(jì)萬(wàn)里挑一。 后來(lái)我加入另外一家公司擔(dān)任架構(gòu)師,在基礎(chǔ)架構(gòu)組負(fù)責(zé)中間件與框架的研發(fā),也是基于Dubbo等框架做二次開(kāi)發(fā)。此時(shí),我與本書(shū)另一位作者詣極成為同事,我們志趣相投,也為編寫(xiě)本書(shū)埋下了伏筆。 2017年,Dubbo經(jīng)歷了數(shù)年的停滯后,終于又重啟維護(hù)。我還依稀記得阿里巴巴公司宣布的那天詣極的興奮狀,詣極是首批投入Apache Dubbo開(kāi)源工作中去的開(kāi)發(fā)者,期間為Apache Dubbo貢獻(xiàn)了眾多特性,如HTTP 2、etcd注冊(cè)中心等,現(xiàn)在已經(jīng)成為Apache Dubbo PMC。 Dubbo在重啟維護(hù)后,短時(shí)間內(nèi)有了大量的更新。此時(shí)我正就職于螞蟻金服,每天苦于繁重的CRUD。我發(fā)現(xiàn)市面上沒(méi)有一本系統(tǒng)講解Dubbo的書(shū)籍,Dubbo相關(guān)的資料大都是一些博客文章,并且內(nèi)容也相對(duì)陳舊。于是我慫恿詣極與我一起寫(xiě)這本書(shū),作為這些年來(lái)工作的一個(gè)總結(jié),他也欣然答應(yīng)。 然后就是歷時(shí)半年的寫(xiě)作過(guò)程,一波三折。中途有一些朋友加入,又因?yàn)楦鞣N不可抗拒的原因退出。我和詣極平時(shí)的工作都非常飽和,又要關(guān)注開(kāi)源工作,常常焦頭爛額。道雖邇,不行不至;事雖小,不為不成。時(shí)間是一點(diǎn)一點(diǎn)擠出來(lái)的,最終我們還是堅(jiān)持完成了本書(shū),并且沒(méi)有偏離原計(jì)劃太多。由于時(shí)間緊迫和能力有限,本書(shū)的內(nèi)容難免有錯(cuò)漏,讀者的勘誤可以發(fā)送到以下電子郵箱: yiji@apache.org或315157973@qq.com。 面向的讀者 由于Dubbo重啟維護(hù)后,官方的使用文檔已經(jīng)非常詳細(xì),本書(shū)如果再講使用方法就沒(méi)有太多的意義,所以一開(kāi)始就按源碼解析、設(shè)計(jì)原理說(shuō)明的方向定位,因此需要讀者有一定的基礎(chǔ)。涉及源碼的講解,注定會(huì)有很多地方枯燥乏味,我們?cè)诰帉?xiě)的時(shí)候也盡量用自己的語(yǔ)言去提煉總結(jié),讓讀者可以少看代碼。 在開(kāi)始動(dòng)筆編寫(xiě)本書(shū)時(shí),Apache Dubbo 2.7正在開(kāi)發(fā)中,考慮到代碼的穩(wěn)定性,我們最終決定基于公開(kāi)發(fā)布的2.6.5版本(release)來(lái)寫(xiě)。當(dāng)本書(shū)快完成的時(shí)候,Apache Dubbo 2.7正式發(fā)布了。因此,本書(shū)的內(nèi)容并不是基于最新的代碼的,寫(xiě)書(shū)的速度永遠(yuǎn)比不上框架更新的速度,也希望讀者能夠諒解。 本書(shū)內(nèi)容 第1章主要介紹Dubbo的簡(jiǎn)史、后續(xù)的規(guī)劃和整體架構(gòu)大圖。 第2章主要介紹Dubbo的環(huán)境配置和基于Dubbo開(kāi)發(fā)第一款應(yīng)用程序。 第3章主要介紹Dubbo內(nèi)置的常用注冊(cè)中心的實(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的集群容錯(cuò)、路由和負(fù)載均衡機(jī)制。 第8章主要介紹Dubbo擴(kuò)展點(diǎn)的相關(guān)知識(shí)。 第9章主要介紹Dubbo高級(jí)特性的實(shí)現(xiàn)和原理。 第10章主要介紹Dubbo過(guò)濾器的實(shí)現(xiàn)原理。 第11章主要介紹Dubbo中新增的etcd3注冊(cè)中心的實(shí)戰(zhàn)內(nèi)容。 第12章主要介紹Dubbo服務(wù)治理平臺(tái)的相關(guān)知識(shí)。 第13章主要介紹Dubbo的未來(lái)生態(tài)和Dubbo Mesh相關(guān)知識(shí)。 致謝 首先感謝我的領(lǐng)導(dǎo)與同事,也感謝我的團(tuán)隊(duì),你們給了我很大的幫助。 然后要感謝我妻子,在我寫(xiě)作期間,她承擔(dān)了家里的大小事務(wù),讓我可以有更多的時(shí)間投入寫(xiě)作。如果沒(méi)有妻子的支持,那么這本書(shū)我肯定是無(wú)法完成的。
商宗海,花名詣極,開(kāi)源Dubbo核心開(kāi)發(fā)者之一。曾就職于阿里巴巴、金蝶中國(guó),F(xiàn)就職于有贊科技,擔(dān)任Dubbo框架技術(shù)負(fù)責(zé)人,參與中間件開(kāi)發(fā),長(zhǎng)期活躍在Dubbo社區(qū)。
目錄
第1章 Dubbo高性能RPC通信框架1 1.1 應(yīng)用架構(gòu)演進(jìn)過(guò)程1 1.1.1 單體應(yīng)用1 1.1.2 分布式應(yīng)用3 1.2 Dubbo簡(jiǎn)介6 1.2.1 Dubbo的發(fā)展歷史7 1.2.2 Dubbo是什么7 1.2.3 Dubbo解決什么問(wèn)題9 1.2.4 誰(shuí)在使用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)用過(guò)程13 1.4 小結(jié)15 第2章 開(kāi)發(fā)第一款Dubbo應(yīng)用程序16 2.1 配置開(kāi)發(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 編寫(xiě)Echo服務(wù)器21 2.2.2 編寫(xiě)Echo客戶(hù)端24 2.3 基于注解實(shí)現(xiàn)26 2.3.1 基于注解編寫(xiě)Echo服務(wù)器26 2.3.2 基于注解編寫(xiě)Echo客戶(hù)端28 2.4 基于API實(shí)現(xiàn)30 2.4.1 基于API編寫(xiě)Echo服務(wù)器30 2.4.2 基于API編寫(xiě)Echo客戶(hù)端31 2.5 構(gòu)建并運(yùn)行32 2.6 小結(jié)34 第3章 Dubbo注冊(cè)中心35 3.1 注冊(cè)中心概述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è)計(jì)模式51 3.5.1 模板模式51 3.5.2 工廠(chǎng)模式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)的分類(lèi)與緩存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)自動(dòng)激活注解:@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)動(dòng)態(tài)編譯的實(shí)現(xiàn)76 4.4.1 總體結(jié)構(gòu)77 4.4.2 Javassist動(dòng)態(tài)代碼編譯78 4.4.3 JDK動(dòng)態(tài)代碼編譯79 4.5 小結(jié)80 第5章 Dubbo啟停原理解析81 5.1 配置解析81 5.1.1 基于schema設(shè)計(jì)解析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 單注冊(cè)中心消費(fèi)原理106 5.3.2 多注冊(cè)中心消費(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)測(cè)140 6.5 ChannelHandler141 6.5.1 核心Handler和線(xiàn)程模型141 6.5.2 Dubbo請(qǐng)求響應(yīng)Handler145 6.5.3 Dubbo心跳Handler148 6.6 小結(jié)150 第7章 Dubbo集群容錯(cuò)151 7.1 Cluster層概述151 7.2 容錯(cuò)機(jī)制的實(shí)現(xiàn)153 7.2.1 容錯(cuò)機(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常見(jiàn)的使用方式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高級(jí)特性210 9.1 Dubbo高級(jí)特性概述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過(guò)濾器227 10.1 Dubbo過(guò)濾器概述227 10.1.1 過(guò)濾器的使用228 10.1.2 過(guò)濾器的總體結(jié)構(gòu)228 10.2 過(guò)濾器鏈初始化的實(shí)現(xiàn)原理231 10.3 服務(wù)提供者過(guò)濾器的實(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)者過(guò)濾器的實(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注冊(cè)中心擴(kuò)展實(shí)踐245 11.1 etcd背景介紹245 11.2 etcd數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)246 11.3 構(gòu)建可運(yùn)行的注冊(cè)中心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 編寫(xiě)單元測(cè)試263 11.4 搭建etcd集群并在Dubbo中運(yùn)行263 11.4.1 單機(jī)啟動(dòng)etcd264 11.4.2 集群?jiǎn)?dòng)etcd265 11.5 小結(jié)266 第12章 Dubbo服務(wù)治理平臺(tái)267 12.1 服務(wù)治理平臺(tái)總體結(jié)構(gòu)267 12.2 服務(wù)治理平臺(tái)的實(shí)現(xiàn)原理269 12.3 小結(jié)273 第13章 Dubbo未來(lái)展望274 13.1 Dubbo未來(lái)生態(tài)274 13.1.1 開(kāi)源現(xiàn)狀274 13.1.2 后續(xù)發(fā)展275 13.2 云原生281 13.2.1 面臨的挑戰(zhàn)281 13.2.2 Service Mesh簡(jiǎn)介283 13.2.3 Dubbo Mesh284 13.3 小結(jié)285
你還可能感興趣
我要評(píng)論
|