深度剖析Apache Dubbo核心技术内幕电子书免费下载epub高清完整版|百度网盘下载

小编点评:阿里巴巴开源分布式RPC框架

基于 Dubbo 2.7 的新作。实例讲解使用Dubbo+图文结合解析核心实现原理+基于Netty和CompletableFuture的同步和纯异步调用模拟RPC,Apache Dubbo核心技术深度解析
本书主要关注广义调用、线程池、异步调用、网络通信等高级特性。

深入解析Apache Dubbo核心技术内幕图片预览

简介

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框架的内部实现原理。人们阅读。

关于作者

翟先后,现就职于淘宝科技,绰号佳多。热爱并发、异步和反应式编程,熟悉常用开源框架的实现原理,微信公众号:技术原创积累。

目录

版权页

顺序

前言

目录

基础知识

第一章 Dubbo 基础

1.1 初识 Dubbo

1.2本书的Demo详情

1.2.1 Demo结构说明

1.2.2 SDK 模块

1.2.3 同步发布和调用服务

1.2.4 服务消费者异步调用服务

1.2.5 服务提供者异步执行

1.2.6 服务消费者泛化调用

1.2.7 服务消费者端的本地服务模拟和服务降级

1.2.8 隐式参数传递

1.2.9 本地服务曝光及参考

1.3 总结

高级

第二章 Dubbo 框架内核原理分析

2.1 Dubbo分层架构概述

2.2 Dubbo 远程调用详情

2.2.1 服务提供者公开服务的概要流程

2.2.2 服务消费者消费服务流程概述

2.3 Dubbo的适配器原理

2.4 Dubbo的动态编译原理

2.5 Dubbo 增强 SPI

2.5.1 JDK 标准 SPI

2.5.2 增强型SPI原理

2.5.3 扩展点的自动换行

2.6 Dubbo 使用 JavaAssist 减少反射调用开销

2.7 总结

第三章远程服务发布与引用流程分析

3.1 Dubbo服务发布者启动流程分析

3.2 Dubbo 服务商如何处理请求

3.3 Dubbo服务消费者启动流程分析

3.4 Dubbo服务消费者远程调用流程

3.5 总结

第 4 章目录和路由器路由服务

4.1 目录

4.2 RegistryDirectory的创建

4.3 RegistryDirectory 中调用者列表的更新

4.4 总结

第5章 Dubbo消费者服务mock及服务降级策略原理

5.1 服务降级原理

5.1.1 降级策略注册

5.1.2 服务消费者使用降级策略

5.2 本地服务mock的原理

5.2.1 模拟合法性检查

5.2.2 服务消费者使用模拟服务

5.3 总结

第6章 Dubbo集群容错与负载均衡策略

6.1 Dubbo集群容错策略概述

6.2 Failfast集群策略源码分析

6.3 Failsafe集群策略源码解析

6.4 故障转移集群策略源码分析

6.5 Failback集群策略源码分析

6.6 分叉集群策略源码分析

6.7 广播集群策略来源分析

6.8 如何基于扩展接口自定义集群容错策略

6.9 Dubbo负载均衡策略概述

6.10 Random LoadBalance策略源码分析

6.11 RoundRobin负载均衡策略源码分析

6.12 LeastActive LoadBalance策略源码分析

6.13 ConsistentHash LoadBalance策略源码分析

6.13.1 Hash负载均衡策略一致性原则

6.13.2 源码分析

6.14 如何自定义基于扩展接口的负载均衡策略

6.15 总结

第7章 Dubbo线程模型和线程池策略

7.1 Dubbo的线程模型概述

7.2 AllDispatcher源码分析

7.3 DirectDispatcher源码分析

7.4 MessageOnlyDispatcher源码分析

7.5 ExecutionDispatcher源码分析

7.6 ConnectionOrderedDispatcher源码解析

7.7 何时确定线程模型

7.8 如何根据扩展接口自定义线程模型

7.9 Dubbo的线程池策略

7.10 FixedThreadPool源码分析

7.11 LimitedThreadPool源码分析

7.12 EagerThreadPool 源码分析

7.13 CachedThreadPool 源码分析

7.14 线程池确定时机

7.15 如何基于扩展接口自定义线程池策略

7.16 总结

第八章 Dubbo 如何实现泛化引用

8.1 服务消费者端GenericImplFilter源码分析

8.2 服务提供者的GenericFilter源码分析

8.3 总结

第9章 Dubbo并发控制

9.1 服务消费者并发控制

9.2 服务提供者并发控制

9.3 总结

第十章 Dubbo 隐式传参

10.1 服务消费者端AbstractClusterInvoker原理解析

10.2 Service Provider ContextFilter原理解析

10.3 总结

第11章 Dubbo全链接异步

11.1 服务消费者的异步调用

11.1.1 2.7.0 之前的异步调用实现

11.1.2 2.7.0版本提供的异步调用实现

11.2 服务提供者端的异步执行

11.2.1 基于定义 CompletableFuture 签名的接口的异步执行

11.2.2 使用 AsyncContext 异步执行

11.3 异步调用和执行引入的新问题

11.3.1 过滤器链

11.3.2 上下文对象传递

11.4 总结

第 12 章本地服务公开和参考原则

12.1 本地服务公开流程

12.2 本地服务引用启动流程

12.3 本地服务一次性引用流程

12.4 总结

第十三章 Dubbo 协议与网络传输

13.1 Dubbo 协议

13.2 服务消费者的编码原则

13.3 服务发布者解码原理

13.4 总结

练习

第十四章 Dubbo 练习

14.1 Arthas的介绍与安装

14.2 查看扩展接口适配器类的源码

14.3 查看服务提供者端Wrapper类的源码

14.4 Dubbo启动后查询有哪些Filters

14.5 Demo验证RoundRobin LoadBalance负载均衡原理

14.6 如何动态获取 Dubbo 服务商地址列表

14.6.1 场景概述

14.6.2 原理与实现

14.7 基于IP动态路由调用Dubbo服务

14.8 基于 CompletableFuture 和 Netty 模拟 RPC 同步和纯异步调用

14.8.1 协议帧定义

14.8.2 RpcServer的实现

14.8.3 RpcClient的实现

14.8.4 示例

14.9 总结

阅读剩余
THE END