深度剖析Apache Dubbo核心技术内幕
- ISBN:9787121376931
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:24cm
- 页数:12,275页
- 出版时间:2019-12-01
- 条形码:9787121376931 ; 978-7-121-37693-1
本书特色
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 框架内部实现原理的人员阅读。
内容简介
作为阿里巴巴SOA服务化治理方案的核心框架, 目前已进入Apache孵化器项目。本书分为基础篇、高级篇和实践篇, 深度剖析了Dubbo的核心技术原理, 并根据作者的实践强化了应用方向的内容。
目录
第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
作者简介
翟陆续,目前就职于淘宝技术,花名加多。热衷并发、异步、反应式编程,熟悉常用开源框架实现原理,微信公众号:技术原始积累。
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
情感计算
¥66.8¥89.0 -
大模型RAG实战 RAG原理、应用与系统构建
¥69.3¥99.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥51.8¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥67.4¥89.8 -
LINUX实战——从入门到精通
¥51.8¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
快速部署大模型:LLM策略与实践(基于ChatGPT等大语言模型)
¥56.9¥79.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥81.8¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0 -
明解C语言:实践篇
¥62.9¥89.8