ribbon基于接口配置超时_Ribbon 真的能被 spring-cloud-loadbalancer 替代吗 - Go语言中文社区

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 实践
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_36039533/article/details/112498181
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-17 06:55:28
  • 阅读 ( 783 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢