ribbon基于接口配置超时_Ribbon 真的能被 spring-cloud-loadbalancer 替代吗

背景

  • 早上刷圈看到 https://spring.io/blog/2019/08/19/spring-cloud-hoxton-m2-released 的消息,随手发布到了我的知识星球,过了会有个朋友过来如下问题。 抽取半天时间学习spring-cloud-loadbalancer 的源码,整理出此文总结
  • Spring Cloud Hoxton.M2 是第一个整合新的loadbalancer实现来替代Ribbon的版本
  • spring-cloud-loadbalancer 的渊源
  1. 2017年spring 开始尝试开发新的项目 spring-cloud-loadbalancer 替代ribbon,项目托管在
    https://github.com/spring-cloud-incubator/spring-cloud-loadbalancer
    (多提一嘴,spring cloud alibaba 等顶级的项目大多从此孵化出来的,代表着 spring cloud 的发展方向)
  2. 经过N个月的不维护,还以为spring 放弃此项目时,突然把此项目标记成归档迁移到https://github.com/spring-cloud/spring-cloud-commons
  3. 发布2.2.0.M2 版本

如何使用

  • 这里基于 最新的hoxton.m2 版本才可以使用,所以要配置spring的代理maven库
  • 加入nacos-client ,使用 2.1.0版本,特别注意排除 ribbon依赖,不然loadbalancer 无效
  • 加入 loadbalancer pom坐标
  • 配置使用还是和 ribbon 一样配置

源码解析

LoadBalancerClient 实现

c99b3911485a60cc2d5c71ef1c502f53.png
  • 目前版本只提供了 BlockingLoadBalancerClient 的实现, 注意看中文注释

loadBalancer 负载均衡策略实现

44f10ee701063ba2b3c7965dc879c1c8.png
  • 目前只有一个RoundRobinLoadBalancer 轮询选择server的方式

和ribbon 比较

默认负载均衡比较

  • ribbon 提供7中默认的负载均衡策略,常见的常见都有覆盖,一般我们都是使用 ZoneAvoidanceRule 复合判断server所在区域的性能和server的可用性选择server

配置方面丰富性

  • 目前spring-cloud-loadbalancer 仅支持 重试操作的配置
  • ribbon 支持超时、懒加载处理、重试及其和 hystrix整合高级属性等

结论

  • 老老实实用 ribbon
  • 以上源码 https://github.com/pigxcloud/big
  • 欢迎关注 https://gitee.com/log4j/pig
  • 欢迎关注我们获得更多的好玩JavaEE 实践
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值