Dubbo框架设计原理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nangeali/article/details/82632941

框架设计

参考文档
http://dubbo.apache.org/zh-cn/docs/dev/design.html
这里写图片描述
整体分为三层

Business

业务逻辑层,只有一层Service
面向接口编程,一个接口,对应一个实现
远程调用,通过调用接口,来调用接口实现

RPC

用于完成远程过程调用,分为很多层

Config

配置层
用于封装配置文件中,解析的一些信息

比如,ReferenceConfig、ServiceConfig
每一个标签,都有对应的Config
来封装标签中的信息

Proxy
服务代理层
利用代理的方式,生成客户端、服务端代理对象
代理对象,可以相互调用方法

Registry
注册中心层
完成注册中心的相关功能

比如,服务的发现、服务的注册
服务提供者,都需要注册到注册中心
服务消费者,都需要从注册中心订阅,所需要的服务

Cluster
路由层
完成负载均衡的相关功能
调用者,需要调用很多的服务
同一个服务,可能冗余部署在多台服务器上
此时,根据负载均衡策略,实现服务调用

Monitor
监控层
每一次的调用信息,都会发送数据,给监控层
监控层,以界面的方式,展示发送的调用数据

Protocol
远程调用层
用于完成远程调用
封装RPC整个调用过程
RPC调用核心Invoker、Protocol、Exporter

Remoting
完成远程通信
远程调用,需要与A、B两台服务器
架起通信管道,通过管道传递数据

Exchange
信息交换层
就是创建一个客户端、一个服务端
两个端,架起管道,进行数据的互联互通

Transport
传输层
传输数据,通过Transport封装传输
Transport底层,是Netty框架

Serialize
序列化层
传输过程中,数据经过序列化,进行网络传输
收到数据,经过反序列化,获取数据对象
这里写图片描述

颜色标注

Consumer,服务消费者
Provider,服务提供者
Interface,接口
Class,实现类
Inherit,接口之间的继承关系
Init,容器初始化
Call,整个调用过程
Depend,依赖顺序

Dubbo分包

每一层,对应Dubbo的一个分包
选择,Hierarchical方式
这里写图片描述
查看依赖
这里写图片描述

依赖关系

这些包,都是单向依赖
上层依赖于下层
这里写图片描述

猜你喜欢

转载自blog.csdn.net/nangeali/article/details/82632941