Dubbo

 1.dubbo详解

      Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式 可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控。

①服务接口层(Service):该层是与实际业务逻辑相关的,根据服务提供方和服务消费方的业务设

                         计对应的接口和实现。

配置层(Config):对外配置接口,以ServiceConfig和ReferenceConfig为中心,可以直接new

                   配置类,也可以通过spring解析配置生成配置类。

服务代理层(Proxy):服务接口透明代理,生成服务的客户端Stub和服务器端Skeleton,以 

                       ServiceProxy为中心,扩展接口为ProxyFactory。

服务注册层(Registry):封装服务地址的注册与发现,以服务URL为中心,扩展接口为

                          RegistryFactory、Registry和RegistryService。可能没有服务注册中

                         心,此时服务提供方直接暴露服务。

集群层(Cluster):封装多个提供者的路由及负载均衡,并桥接注册中心,以Invoker为中心,

                    扩展接口为Cluster、Directory、Router和LoadBalance。将多个服务提供

                    方组合为一个服务提供方,实现对服务消费方来透明,只需要与一个服务提供

                    方进行交互。

 

 ⑥监控层(Monitor):RPC调用次数和调用时间监控,以Statistics为中心,扩展接口为

                       MonitorFactory、Monitor和MonitorService。

远程调用层(Protocol):封将RPC调用,以Invocation和Result为中心,扩展接口为Protocol、 Invoker和Exporter。Protocol是服务域,它是Invoker暴露和引用的主 功能入口,它负责Invoker的生命周期管理。Invoker是实体域,它是 Dubbo的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执 行体,可向它发起invoke调用,它有可能是一个本地的实现,也可能是一 个远程的实现,也可能一个集群实现。

信息交换层(Exchange):封装请求响应模式,同步转异步,以Request和Response为中心, 扩展接口为Exchanger、ExchangeChannel、ExchangeClient和 ExchangeServer。

网络传输层(Transport):抽象mina和netty为统一接口,以Message为中心,扩展接口为 Channel、Transporter、Client、Server和Codec。

数据序列化层(Serialize):可复用的一些工具,扩展接口为Serialization、 ObjectInput、 ObjectOutput和ThreadPool。

posted @ 2017-12-11 14:28  yinyt  阅读(201)  评论(0编辑  收藏  举报