[201907][深入理解 Apache Dubbo 与实践][诣极][林琳][著]

[201907][深入理解 Apache Dubbo 与实践][诣极][林琳][著]

https://github.com/zonghaishang/dubbo-samples

第 1 章 Dubbo - 高性能 RPC 通信框架

1.1 应用架构演进过程

1.1.1 单体应用

1.1.2 分布式应用

1.2 Dubbo 简介

1.2.1 Dubbo 的发展历史

1.2.2 Dubbo 是什么

1.2.3 Dubbo 解决什么问题

1.2.4 谁在使用 Dubbo

1.2.5 Dubbo 后续的规划

1.3 Dubbo 总体大图

1.3.1 Dubbo 总体分层

1.3.2 Dubbo 核心组件

1.3.3 Dubbo 总体调用过程

1.4 小结

第 2 章 开发第一款 Dubbo 应用程序

2.1 配置开发环境

2.1.1 下载并安装 JDK

2.1.2 下载并安装 IDE

2.1.3 下载并配置 Maven

2.1.4 下载并配置 ZooKeeper

2.1.5 使用 IDEA 调试 Dubbo 源码

2.2 基于 XML 配置实现

2.2.1 编写 Echo 服务器

2.2.2 编写 Echo 客户端

2.3 基于注解实现

2.3.1 基于注解编写 Echo 服务器

2.3.2 基于注解编写 Echo 客户端

2.4 基于 API 实现

2.4.1 基于 API 编写 Echo 服务器

2.4.2 基于 API 编写 Echo 客户端

2.5 构建并运行

2.6 小结

第 3 章 Dubbo 注册中心

3.1 注册中心概述

3.1.1 工作流程

3.1.2 数据结构

3.1.3 ZooKeeper 原理概述

3.1.4 Redis 原理概述

3.2 订阅/发布

3.2.1 ZooKeeper 的实现

3.2.2 Redis 的实现

3.3 缓存机制

3.3.1 缓存的加载

3.3.2 缓存的保存与更新

3.4 重试机制

3.5 设计模式

3.5.1 模板模式

3.5.2 工厂模式

3.6 小结

第 4 章 Dubbo 扩展点加载机制

4.1 加载机制概述

4.1.1 Java SPI

4.1.2 扩展点加载机制的改进

4.1.3 扩展点的配置规范

4.1.4 扩展点的分类与缓存

4.1.5 扩展点的特性

4.2 扩展点注解

4.2.1 扩展点注解:@SPI

4.2.2 扩展点自适应注解:@Adaptive

4.2.3 扩展点自动激活注解:@Activate

4.3 ExtensionLoader 的工作原理

4.3.1 工作流程

4.3.2 getExtension 的实现原理

4.3.3 getAdaptiveExtension 的实现原理

4.3.4 getActivateExtension 的实现原理

4.3.5 ExtensionFactory 的实现原理

4.4 扩展点动态编译的实现

4.4.1 总体结构

4.4.2 Javassist 动态代码编译

4.4.3 JDK 动态代码编译

4.5 小结

第 5 章 Dubbo 启停原理解析

5.1 配置解析

5.1.1 基于 schema 设计解析

5.1.2 基于 XML 配置原理解析

5.1.3 基于注解配置原理解析

5.2 服务暴露的实现原理

5.2.1 配置承载初始化

5.2.2 远程服务的暴露机制

5.2.3 本地服务的暴露机制

5.3 服务消费的实现原理

5.3.1 单注册中心消费原理

5.3.2 多注册中心消费原理

5.3.3 直连服务消费原理

5.4 优雅停机原理解析

5.5 小结

第 6 章 Dubbo 远程调用

6.1 Dubbo 调用介绍

6.2 Dubbo 协议详解

6.3 编解码器原理

6.3.1 Dubbo 协议编码器

6.3.2 Dubbo 协议解码器

6.4 Telnet 调用原理

6.4.1 Telnet 指令解析原理

6.4.2 Telnet 实现健康监测

6.5 ChannelHandler

6.5.1 核心 Handler 和线程模型

6.5.2 Dubbo 请求响应 Handler

6.5.3 Dubbo 心跳 Handler

6.6 小结

第 17 章 Dubbo 集群容错

7.1 Cluster 层概述

7.2 容错机制的实现

7.2.1 容错机制概述

7.2.2 Cluster 接口关系

7.2.3 Failover 策略

7.2.4 Failfast 策略

7.2.5 Failsafe 策略

7.2.6 Failback 策略

7.2.7 Available 策略

7.2.8 Broadcast 策略

7.2.9 Forking 策略

7.3 Directory 的实现

7.3.1 总体实现

7.3.2 RegistryDirectory 的实现

7.4 路由的实现

7.4.1 路由的总体结构

7.4.2 条件路由的参数规则

7.4.3 条件路由的实现

7.4.4 文件路由的实现

7.4.5 脚本路由的实现

7.5 负载均衡的实现

7.5.1 包装后的负载均衡

7.5.2 负载均衡的总体结构

7.5.3 Random 负载均衡

7.5.4 RoundRobin 负载均衡

7.5.5 LeastActive 负载均衡

7.5.6 一致性 Hash 负载均衡

7.6 Merger 的实现

7.6.1 总体结构

7.6.2 MergeableClusterInvoker 机制

7.7 Mock

7.7.1 Mock 常见的使用方式

7.7.2 Mock 的总体结构

7.7.3 Mock 的实现原理

7.8 小结

第 8 章 Dubbo 扩展点

8.1 Dubbo 核心扩展点概述

8.1.1 扩展点的背景

8.1.2 扩展点整体架构

8.2 RPC 层扩展点

8.2.1 Proxy 层扩展点

8.2.2 Registry 层扩展点

8.2.3 Cluster 层扩展点

8.3 Remote 层扩展点

8.3.1 Protocol 层扩展点

8.3.2 Exchange 层扩展点

8.3.3 Transport 层扩展点

8.3.4 Serialize 层扩展点

8.4 其他扩展点

第 9 章 Dubbo 高级特性

9.1 Dubbo 高级特性概述

9.2 服务分组和版本

9.3 参数回调

9.4 隐式参数

9.5 异步调用

9.6 泛化调用

9.7 上下文信息

9.8 Telnet 操作

9.9 Mock 调用

9.10 结果缓存

9.11 小结

第 10 章 Dubbo 过滤器

10.1 Dubbo 过滤器概述

10.1.1 过滤器的使用

10.1.2 过滤器的总体结构

10.2 过滤器链初始化的实现原理

10.3 服务提供者过滤器的实现原理

10.3.1 AccessLogFilter 的实现原理

10.3.2 ExecuteLimitFilter 的实现原理

10.3.3 ClassLoaderFilter 的实现原理

10.3.4 ContextFilter 的实现原理

10.3.5 ExceptionFilter 的实现原理

10.3.6 TimeoutFilter 的实现原理

10.3.7 TokenFilter 的实现原理

10.3.8 TpsLimitFilter 的实现原理

10.4 消费者过滤器的实现原理

10.4.1 ActiveLimitFilter 的实现原理

10.4.2 ConsumerContextFilter 的实现原理

10.4.3 DeprecatedFilter 的实现原理

10.4.4 FutureFilter 的实现原理

10.5 小结

第 11 章 Dubbo 注册中心扩展实践

11.1 etcd 背景介绍

11.2 etcd 数据结构设计

11.3 构建可运行的注册中心

11.3.1 扩展 Transporter 实现

11.3.2 扩展 RegistryFactory 实现

11.3.3 新增 JEtcdClient 实现

11.3.4 扩展 FailbackRegistry 实现

11.3.5 编写单元测试

11.4 搭建 etcd 集群并在 Dubbo 中运行

11.4.1 单机启动 etcd

11.4.2 集群启动 etcd

11.5 小结

第 12 章 Dubbo 服务治理平台

12.1 服务治理平台总体结构

12.2 服务治理平台的实现原理

12.3 小结

第 13 章 Dubbo 未来展望

13.1 Dubbo 未来生态

13.1.1 开源现状

13.1.2 后续发展

13.2 云原生

13.2.1 面临的挑战

13.2.2 Service Mesh 简介

13.2.3 Dubbo Mesh

13.3 小结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值