基 礎 篇
第1章 Dubbo 基礎 2
1.1 初識Dubbo 2
1.2 本書Demo 詳解 3
1.2.1 Demo 結構說明 3
1.2.2 SDK 模塊 4
1.2.3 同步發布與調用服務 6
1.2.4 服務消費端異步調用服務/ 10
1.2.5 服務提供端異步執行 13
1.2.6 服務消費端泛化調用 17
1.2.7 服務消費端本地服務mock 與服務降級 21
1.2.8 隱式參數傳遞 24
1.2.9 本地服務暴露與引用 26
1.3 小結 28
高 級 篇
第2章 Dubbo 框架內核原理剖析 30
2.1 Dubbo 分層架構概述 30
2.2 Dubbo 遠程調用細節 33
2.2.1 服務提供者暴露一個服務的概要過程 33
2.2.2 服務消費者消費一個服務的概要過程 34
2.3 Dubbo 的適配器原理 35
2.4 Dubbo 的動態編譯原理 36
2.5 Dubbo 增強SPI 39
2.5.1 JDK 標準SPI 原理 39
2.5.2 增強SPI 原理 43
2.5.3 擴展點的自動包裝 54
2.6 Dubbo 使用JavaAssist 減少反射調用開銷 57
2.7 小結 60
第3章 遠程服務發布與引用流程剖析 61
3.1 Dubbo 服務發布端啓動流程剖析 61
3.2 Dubbo 服務提供方如何處理請求 74
3.3 Dubbo 服務消費方啓動流程剖析 81
3.4 Dubbo 服務消費端一次遠程調用過程 97
3.5 小結 100
第4章 Directory 目錄與Router 路由服務 101
4.1 Directory 目錄 101
4.2 RegistryDirectory 的創建 101
4.3 RegistryDirectory 中invoker 列錶的更新 102
4.4 小結 107
第5章 Dubbo 消費端服務mock 與服務降級策略原理 108
5.1 服務降級原理 108
5.1.1 降級策略注冊 108
5.1.2 服務消費端使用降級策略 109
5.2 本地服務mock 原理 111
5.2.1 mock 閤法性檢查 111
5.2.2 服務消費端使用mock 服務 113
5.3 小結 116
第6章 Dubbo 集群容錯與負載均衡策略 117
6.1 Dubbo 集群容錯策略概述 117
6.2 Failfast Cluster 策略源碼分析 119
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 如何基於擴展接口自定義集群容錯策略 128
6.9 Dubbo 負載均衡策略概述 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 負載均衡策略原理 141
6.13.2 源碼分析 147
6.14 如何基於擴展接口自定義負載均衡策略 148
6.15 小結 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 綫程模型的確定時機 159
7.8 如何基於擴展接口自定義綫程模型 160
7.9 Dubbo 的綫程池策略 161
7.10 FixedThreadPool 源碼剖析 161
7.11 LimitedThreadPool 源碼剖析 163
7.12 EagerThreadPool 源碼剖析 164
7.13 CachedThreadPool 源碼剖析 166
7.14 綫程池的確定時機 168
7.15 如何基於擴展接口自定義綫程池策略 168
7.16 小結 169
第8章 Dubbo 如何實現泛化引用 170
8.1 服務消費端GenericImplFilter 源碼分析 170
8.2 服務提供端GenericFilter 源碼分析 172
8.3 小結 176
第9章 Dubbo 並發控製 177
9.1 服務消費端並發控製 177
9.2 服務提供端並發控製 182
9.3 小結 185
第10章 Dubbo 隱式參數傳遞 186
10.1 服務消費端AbstractClusterInvoker 原理剖析 186
10.2 服務提供方ContextFilter 原理剖析 188
10.3 小結 189
第11章 Dubbo 全鏈路異步 190
11.1 服務消費端異步調用 190
11.1.1 2.7.0 版本前的異步調用實現 191
11.1.2 2.7.0 版本提供的異步調用實現 201
11.2 服務提供端異步執行 204
11.2.1 基於定義CompletableFuture 簽名的接口實現異步執行 205
11.2.2 使用AsyncContext 實現異步執行 208
11.3 異步調用與執行引入的新問題 211
11.3.1 Filter 鏈 211
11.3.2 上下文對象傳遞 216
11.4 小結 218
第12章 本地服務暴露與引用原理 219
12.1 本地服務暴露流程 219
12.2 本地服務引用啓動流程 222
12.3 本地服務一次引用流程 224
12.4 小結 225
第13章 Dubbo 協議與網絡傳輸 226
13.1 Dubbo 協議 226
13.2 服務消費方編碼原理 229
13.3 服務發布方解碼原理 233
13.4 小結 241
實 踐 篇
第14章 Dubbo 實踐 244
14.1 Arthas 的簡介與安裝 244
14.2 查看擴展接口適配器類的源碼 245
14.3 查看服務提供端Wrapper 類的源碼 247
14.4 查詢Dubbo 啓動後都有哪些Filter 250
14.5 Demo 驗證RoundRobin LoadBalance 負載均衡原理 253
14.6 如何動態獲取Dubbo 服務提供方地址列錶 256
14.6.1 場景概述 256
14.6.2 原理與實現 257
14.7 根據IP 動態路由調用Dubbo 服務/ 260
14.8 基於CompletableFuture 和Netty 模擬RPC 同步與純異步調用 264
14.8.1 協議幀定義 265
14.8.2 RpcServer 的實現 265
14.8.3 RpcClient 的實現 268
14.8.4 實例 273
14.9 小結 275
· · · · · · (
收起)