dubbo架构
dubbo 官网 架构图
1 左侧浅蓝色背景的是 消费端接口,右侧浅绿色背景的属于 服务端接口 中间区域属于 共有接口
2 图片从下到上分十层 单向依赖,绿色方块属于 扩展接口 蓝色方块上 实现类,此图仅仅展示了 各层相关实现类
3 蓝色虚线箭头 系统启动时候 执行初始化链路,红色虚线 是运行时调用链,紫色箭头继承父类 可以像父类一样调用子类。箭头线上的文字是 调用方法名称
各个层 描述:
配置层 : 外部配置接口 ,ServiceConfig
and ReferenceConfig 是配置层的核心类,使用者可以直接初始化配置类 ,也可以通过Spring 生成配置类进行使用
代理层: 服务接口的透明代理,生成客户端服务存根和服务端服务框架,以ServiceProxy为中心,扩展接口为ProxyFactory
注册层: 服务注册和发现的封装,服务 url 是核心 , 扩展接口为RegistryFactory、Registry和RegistryService
集群层:多服务提供的集群封装,负载均衡 桥接注册中心 调用器是核心,扩展接口有 Cluster, Directory, Router, LoadBalance
监控层: 提供对远程调用次数和调用时间的监控,核心类是 Statistics,扩展接口有 MonitorFactory
, Monitor
, MonitorService
协议层:远程调用封装 规定了 不同终端之间远程调用的通信约定,核心类是 Invocation 和 Result,扩展接口是 Protocol
, Invoker
, Exporter
交换层: 求和响应的封装,同步传输异步. Request
和 Response 是核心,扩展接口 是
Exchanger,ExchangeChannel,ExchangeClient,ExchangeServer
传输层:mina 和netty框架的抽象 ,Message 是核心, 扩展接口为 hannel
, Transporter
, Client
, Server
, Codec
序列化层: 可重用工具, 扩展接口为 Serialization
, ObjectInput
, ObjectOutput
, ThreadPool
看完扫一扫: