dubbo原理与实践

 

1.dubbo整体架构 

服务接口层(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。

2.服务注册

dubbo提供的注册中心有以下几种选择:

Multicast、Zookeeper,Redis注册中心,Simple注册中心

 

3.网络通信框架

Mina,Netty(默认推荐),Grizzly

 

4.集群容错方案

Faliover Cluster失败自动切换,自动重试其他服务

Failfast Cluster只试一次,失败报错

FailSafe Cluster 失败忽略

Failback Cluster 失败自动恢复,记录失败请求,定时重发

Forking Cluster 并行调用多个服务,成功一个就返回

Broadcast Cluster广播提供者,错一个就报错

 

5.负载均衡策略

Random LoadBalance 随机,按照权重设置随机概率(默认)

RoundRobin LoadBalance 轮询,按照权重设置轮询比例

LeastActive LoadBalance 最少活跃调用数

ConsistentHash LoadBalance一致性Hash,相同参数发送到同一提供者

 

6.dubbo支持协议

dubbo://  

rmi:// 

hessian:// 

http://  

webservice:// 

thrift:// 

memcached://  

redis://  

rest://

 

7.核心配置

dubbo:service  服务配置

dubbo:reference 引用配置

dubbo:protocol  协议配置

dubbo:application  应用配置

dubbo:module  模块配置

dubbo:registry  注册中心配置

dubbo:monitor  监控中心配置

dubbo:provider  提供方配置

dubbo:consumer  消费方配置

dubbo:method 方法配置

dubbo:argument  参数配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值