前言

之前在总体的方式上对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在项目中的应用,感谢博主的分享!