注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)網(wǎng)絡(luò)與數(shù)據(jù)通信深度剖析Apache Dubbo核心技術(shù)內(nèi)幕

深度剖析Apache Dubbo核心技術(shù)內(nèi)幕

深度剖析Apache Dubbo核心技術(shù)內(nèi)幕

定 價(jià):¥89.00

作 者: 翟陸續(xù)(加多) 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787121376931 出版時(shí)間: 2019-12-01 包裝: 平裝
開本: 16開 頁數(shù): 288 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  Dubbo是阿里巴巴開發(fā)的一個(gè)開源的高性能、高可用、可擴(kuò)展的分布式RPC調(diào)用框架,致力于提供高性能和透明化的 RPC 遠(yuǎn)程調(diào)用服務(wù)解決方案。作為阿里巴巴 SOA 服務(wù)化治理方案的核心框架,目前已進(jìn)入 Apache 孵化器項(xiàng)目。在單體應(yīng)用時(shí),不同業(yè)務(wù)模塊部署在同一個(gè)JVM 進(jìn)程內(nèi),這時(shí)通過本地調(diào)用就可以解決不同業(yè)務(wù)模塊之間的相互引用;但在多體應(yīng)用時(shí),不同業(yè)務(wù)模塊大多部署到不同的機(jī)器上,這時(shí)一個(gè)高效、穩(wěn)定的RPC框架就顯得特別重要了。Apache Dubbo 作為阿里巴巴開源的分布式RPC 框架,在進(jìn)入Apache 孵化器項(xiàng)目后現(xiàn)已畢業(yè),相信在開源社區(qū)的不斷貢獻(xiàn)下,它會(huì)成為RPC 框架中的佼佼者。本書是對(duì)Apache Dubbo 的使用以及內(nèi)核原理的深度剖析,分為三部分:第一部分為基礎(chǔ)篇,首先從整體上講解使用Dubbo 搭建的系統(tǒng)由哪些模塊組成,各模塊相互之間的調(diào)用關(guān)系是怎么樣的,然后基于本書的Demo 講解如何使用Dubbo ;第二部分為高級(jí)篇,主要講解Dubbo 框架內(nèi)部實(shí)現(xiàn)原理,包含支撐Dubbo框架的適配器類原理、動(dòng)態(tài)編譯原理、增強(qiáng)SPI 原理、消費(fèi)端的泛化調(diào)用實(shí)現(xiàn)原理、消費(fèi)端異步調(diào)用與服務(wù)提供端的異步執(zhí)行、Dubbo 框架的線程模型、消費(fèi)端負(fù)載均衡策略、消費(fèi)端集群容錯(cuò)策略、并發(fā)控制原理、Dubbo 網(wǎng)絡(luò)協(xié)議等;第三部分為實(shí)踐篇,主要探討如何使用Arthas 和一些Demo 為研究Dubbo 框架原理提供方便,并且講解如何基于CompletableFuture 和Netty 模擬RPC 同步與純異步調(diào)用。本書將原理與實(shí)踐相結(jié)合,由淺入深、通俗易懂地講解了Dubbo 框架的使用及內(nèi)核原理實(shí)現(xiàn),適合Java 中高級(jí)研發(fā)工程師,以及對(duì)RPC 框架技術(shù)感興趣,希望探究RPC 框架內(nèi)部實(shí)現(xiàn)原理的人員閱讀。

作者簡(jiǎn)介

  翟陸續(xù),目前就職于淘寶技術(shù),花名加多。熱衷并發(fā)、異步、反應(yīng)式編程,熟悉常用開源框架實(shí)現(xiàn)原理,微信公眾號(hào):技術(shù)原始積累。

圖書目錄

基 礎(chǔ) 篇
第1 章 Dubbo 基礎(chǔ) / 2
1.1 初識(shí)Dubbo / 2
1.2 本書Demo 詳解 / 3
1.2.1 Demo 結(jié)構(gòu)說明 / 3
1.2.2 SDK 模塊 / 4
1.2.3 同步發(fā)布與調(diào)用服務(wù) / 6
1.2.4 服務(wù)消費(fèi)端異步調(diào)用服務(wù)/ 10
1.2.5 服務(wù)提供端異步執(zhí)行 / 13
1.2.6 服務(wù)消費(fèi)端泛化調(diào)用 / 17
1.2.7 服務(wù)消費(fèi)端本地服務(wù)mock 與服務(wù)降級(jí) / 21
1.2.8 隱式參數(shù)傳遞 / 24
1.2.9 本地服務(wù)暴露與引用 / 26
1.3 小結(jié) / 28
高 級(jí) 篇
第2章 Dubbo 框架內(nèi)核原理剖析 / 30
2.1 Dubbo 分層架構(gòu)概述 / 30
2.2 Dubbo 遠(yuǎn)程調(diào)用細(xì)節(jié) / 33
2.2.1 服務(wù)提供者暴露一個(gè)服務(wù)的概要過程 / 33
2.2.2 服務(wù)消費(fèi)者消費(fèi)一個(gè)服務(wù)的概要過程 / 34
2.3 Dubbo 的適配器原理 / 35
2.4 Dubbo 的動(dòng)態(tài)編譯原理 / 36
2.5 Dubbo 增強(qiáng)SPI / 39
2.5.1 JDK 標(biāo)準(zhǔn)SPI 原理 / 39
2.5.2 增強(qiáng)SPI 原理 / 43
2.5.3 擴(kuò)展點(diǎn)的自動(dòng)包裝 / 54
2.6 Dubbo 使用JavaAssist 減少反射調(diào)用開銷 / 57
2.7 小結(jié) / 60
第3章 遠(yuǎn)程服務(wù)發(fā)布與引用流程剖析 / 61
3.1 Dubbo 服務(wù)發(fā)布端啟動(dòng)流程剖析 / 61
3.2 Dubbo 服務(wù)提供方如何處理請(qǐng)求 / 74
3.3 Dubbo 服務(wù)消費(fèi)方啟動(dòng)流程剖析 / 81
3.4 Dubbo 服務(wù)消費(fèi)端一次遠(yuǎn)程調(diào)用過程 / 97
3.5 小結(jié) / 100
第4章 Directory 目錄與Router 路由服務(wù) / 101
4.1 Directory 目錄 . / 101
4.2 RegistryDirectory 的創(chuàng)建 / 101
4.3 RegistryDirectory 中invoker 列表的更新 102
4.4 小結(jié) / 107
第5章 Dubbo 消費(fèi)端服務(wù)mock 與服務(wù)降級(jí)策略原理 / 108
5.1 服務(wù)降級(jí)原理 / 108
5.1.1 降級(jí)策略注冊(cè) / 108
5.1.2 服務(wù)消費(fèi)端使用降級(jí)策略 / 109
5.2 本地服務(wù)mock 原理 / 111
5.2.1 mock 合法性檢查 / 111
5.2.2 服務(wù)消費(fèi)端使用mock 服務(wù) / 113
5.3 小結(jié) / 116
第6章 Dubbo 集群容錯(cuò)與負(fù)載均衡策略 / 117
6.1 Dubbo 集群容錯(cuò)策略概述 / 117
6.2 Failfast Cluster 策略源碼分析 / 119
X ┃ 深度剖析Apache Dubbo核心技術(shù)內(nèi)幕
6.3 Failsafe Cluster 策略源碼分析 / 120
6.4 Failover Cluster 策略源碼分析 / 120
6.5 Failback Cluster 策略源碼分析 / 122
6.6 Forking Cluster 策略源碼分析 / 124
6.7 Broadcast Cluster 策略源碼分析 / 127
6.8 如何基于擴(kuò)展接口自定義集群容錯(cuò)策略 / 128
6.9 Dubbo 負(fù)載均衡策略概述 / 129
6.10 Random LoadBalance 策略源碼分析 / 131
6.11 RoundRobin LoadBalance 策略源碼分析 / 134
6.12 LeastActive LoadBalance 策略源碼分析 / 139
6.13 ConsistentHash LoadBalance 策略源碼分析 / 141
6.13.1 一致性 Hash 負(fù)載均衡策略原理 / 141
6.13.2 源碼分析 / 147
6.14 如何基于擴(kuò)展接口自定義負(fù)載均衡策略/ 148
6.15 小結(jié) / 149
第7章 Dubbo 線程模型與線程池策略 / 150
7.1 Dubbo 的線程模型概述 / 150
7.2 AllDispatcher 源碼剖析 / 152
7.3 DirectDispatcher 源碼剖析 / 154
7.4 MessageOnlyDispatcher 源碼剖析 / 154
7.5 ExecutionDispatcher 源碼剖析 / 155
7.6 ConnectionOrderedDispatcher 源碼剖析/ 156
7.7 線程模型的確定時(shí)機(jī) / 159
7.8 如何基于擴(kuò)展接口自定義線程模型 / 160
7.9 Dubbo 的線程池策略 / 161
7.10 FixedThreadPool 源碼剖析 / 161
7.11 LimitedThreadPool 源碼剖析 / 163
7.12 EagerThreadPool 源碼剖析 / 164
7.13 CachedThreadPool 源碼剖析 / 166
7.14 線程池的確定時(shí)機(jī) / 168
7.15 如何基于擴(kuò)展接口自定義線程池策略 / 168
7.16 小結(jié) / 169
第8章 Dubbo 如何實(shí)現(xiàn)泛化引用 / 170
8.1 服務(wù)消費(fèi)端GenericImplFilter 源碼分析 / 170
8.2 服務(wù)提供端GenericFilter 源碼分析 / 172
8.3 小結(jié) / 176
第9章 Dubbo 并發(fā)控制 / 177
9.1 服務(wù)消費(fèi)端并發(fā)控制 / 177
9.2 服務(wù)提供端并發(fā)控制 / 182
9.3 小結(jié) / 185
第10章 Dubbo 隱式參數(shù)傳遞 / 186
10.1 服務(wù)消費(fèi)端AbstractClusterInvoker 原理剖析 / 186
10.2 服務(wù)提供方ContextFilter 原理剖析 / 188
10.3 小結(jié) / 189
第11章 Dubbo 全鏈路異步 / 190
11.1 服務(wù)消費(fèi)端異步調(diào)用 / 190
11.1.1 2.7.0 版本前的異步調(diào)用實(shí)現(xiàn) / 191
11.1.2 2.7.0 版本提供的異步調(diào)用實(shí)現(xiàn) / 201
11.2 服務(wù)提供端異步執(zhí)行/ 204
11.2.1 基于定義CompletableFuture 簽名的接口實(shí)現(xiàn)異步執(zhí)行 / 205
11.2.2 使用AsyncContext 實(shí)現(xiàn)異步執(zhí)行 / 208
11.3 異步調(diào)用與執(zhí)行引入的新問題 / 211
11.3.1 Filter 鏈 / 211
11.3.2 上下文對(duì)象傳遞 / 216
11.4 小結(jié) / 218
第12章 本地服務(wù)暴露與引用原理 / 219
12.1 本地服務(wù)暴露流程 / 219
12.2 本地服務(wù)引用啟動(dòng)流程 / 222
XII ┃ 深度剖析Apache Dubbo核心技術(shù)內(nèi)幕
12.3 本地服務(wù)一次引用流程 / 224
12.4 小結(jié) / 225
第13章 Dubbo 協(xié)議與網(wǎng)絡(luò)傳輸 / 226
13.1 Dubbo 協(xié)議 / 226
13.2 服務(wù)消費(fèi)方編碼原理 / 229
13.3 服務(wù)發(fā)布方解碼原理 / 233
13.4 小結(jié) / 241
實(shí) 踐 篇
第14章 Dubbo 實(shí)踐 / 244
14.1 Arthas 的簡(jiǎn)介與安裝 / 244
14.2 查看擴(kuò)展接口適配器類的源碼 / 245
14.3 查看服務(wù)提供端Wrapper 類的源碼 / 247
14.4 查詢Dubbo 啟動(dòng)后都有哪些Filter / 250
14.5 Demo 驗(yàn)證RoundRobin LoadBalance 負(fù)載均衡原理 / 253
14.6 如何動(dòng)態(tài)獲取Dubbo 服務(wù)提供方地址列表/ 256
14.6.1 場(chǎng)景概述/ 256
14.6.2 原理與實(shí)現(xiàn) / 257
14.7 根據(jù)IP 動(dòng)態(tài)路由調(diào)用Dubbo 服務(wù)/ 260
14.8 基于CompletableFuture 和Netty 模擬RPC 同步與純異步調(diào)用 / 264
14.8.1 協(xié)議幀定義 /..265
14.8.2 RpcServer 的實(shí)現(xiàn) / 265
14.8.3 RpcClient 的實(shí)現(xiàn) / 268
14.8.4 實(shí)例 / 273
14.9 小結(jié) / 275

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)