书籍详情

深度剖析Apache Dubbo核心技术内幕

深度剖析Apache Dubbo核心技术内幕

作者:翟陆续(加多) 著

出版社:电子工业出版社

出版时间:2019-12-01

ISBN:9787121376931

定价:¥89.00

购买这本书可以去
内容简介
  Dubbo是阿里巴巴开发的一个开源的高性能、高可用、可扩展的分布式RPC调用框架,致力于提供高性能和透明化的 RPC 远程调用服务解决方案。作为阿里巴巴 SOA 服务化治理方案的核心框架,目前已进入 Apache 孵化器项目。在单体应用时,不同业务模块部署在同一个JVM 进程内,这时通过本地调用就可以解决不同业务模块之间的相互引用;但在多体应用时,不同业务模块大多部署到不同的机器上,这时一个高效、稳定的RPC框架就显得特别重要了。Apache Dubbo 作为阿里巴巴开源的分布式RPC 框架,在进入Apache 孵化器项目后现已毕业,相信在开源社区的不断贡献下,它会成为RPC 框架中的佼佼者。本书是对Apache Dubbo 的使用以及内核原理的深度剖析,分为三部分:第一部分为基础篇,首先从整体上讲解使用Dubbo 搭建的系统由哪些模块组成,各模块相互之间的调用关系是怎么样的,然后基于本书的Demo 讲解如何使用Dubbo ;第二部分为高级篇,主要讲解Dubbo 框架内部实现原理,包含支撑Dubbo框架的适配器类原理、动态编译原理、增强SPI 原理、消费端的泛化调用实现原理、消费端异步调用与服务提供端的异步执行、Dubbo 框架的线程模型、消费端负载均衡策略、消费端集群容错策略、并发控制原理、Dubbo 网络协议等;第三部分为实践篇,主要探讨如何使用Arthas 和一些Demo 为研究Dubbo 框架原理提供方便,并且讲解如何基于CompletableFuture 和Netty 模拟RPC 同步与纯异步调用。本书将原理与实践相结合,由浅入深、通俗易懂地讲解了Dubbo 框架的使用及内核原理实现,适合Java 中高级研发工程师,以及对RPC 框架技术感兴趣,希望探究RPC 框架内部实现原理的人员阅读。
作者简介
  翟陆续,目前就职于淘宝技术,花名加多。热衷并发、异步、反应式编程,熟悉常用开源框架实现原理,微信公众号:技术原始积累。
目录
基 础 篇
第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
X ┃ 深度剖析Apache Dubbo核心技术内幕
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
XII ┃ 深度剖析Apache Dubbo核心技术内幕
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
猜您喜欢

读书导航