Dubbo(应用篇)

注册中心

注册中心通过registry标签配置,可配置多个。

  • 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  • 注册中心不做请求转发,相当于目录服务,存储地址和地址变更通知
  • 注册中心与消费端、服务端均为长连接,与服务端保持长连接可以检测服务提供端是否异常,与消费端保持长连接可以通知服务端地址变动。
  • 注册中心异常不会影响已经运行中的消费者和服务提供者,消费者缓存了服务提供端地址。
  • 注册中心非必须,可以消费端直接连接服务提供方,一般只有测试时使用这种方式,通过jvm参数或配置文件或reference标签可以指定某个服务消费哪个地址。
  • 服务提供方宕机,消费端会无限次重连
  • 支持一个服务注册注册多个服务中心,service标签的registry参数可以通过逗号分隔配置多个注册中心名
  • 支持Multicast、

负载均衡策略

  • 通过protocol标签、service标签、reference标签rloadbalance参数配置权重则通过管理后台可以配置

Random LoadBalance(默认策略)
随机。按权重设置随机概率,在一个截面上碰撞的概率高,重试时,可能出现瞬间压力不均
RoundRobin LoadBalance
轮询。按公约后的权重设置轮询比率,存在慢的机器累积请求问题,极端情况可能产生雪崩。
LeastActive LoadBalance
最少活跃调用数。相同活跃数的随机,活跃数指调用前后计数差,使慢的机器收到更少请求。不支持权重,在容量规划时,不能通过权重把压力导向一台机器压测容量
ConsistentHash LoadBalance
一致性Hash。相同参数的请求总是发到同一提供者,当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。默认虚拟节点是160个虚拟节点,根据服务存活数分摊。存在压力分摊不均问题。默认通过第一个参数进行hash,可以通过配置修改。
<dubbo:parameter key=“hash.arguments” value=“0,1”/>

扩展负载均衡算法
基于spi,实现LoadBalance类,在指定目录文件配置,META-INF/dubbo/com.alibaba.dubbo.rpc.cluster.LoadBalance,负载均衡策略名字=权限定名

调用监控

  • 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

协议对比

  • 通过protocol配置协议,指定端口,可以配置多个协议。service标签可以通过protocol参数指定协议,通过逗号分隔可配置多个。
 <dubbo:protocol name="dubbo" port="20880" />

Dubbo协议(推荐使用)
采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好。在大文件传输时,单一连接会成为瓶
Rmi协议。
可与原生RMI互操作,基于TCP协议,偶尔会连接失败,需重建Stub
Hessian协议
可与原生Hessian互操作,基于HTTP协议,需hessian.jar支持。http短连接的开销大,设置传输大文件、大数据

调用失败策略

  • 通过服务提供service标签和消费reference标签的cluster参数设置

Failover Cluster(默认策略)
失败自动切换,当出现失败,重试其它服务器,通常用于读操作.重试会带来更长延迟,默认重试3次。
Failfast Cluster
快速失败,只发起一次调用,失败立即报错,通常用于非幂等写操作,如果有机器正在重启,可能会出现调用失败。
Failsafe Cluster
失败安全,出现异常时,直接忽略,通常用于写入审计日志等操作,调用信息丢失
Failback Cluster
失败立即返回,后台记录失败请求,定时重试,通常用于消息通知操作。不可靠,重启丢失
Forking Clus

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值