基 础 篇
第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
· · · · · · (
收起)