美文网首页
7.dubbo分层架构概述

7.dubbo分层架构概述

作者: 山海树 | 来源:发表于2020-09-07 09:11 被阅读0次
20190826143519959.png

\color{gray}{用户可以通过实现SPI接口来实现自定义的对应层的功能}

名称 中文名 分类 功能 SPI接口 SPI接口实现
Service层 业务层 \color{blue}{Business} 业务
Config层 配置层 \color{green}{RPC} 对外提供的方便服务端和消费端发布(ServiceConfig)和代理(ReferenceConfig)使用的API层
Proxy层 服务代理层 \color{green}{RPC} a).对消费端使用的接口(业务接口)进行代理,把本地调用透明的转换为远程调用

b).对服务端提供的接口实现类进行代理,把服务实现诶转换为Wrapper类(减少反射的调用)
ProxyFactory JavassisProxyFactory(默认使用),JdkProxyFactory
Registry层 服务注册中心层 \color{green}{RPC} a).服务端启动时会把服务通过该层注册到服务注册中心

b).消费端启动时会去通过该层服务注册中心获取服务提供者的地址列表
Registry

RegistryFactory

Directory

(其中Directory用来透明的把Invoker列表转换为Invoker)
ZookeeperRegistry,RedisRegistry,MulticastRegistry,DubboRegistry

DubboRegistryFactory,RedisRegistryFactory,ZookeeperRegistryFactory

RegistryDirectory,StaticDirectory
Cluster层 路由层 \color{green}{RPC} 封装多个服务端的路由规则,负载均衡,集群容错的实现,桥接服务注册中心 Cluster

LoadBalance
FailoverCluster(失败重试),FailbackCluster(失败自动恢复),FailfastCluster(快速失败),FailsafeCluster(失败安全),ForkingCluster(并行调用)

RandomLoadBalance(随机),RoundRobinLoadBalance(轮询),LeastActiveLoadBalance(最小活跃数),ConsistentHashLoadBalance(一致性Hash)
Monitor层 监控层 \color{green}{RPC} 统计RPC调用次数和调用耗时时间 MonitorFactory DubboMonitorFactory
Protocol层 远程调用层 \color{green}{RPC} 封装RPC调用逻辑 Protocol RegistryProtocol,DubboProtocol,InjvmProtocol
Exchange层 信息交换层 Remoting 封装请求响应模式,同步转移异步 Excahnger HeaderExchanger
Transport层 网络传输层 Remoting Mina和Netty抽象为统一接口 Channel

Transporter

Codec2
NettyChannel(默认),MinaChannel

GrizzlyTransporter,MinaTransporter,NettyTransporter(默认)

DubboCodec,ThriftCodec
Serialize层 数据序列化层 Remoting 提供可以服用的一些序列化,反序列化工具 Serialization

ThreadPool
DubboSerialization,FastJsonSerialization,Hessian2Serialization,JavaSerialization

FixedThreadPool,CacheThreadPool,LimitedThreadPool

\color{}{由于除了service和config层之外,所有的层的事SPI接口,因此实现了Dubbo的可插拔,是的dubbo扩展性极强}

相关文章

网友评论

      本文标题:7.dubbo分层架构概述

      本文链接:https://www.haomeiwen.com/subject/vqzasktx.html