包邮 2册 深入理解Apache Dubbo与实战+高可用可伸缩微服务架构书籍百度网盘pdf下载
免费下载
书籍下载
内容介绍
9787000022226
9787121366345 9787121362132
深入理解Apache Dubbo与实战
诣极 林琳 (作者)
书 号:978-7-121-36634-5
本书首先介绍Dubbo的简史、后续的规划和整体架构大图;接着介绍Dubbo环境配置,并基于Dubbo开发一款应用程序;然后介绍Dubbo内置的常用注册中心的实现原理,Dubbo扩展点加载的原理和实现,Dubbo的启动、服务暴露、服务消费和优雅停机的机制,Dubbo中RPC协议细节、编解码和服务调用实现原理,Dubbo集群容错、路由和负载均衡机制,Dubbo的扩展点相关知识,Dubbo特性的实现和原理,Dubbo常用的Filter的实现原理,Dubbo中新增etcd3注册中心的实战内容和Dubbo服务治理平台的相关知识;后介绍Dubbo未来生态和Dubbo Mesh的相关知识。
本书适合对Dubbo有一定了解、对Dubbo框架感兴趣的读者,也适合想深入理解Dubbo原理的开发者阅读。
目录
目录
第1章 Dubbo——高性能RPC通信框架 ............................................................................... 1
1.1 应用架构演进过程........................................................................................................ 1
1.1.1 单体应用 ........................................................................................................... 1
1.1.2 分布式应用 ....................................................................................................... 3
1.2 Dubbo简介.................................................................................................................... 6
1.2.1 Dubbo的发展历史............................................................................................ 7
1.2.2 Dubbo是什么 ................................................................................................... 7
1.2.3 Dubbo解决什么问题........................................................................................ 9
1.2.4 谁在使用Dubbo ............................................................................................. 10
1.2.5 Dubbo后续的规划.......................................................................................... 11
1.3 Dubbo总体大图 .......................................................................................................... 11
1.3.1 Dubbo总体分层 ............................................................................................. 11
1.3.2 Dubbo核心组件 ............................................................................................. 12
1.3.3 Dubbo总体调用过程...................................................................................... 13
1.4 小结 ............................................................................................................................. 15
第2章 开发一款Dubbo应用程序 .................................................................................... 16
2.1 配置开发环境 ............................................................................................................. 16
2.1.1 下载并安装JDK ............................................................................................. 17
2.1.2 下载并安装IDE .............................................................................................. 17
2.1.3 下载并配置Maven ......................................................................................... 18
2.1.4 下载并配置ZooKeeper .................................................................................. 18
2.1.5 使用IDEA调试Dubbo源码 ......................................................................... 18
2.2 基于XML配置实现 ................................................................................................... 21
2.2.1 编写Echo服务器 ........................................................................................... 21
2.2.2 编写Echo客户端 ........................................................................................... 24
2.3 基于注解实现 ............................................................................................................. 26
2.3.1 基于注解编写Echo服务器 ........................................................................... 26
2.3.2 基于注解编写Echo客户端 ........................................................................... 28
2.4 基于API实现 ............................................................................................................. 30
2.4.1 基于API编写Echo服务器 ........................................................................... 30
2.4.2 基于API编写Echo客户端 ........................................................................... 31
2.5 构建并运行 ................................................................................................................. 32
2.6 小结 ............................................................................................................................. 34
第3章 Dubbo注册中心 ....................................................................................................... 35
3.1 注册中心概述 ............................................................................................................. 35
3.1.1 工作流程 ......................................................................................................... 36
3.1.2 数据结构 ......................................................................................................... 37
3.1.3 ZooKeeper原理概述 ...................................................................................... 37
3.1.4 Redis原理概述 ............................................................................................... 39
3.2 订阅/发布 .................................................................................................................... 40
3.2.1 ZooKeeper的实现 .......................................................................................... 40
3.2.2 Redis的实现 ................................................................................................... 44
3.3 缓存机制 ..................................................................................................................... 48
3.3.1 缓存的加载 ..................................................................................................... 49
3.3.2 缓存的保存与更新 ......................................................................................... 50
3.4 重试机制 ..................................................................................................................... 50
3.5 设计模式 ..................................................................................................................... 51
3.5.1 模板模式 ......................................................................................................... 51
3.5.2 工厂模式 ......................................................................................................... 52
3.6 小结 ............................................................................................................................. 54
第4章 Dubbo扩展点加载机制 ............................................................................................ 55
4.1 加载机制概述 ............................................................................................................. 55
4.1.1 Java SPI ........................................................................................................... 56
4.1.2 扩展点加载机制的改进 ................................................................................. 57
4.1.3 扩展点的配置规范 ......................................................................................... 59
4.1.4 扩展点的分类与缓存 ..................................................................................... 60
4.1.5 扩展点的特性 ................................................................................................. 61
4.2 扩展点注解 ................................................................................................................. 62
4.2.1 扩展点注解:@SPI ........................................................................................ 62
4.2.2 扩展点自适应注解:@Adaptive ................................................................... 63
4.2.3 扩展点自动激活注解:@Activate ................................................................ 65
4.3 ExtensionLoader的工作原理 ..................................................................................... 66
4.3.1 工作流程 ......................................................................................................... 66
4.3.2 getExtension的实现原理 ................................................................................ 67
4.3.3 getAdaptiveExtension的实现原理 ................................................................. 70
4.3.4 getActivateExtension的实现原理 .................................................................. 73
4.3.5 ExtensionFactory的实现原理 ........................................................................ 73
4.4 扩展点动态编译的实现 .............................................................................................. 76
4.4.1 总体结构 ......................................................................................................... 77
4.4.2 Javassist动态代码编译 .................................................................................. 78
4.4.3 JDK动态代码编译 ......................................................................................... 79
4.5 小结 ............................................................................................................................. 80
第5章 Dubbo启停原理解析 .................................................................................................. 81
5.1 配置解析 ..................................................................................................................... 81
5.1.1 基于schema设计解析 ................................................................................... 82
5.1.2 基于XML配置原理解析 ............................................................................... 85
5.1.3 基于注解配置原理解析 ................................................................................. 91
5.2 服务暴露的实现原理.................................................................................................. 97
5.2.1 配置承载初始化 ............................................................................................. 97
5.2.2 远程服务的暴露机制 ..................................................................................... 97
5.2.3 本地服务的暴露机制 ................................................................................... 105
5.3 服务消费的实现原理................................................................................................ 106
5.3.1 单注册中心消费原理 ................................................................................... 106
5.3.2 多注册中心消费原理 ................................................................................... 113
5.3.3 直连服务消费原理 ....................................................................................... 114
5.4 优雅停机原理解析.................................................................................................... 115
5.5 小结 ........................................................................................................................... 116
第6章 Dubbo远程调用 ..................................................................................................... 117
6.1 Dubbo调用介绍 ........................................................................................................ 117
6.2 Dubbo协议详解 ........................................................................................................ 119
6.3 编原理 ........................................................................................................... 122
6.3.1 Dubbo协议编码器........................................................................................ 123
6.3.2 Dubbo协议........................................................................................ 128
6.4 Telnet调用原理......................................................................................................... 136
6.4.1 Telnet指令解析原理 .................................................................................... 136
6.4.2 Telnet实现健康监测 .................................................................................... 140
6.5 ChannelHandler ......................................................................................................... 141
6.5.1 核心Handler和线程模型 ............................................................................. 141
6.5.2 Dubbo请求响应Handler .............................................................................. 145
6.5.3 Dubbo心跳Handler ...................................................................................... 148
6.6 小结 ........................................................................................................................... 150
第7章 Dubbo集群容错 ..................................................................................................... 151
7.1 Cluster层概述 ........................................................................................................... 151
7.2 容错机制的实现 ....................................................................................................... 153
7.2.1 容错机制概述 ............................................................................................... 153
7.2.2 Cluster接口关系 ........................................................................................... 155
7.2.3 Failover策略 ................................................................................................. 157
7.2.4 Failfast策略 .................................................................................................. 158
7.2.5 Failsafe策略 .................................................................................................. 158
7.2.6 Failback策略................................................................................................. 159
7.2.7 Available策略 ............................................................................................... 160
7.2.8 Broadcast策略 .............................................................................................. 160
7.2.9 Forking策略 .................................................................................................. 161
7.3 Directory的实现 ....................................................................................................... 162
7.3.1 总体实现 ....................................................................................................... 162
7.3.2 RegistryDirectory的实现 .............................................................................. 163
7.4 路由的实现 ............................................................................................................... 166
7.4.1 路由的总体结构 ........................................................................................... 166
7.4.2 条件路由的参数规则 ................................................................................... 167
7.4.3 条件路由的实现 ........................................................................................... 168
7.4.4 文件路由的实现 ........................................................................................... 169
7.4.5 脚本路由的实现 ........................................................................................... 170
7.5 负载均衡的实现 ....................................................................................................... 171
7.5.1 包装后的负载均衡 ....................................................................................... 171
7.5.2 负载均衡的总体结构 ................................................................................... 173
7.5.3 Random负载均衡 ......................................................................................... 175
7.5.4 RoundRobin负载均衡 .................................................................................. 176
7.5.5 LeastActive负载均衡 ................................................................................... 178
7.5.6 一致性Hash负载均衡 ................................................................................. 179
7.6 Merger的实现 ........................................................................................................... 181
7.6.1 总体结构 ....................................................................................................... 181
7.6.2 MergeableClusterInvoker机制...................................................................... 183
7.7 Mock .......................................................................................................................... 185
7.7.1 Mock常见的使用方式 ................................................................................. 185
7.7.2 Mock的总体结构 ......................................................................................... 186
7.7.3 Mock的实现原理 ......................................................................................... 187
7.8 小结 ........................................................................................................................... 189
第8章 Dubbo扩展点 ......................................................................................................... 190
8.1 Dubbo核心扩展点概述 ............................................................................................ 190
8.1.1 扩展点的背景 ............................................................................................... 191
8.1.2 扩展点整体架构 ........................................................................................... 191
8.2 RPC层扩展点 ........................................................................................................... 192
8.2.1 Proxy层扩展点 ............................................................................................. 192
8.2.2 Registry层扩展点 ......................................................................................... 194
8.2.3 Cluster层扩展点 ........................................................................................... 195
8.3 Remote层扩展点 ...................................................................................................... 198
8.3.1 Protocol层扩展点 ......................................................................................... 199
8.3.2 Exchange层扩展点 ....................................................................................... 202
8.3.3 Transport层扩展点 ....................................................................................... 203
8.3.4 Serialize层扩展点 ........................................................................................ 206
8.4 其他扩展点 ............................................................................................................... 207
第9章 Dubbo特性 ..................................................................................................... 210
9.1 Dubbo特性概述 ................................................................................................ 210
9.2 服务分组和版本 ....................................................................................................... 211
9.3 参数回调 ................................................................................................................... 214
9.4 隐式参数 ................................................................................................................... 217
9.5 异步调用 ................................................................................................................... 218
9.6 泛化调用 ................................................................................................................... 219
9.7 上下文信息 ............................................................................................................... 220
9.8 Telnet操作 ................................................................................................................ 221
9.9 Mock调用 ................................................................................................................. 224
9.10 结果缓存 ................................................................................................................. 226
9.11 小结 ......................................................................................................................... 226
第10章 Dubbo过滤器 ....................................................................................................... 227
10.1 Dubbo过滤器概述 .................................................................................................. 227
10.1.1 过滤器的使用 ............................................................................................. 228
10.1.2 过滤器的总体结构 ..................................................................................... 228
10.2 过滤器链初始化的实现原理 .................................................................................. 231
10.3 服务提供者过滤器的实现原理 .............................................................................. 233
10.3.1 AccessLogFilter的实现原理 ...................................................................... 233
10.3.2 ExecuteLimitFilter的实现原理 .................................................................. 234
10.3.3 ClassLoaderFilter的实现原理 .................................................................... 235
10.3.4 ContextFilter的实现原理 ........................................................................... 237
高可用可伸缩微服务架构:基于Dubbo、Spring Cloud和Service Mesh
程超 (作者)
书 号:978-7-121-36213-2
出版日期:2019-05-01
页 数:528
开 本:16(185*235)
出版状态:上市销售
近年来微服务架构已经成为大规模分布式架构的主流技术,越来越多的公司已经或开始转型为微服务架构。本书不以某一种微服务框架的使用为主题,而是对整个微服务生态进行性的讲解,并结合工作中的大量实战案例为读者呈现一本读完即可实际上手应用的工具书。
书中的理论部分介绍了微服务架构的发展历程,通俗地讲解了领域驱动设计,帮助读者更好地利用DDD来建模和划分服务;微服务稳定性保证的常用手段和微服务下如何保证事务的一致性这两章凝聚了作者多年的积累和思考,相信读者看完后会有不一样的感触和收获;书中实战部分的内容非常丰富,以项目为基础,逐层介绍常见的Dubbo、Spring Cloud和Service Mesh框架的具体使用方法,并对实现原理进行剖析;书中还以具体案例全面介绍了微服务双活体系建设、微服务监控与告警、微服务编排、百亿流量微服务网关的设计与实现,以及基于支付场景下的微服务改造等,并让读者了解如何借助微服务来增强和重构现有的遗留。
不管是刚接触微服务的新手,还是正在尝试借助微服务解放生产力的开发人员或运维人员,甚至是立志于构建高可用可伸缩的微服务体系的技术Leader和架构师,阅读本书,对读者必有裨益。
目录
第1章 微服务架构概述
1
1.1 什么是架构
1
1.2 几个相关概念
3
1.3 从软件的生命周期看架构设计
7
1.4 架构的形式与特点
9
1.5 架构的目标与方法
13
1.6 架构的不同风格
18
第2章 微服务领域驱动设计
30
2.1 领域驱动设计
31
2.1.1 领域驱动设计概览
31
2.1.2 问题域与解决方案域
34
2.1.3 限界上下文
35
2.1.4 上下文映射
40
2.1.5 领域架构
43
2.2 微服务的设计
48
2.2.1 限界上下文的边界
48
2.2.2 限界上下文即微服务
51
2.2.3 识别限界上下文
53
2.2.4 微服务之间的协作
59
2.3 小结
63
第3章 Apache Dubbo框架的原理与实现
64
3.1 Dubbo框架的选型与使用
64
3.1.1 Dubbo框架的选型
64
3.1.2 Dubbo框架的使用
65
3.2 Dubbo框架的原理分析
70
3.2.1 总体架构分析
70
3.2.2 Dubbo Bean的加载
73
3.2.3 Dubbo Extension机制
77
3.2.4 Dubbo消费端
91
3.2.5 Dubbo服务端
126
3.2.6 Dubbo的通信机制
144
3.3 基于Dubbo的自动化Mock
165
3.3.1 Mock模拟的产生
166
3.3.2 Dubbo Mock的使用
167
3.3.3 Dubbo Mock的原理解析
168
3.3.4 自动化Mock的实现
170
第4章 Spring Boot/Spring Cloud实践
177
4.1 Spring Boot原理剖析
178
4.1.1 Spring Boot Quick Start
178
4.1.2 Spring Boot之SpringApplication
180
4.1.3 spring-boot-loaded模块分析
186
4.1.4 spring-boot-autoconfigure模块分析
190
4.1.5 Spring Boot Conditional注解分析
195
4.2 Dubbo Spring Boot Starter
198
4.2.1 Dubbo Spring Boot Starter简介
198
4.2.2 Dubbo Initializr及sample
198
4.2.3 dubbo-spring-boot-autoconfigure模块
201
4.2.4 dubbo-spring-boot-actuator模块
204
4.3 Spring Cloud栈
211
4.3.1 为什么微服务架构需要Spring Cloud
212
4.3.2 Spring Cloud技术栈总览
214
4.3.3 spring-cloud-scaffold基础库集合
215
4.4 基于Maven Archetype的脚手架
239
4.4.1 Maven Archetype
239
4.4.2 脚手架的搭建
240
4.4.3 生成脚手架
247
第5章 微服务稳定性保证的常用手段
250
5.1 微服务的稳定性
250
5.2 高可用
250
5.2.1 限流原理与实现
250
5.2.2 断路器原理与实现
256
5.2.3 超时与重试
260
5.3 高并发
262
5.3.1 异步
263
5.3.2 缓存
270
5.4 总结
272
第6章 微服务下如何保证事务的一致性
273
6.1 从本地事务到分布式事务的演变
273
6.2 强一致性解决方案
276
6.2.1 二阶段提交协议
276
6.2.2 三阶段提交协议
278
6.3 终一致性解决方案
280
6.3.1 TCC模式
280
6.3.2 补偿模式
285
6.3.3 可靠事件模式
286
6.4 开源项目的分布式事务实现解读
288
6.4.1 Apache RocketMQ
288
6.4.2 ServiceComb
289
第7章 百亿流量微服务网关的设计与实现
293
7.1 API网关概述
293
7.1.1 分布式服务架构、微服务架构与 API 网关
293
7.1.2 API网关的定义、职能与关注点
296
7.1.3 API网关的分类与技术分析
298
7.2 开源网关的分析与调研
300
7.2.1 常见的开源网关介绍
300
7.2.2 四大开源网关的对比分析
308
7.2.3 开源网关的技术总结
309
7.3 百亿流量交易API网关设计
310
7.3.1 百亿流量交易API网关的现状和面临问题
310
7.3.2 业务网关的设计与佳实践
313
第8章 微服务编排
317
8.1 Netflix Conductor
317
8.2 Netflix Conductor的架构
319
8.3 Conductor的使用案例
320
8.4 Netflix Conductor源码分析
328
8.4.1 Client层源码分析
330
8.4.2 Server端源码分析
337
8.4.3 core端源码分析
344
第9章 微服务数据抽取与统计
356
9.1 案例小故事
356
9.2 数据仓库概述
358
9.2.1 什么是数据仓库
358
9.2.2 数据仓库架构
360
9.2.3 数据仓库建模方法
361
9.2.4 数据抽取、转换和加载
361
9.2.5 数据统计
362
9.3 数据仓库工具Hive
362
9.3.1 安装Hive
364
9.3.2 Hive数据库
366
9.3.3 Hive表
367
9.4 使用Sqoop抽取数据
369
9.4.1 安装Sqoop
370
9.4.2 将MySQL表数据导入Hive表
372
9.5 ETL作业调度
375
第10章 微服务双活体系建设
377
10.1高可用
377
10.2 双活数据中心
379
10.2.1 单机房部署
379
10.2.2 双机房部署
380
10.2.3 基于支付场景的双活体系建设
383
第11章 基于支付场景下的微服务改造与性能优化
399
11.1 支付场景的介绍
399
11.2 支付业务建模和服务划分
400
11.3 支付场景下微服务架构的详解与分析
402
11.3.1 业务架构分析
402
11.3.2 技术平台详解
404
11.4 从代码层面提升微服务架构的性能
407
11.4.1 从代码和设计的角度看
407
11.4.2 从整体架构的角度看
418
11.5 微服务架构中常见的一些故障分析技巧
421
第12章 遗留的微服务架构改造
426
12.1 代码分层结构的转变
426
12.2 遗留的债券与思考
430
12.3 从单体拆分服务的方法
431
12.4 遗留的微服务架构改造
436
12.4.1 从代码重构开始
436
12.4.2 拆分服务需要面向服务进行架构设计
437
12.4.3 改造是一个渐进的过程
437
12.4.4 单元测试是基石
440
12.4.5 面向失败的设计
440
12.4.6 前后端分离
441
12.4.7 共享现有数据库
441
12.4.8 灰度发布的必要性
442
12.4.9 日志聚合与全链路监控
442
第13章 Service Mesh详解
443
13.1 Service Mesh是什么
443
13.2 Service Mesh的背景
443
13.3 Service Mesh介绍
444
13.3.1 Service Mesh架构
444
13.3.2 Service Mesh能做什么
445
13.4 Service Mesh的价值
446
13.5 Service Mesh现状
447
13.6 Service Mesh存在的问题
448
13.7 Istio详解
449
13.7.1 Istio架构
449
13.7.2 数据平面
450
13.7.3 控制平面
455
13.7.4 Isito案例
458
13.8 Service Mesh展望
461
第14章 微服务监控实战
463
14.1 APM原理与应用
464
14.1.1 什么是APM
464
14.1.2 APM监控点
464
14.1.3 APM深入解析
464
14.2 Prometheus监控介绍
492
14.2.1 Prometheus的主要特点
493
14.2.2 Prometheus的架构及组件介绍
493
14.2.3 Prometheus的安装
494
14.2.4 使用Prometheus对MySQL进行监控
498
14.2.5 Prometheus的告警机制
501
^_^:734a26300783ec0fa4e09eb2b15766df