爱码网专注于资源免费下载

Dubbo源码解析 PDF 下载

爱码网2024-05-29 09:10:17479JavaDubbo源码解析pdf下载
Dubbo源码解析 PDF 下载-第1张图片 此部分为隐藏内容,请输入验证码后查看
验证码:


扫描右侧图片或微信搜索 “ Java技术分享屋 ” ,回复 “ 验证码 ” ,获取验证密码。
本资料仅供读者预览及学习交流使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!

一.资料图片

Dubbo源码解析 PDF 下载-第2张图片

二.资料简介

这里主要说明为什么需要 dubbo?

随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。

Dubbo源码解析 PDF 下载-第3张图片

Ø  单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。

此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。

Ø  垂直应用架构

当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。

此时,用于加速前端页面开发的 Web 框架(MVC) 是关键。

Ø  分布式服务架构

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。

此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。

Ø  流动计算架构

当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。

此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。

实际上这样是一种云架构,实现了服务的动态扩展;在高并发情况下,服务端可以快速部署机器,而对于应用端没有任何其他影响(除了服务并发处理能力提升);当然,在当前 PC\web\wap\app 多端的情况下,使用 SOA 结构,可以最大程度复用已有代码,避免重复开发。

 业界存在一种比较有意思的说法:小米在秒杀的时候,访问量暴涨,此时小米就会去申请很多阿里云服务器(1 小时内免费),快速部署服务,等秒杀完成后,快速归还;在如此高并发下硬件新增成本几乎为 0。

三.资料目录

 目录.................................................................................... 2

1 源码阅读路径.................................................................. 4

2 背景.................................................................................. 4

3  Dubbo 架构................................................................... 5

4  HelloWorld 例子........................................................... 7

5 源文件概述...................................................................... 8

6 核心机制分析................................................................ 10

6.1 设计模式............................................................. 10

6.2  Bean 加载........................................................ 11

6.2.1  Spring 可扩展 Schema......................... 11

6.2.2  Spring 加载 bean 流程....................... 15

6.2.2.1 解析 xml 中的 bean 定义......... 15

6.2.2.2  onApplicationEvent..................... 17

6.2.2.3  Main............................................ 19

6.3  Extension 机制................................................. 20

6.3.1  Java SPI................................................... 20

6.3.2 扩展点...................................................... 20

6.3.2.1 扩展点配置................................... 20

6.3.2.2 扩展点加载流程........................... 21

6.3.2.3 扩展点装饰................................... 28

6.3.2.4  ExtensionFactory......................... 32

6.4 代理..................................................................... 36

6.4.1  Invoker 调用.......................................... 36

6.4.2  JDK 代理................................................ 39

6.4.3  Javaassist 代理(动态)...................... 39

6.5 远程调用流程..................................................... 42

6.5.1 通信过程.................................................. 42

6.5.2 序列化...................................................... 43

6.5.3  Encode 和 Decode............................... 46

7 过程分析........................................................................ 47

7.1  Refer & export................................................... 47

7.1.1 调用顺序.................................................. 47

7.1.2 生成 Invoker............................................ 50

7.1.3  export..................................................... 58

7.2  Registry.............................................................. 60

7.2.1  RegistryFactory 和 Registry.................. 60

7.2.2  DubboRegistryFactory 创建注册中心过程........................................................................ 63

7.2.3 注册中心启动.......................................... 68

7.2.4 生产者发布服务...................................... 69

7.2.4.1  Export 发布服务流程................ 69

7.2.4.2  RegistryProtocol.export(Invoker)暴露服务........................................................ 72

7.2.5 消费者引用服务...................................... 73

7.2.5.1  Refer 取得 invoker 的过程...... 73

7.2.5.2  RegistryProtocol. Refer 过程...... 74

7.3 集群&容错.......................................................... 75

7.3.1  Cluster.................................................... 76

7.3.2 目录服务 Directory................................. 78

7.3.3  router 路由服务.................................... 80

7.3.4 负载均衡.................................................. 81

7.3.4.1  RandomLoadBalance................... 82

7.3.4.2  RoundRobinLoadBalance............ 82

7.3.4.3  LeastActiveLoadBalance.............. 83

7.3.4.4  ConsistentHashLoadBalance....... 84

7.3.5 配置规则.................................................. 84

7.4  telnet................................................................. 85

7.5 监控..................................................................... 87

7.5.1 监控中心.................................................. 87

7.5.2  SimpleMonitorService............................ 89

7.5.2.1  Monitor 基础类......................... 89

7.5.2.2  SimpleMonitorService................. 91

7.5.2.3 产生监控数据............................... 93

7.5.2.4  RegistryContainer........................ 94

7.5.2.5  JettyContainer............................. 95


本文链接:https://www.icode1024.com/java/568.html

网友评论