
名称 | 中文名 | 分类 | 功能 | SPI接口 | SPI接口实现 |
---|---|---|---|---|---|
Service层 | 业务层 | 业务 | |||
Config层 | 配置层 | 对外提供的方便服务端和消费端发布(ServiceConfig)和代理(ReferenceConfig)使用的API层 | |||
Proxy层 | 服务代理层 | a).对消费端使用的接口(业务接口)进行代理,把本地调用透明的转换为远程调用 b).对服务端提供的接口实现类进行代理,把服务实现诶转换为Wrapper类(减少反射的调用) |
ProxyFactory | JavassisProxyFactory(默认使用),JdkProxyFactory | |
Registry层 | 服务注册中心层 | a).服务端启动时会把服务通过该层注册到服务注册中心 b).消费端启动时会去通过该层服务注册中心获取服务提供者的地址列表 |
Registry RegistryFactory Directory (其中Directory用来透明的把Invoker列表转换为Invoker) |
ZookeeperRegistry,RedisRegistry,MulticastRegistry,DubboRegistry DubboRegistryFactory,RedisRegistryFactory,ZookeeperRegistryFactory RegistryDirectory,StaticDirectory |
|
Cluster层 | 路由层 | 封装多个服务端的路由规则,负载均衡,集群容错的实现,桥接服务注册中心 | Cluster LoadBalance |
FailoverCluster(失败重试),FailbackCluster(失败自动恢复),FailfastCluster(快速失败),FailsafeCluster(失败安全),ForkingCluster(并行调用) RandomLoadBalance(随机),RoundRobinLoadBalance(轮询),LeastActiveLoadBalance(最小活跃数),ConsistentHashLoadBalance(一致性Hash) |
|
Monitor层 | 监控层 | 统计RPC调用次数和调用耗时时间 | MonitorFactory | DubboMonitorFactory | |
Protocol层 | 远程调用层 | 封装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 |
网友评论