dubbo-1

http://shiyanjun.cn/archives/325.html

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

这里写图片描述

Dubbo框架设计一共划分了10个层,
而最上面的Service层是留给实际想要
使用Dubbo开发分布式服务的开发者实现业务逻辑的接口层
图中左边淡蓝背景的为服务消费方使用的接口,
右边淡绿色背景的为服务提供方使用的接口,
位于中轴线上的为双方都用到的接口。
下面,结合Dubbo官方文档,
我们分别理解一下框架分层架构中,
各个层次的设计要点:

◇ 1
服务接口层(Service):
该层是与实际业务逻辑相关的,
根据服务提供方和服务消费方的业务
设计对应的接口和实现。

◇ 2
配置层(Config):
对外配置接口,以ServiceConfigReferenceConfig为中心,
可以直接new配置类
也可以通过spring解析配置生成配置类

◇ 3
服务代理层(Proxy):
服务接口透明代理,
生成服务的客户端Stub和服务器端Skeleton
ServiceProxy为中心,
扩展接口为ProxyFactory

◇ 4
服务注册层(Registry):
封装服务地址的注册与发现,
服务URL为中心,
扩展接口为RegistryFactoryRegistryRegistryService。可能没有服务注册中心
此时服务提供方直接暴露服务。

◇ 5
集群层(Cluster):
封装多个提供者的路由及负载均衡,
并桥接注册中心,以Invoker为中心,
扩展接口为ClusterDirectoryRouterLoadBalance
将多个服务提供方组合为一个服务提供方,
实现对服务消费方来透明,
只需要与一个服务提供方进行交互。

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

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

◇ 8
信息交换层(Exchange):
封装请求响应模式,同步转异步,
RequestResponse为中心,
扩展接口为ExchangerExchangeChannelExchangeClientExchangeServer

◇ 9
网络传输层(Transport):
抽象minanetty为统一接口,
Message为中心,
扩展接口为ChannelTransporterClientServerCodec

◇ 10
数据序列化层(Serialize):
可复用的一些工具,
扩展接口为SerializationObjectInputObjectOutputThreadPool

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值