背景
- 早上刷圈看到 https://spring.io/blog/2019/08/19/spring-cloud-hoxton-m2-released 的消息,随手发布到了我的知识星球,过了会有个朋友过来如下问题。 抽取半天时间学习spring-cloud-loadbalancer 的源码,整理出此文总结
- Spring Cloud Hoxton.M2 是第一个整合新的loadbalancer实现来替代Ribbon的版本
- spring-cloud-loadbalancer 的渊源
- 2017年spring 开始尝试开发新的项目 spring-cloud-loadbalancer 替代ribbon,项目托管在
https://github.com/spring-cloud-incubator/spring-cloud-loadbalancer
(多提一嘴,spring cloud alibaba 等顶级的项目大多从此孵化出来的,代表着 spring cloud 的发展方向) - 经过N个月的不维护,还以为spring 放弃此项目时,突然把此项目标记成归档迁移到https://github.com/spring-cloud/spring-cloud-commons
- 发布2.2.0.M2 版本
如何使用
- 这里基于 最新的hoxton.m2 版本才可以使用,所以要配置spring的代理maven库
- 加入nacos-client ,使用 2.1.0版本,特别注意排除 ribbon依赖,不然loadbalancer 无效
源码解析
LoadBalancerClient 实现
- 目前版本只提供了 BlockingLoadBalancerClient 的实现, 注意看中文注释
loadBalancer 负载均衡策略实现
- 目前只有一个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 )
- 分类:数据库