dubbo架构分为十层:java
Service:接口层,提供服务端以及客户端实现,类ServiceBean和ReferenceBean redis
Config:配置层,ServiceConfig和ReferenceConfig,从dubbo.xsd中属性依赖以下,咱们能够看出service和reference共用abstractInterfaceType和abstractMethodType配置信息json
service->serviceType->abstractServiceType->abstractInterfaceType->abstractMethodType
reference->referenceType->abstractReferenceType->abstractInterfaceType->abstractMethodType服务器
Proxy:服务代理,生成服务的客户端stub和服务器端Skeleton,rmi协议就是使用这种方式调用远程服务网络
Register:注册中心,负责服务的注册和发现。聚合名称处理,自动识别服务提供者上线,以及数据修改后,及时更新给服务消费者。注册中心支持有zookeeper,redis等,可是zookeeper数据存储在内存中,使用一主多从的架构,主节点负责写入数据,而后在同步到从服务器。适合于读多写少的场景架构
Cluster:集群层,封装多个实例的路由和负载均衡策略,将多个实例对象封装合成一个服务,传递给客户端负载均衡
monitor:监控层,上报请求数,响应时间,成功响应数等异步
protocol:协议层,封装成rpc请求调用,支持协议有dubbo,http,hessian,rest等协议spa
exchange:对象交换层。同步转异步,大对象的信息交换,详情可参照java exchange栅栏实现。代理
transport:网络传输层。用户客户端与服务端通讯,可采用netty和mina等通讯网络库进行通讯
serializable:序列化。java,json,xml等序列化方式,网络传输层须要