前言
之前在總體的方式上對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