Dubbo源码剖析一之整体架构设计
Dubbo基础二之架构及处理流程概述 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中进行Dubbo职能上的简单介绍,下面就其内部进行详细探究:
1、Dubbo调用关系
这个图是不是很熟悉,但是又好像有点不一样。是的,此图将架构概述中的服务消费者和提供者进行了细化,详解如下:
同时整个调用流程也得到细化:
1)提供者端启动时,容器负责把Service信息加载并通过Protocol注册到Registry中
2)消费者端启动时,通过监听提供者列表感知提供者信息并在提供者发生改变时通过注册中心即使获知。
3)消费方发起请求时, 通过Proxy模块利用Cluster模块来中心真实的要发送的提供者信息交Consumer中的Protocol把信息发送给提供者
4)提供者同样通过Protocol模板来处理消费者的信息并最后由真正的服务提供者Service来处理信息。
2、整体的调用链路
扩展功能整体调用流程:
3、Dubbo源码整体设计
注意:具体图标参加图上说明。
通过源码架构图可知,其与调用链路十分相似只不过此图中可以看到接口的一些具体实现以及更为详细的层次划分。下面进行分层介绍:
1)Business 业务逻辑层
2)RPC 远程调用层
3)Remoting 远程数据传输层