前言
之前在总体的方式上对dubbo有个总体的认识,在开发的过程中,也用了dubbo,并且是dubbo+zk完成了远程调用,本篇博客主要来讲解一下dubbo的各个模块.
核心
Config配置层
模块
dubbo-config
作用
负责所有dubbo相关的xml配置和注释转换为config对象
Api配置的对象类,用于生成对应的register,protocol
核心类
ServiceBean ReferenceBean(对应<dubbo:service/><dubbo:reference/>)
ProtocolConfig RegisterConfig(<dubbo:protocol/><dubbo:register/>)
Proxy服务代理层
模块
dubbo-rpc
作用
负责生成消费者的代理对象,以及服务提供方的Invoke.
核心类
ProxyFactory接口实现的2种实现JdkProxyFactory javassistProxyFactory
Resigstry注册中心层
模块
dubbo-registry
作用
负责服务注册与查询服务,以及注册服务的本地缓存
支持多种协议注册发现服务,例如redis zookeeper Multicast
Cluster路由层
模块
dubbo-cluster
作用
负责负载均衡的策略,以及失败策略
缺省设置:RandomLoadBalance,FailoverCluster
支持轮询,随机,一致性哈希等负载均衡策略
核心类
接口LoadBalance Cluster
RandomLoadBalance 以及RoundRobinLoadBalance等
Monitor监控层
模块
dubbo-monitor
作用
RPC调用次数和调用时间监控
dubbo-simple下面的dubbo-monitor-simple提供了简单的控制台
核心类
核心类DubboMonitor Statistics
Protocol远程调用层
模块
dubbo-rpc
作用
封装RPC调用,支持多种RPC协议,不包含IO通信部分
支持RMI Hessian Http Webservice thrift等
核心类
接口Protocol Exporter Invoker
DubboProtocol DubboInvolker DubboExporter DubboCodec
Serialize数据序列化层
模块
dubbo-common
作用
数据序列化层和可复用的一些工具,包括序列化线程池等
dubbo协议缺省为hessian2,rmi协议缺省为java,http协议缺省为json
核心类
接口ThreadPool Serialization
FixedThreadPool Hessian2Serializatio
总结
下篇博客来总结dubbo在项目中的应用,感谢博主的分享!