Ribbon
AI-摘要
WenXi GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
1、什么是Ribbon
Ribbon是Netflix发布的开源项目,其主要功能是提供客户端侧负载均衡算法。Ribbon客户端组件提供一系列列完善的配置项如连接超时,重试等。Ribbon会自动的帮助你基于某种规则(如轮询,随机等)去连接这些机器,同时,Ribbon也支持自定义的负载均衡算法
在 SpringCloud 中,Ribbon利用从Eureka中读取到的服务提供者列表信息,在调用服务节点提供的服务时,基于内置的负载均衡算法,进行请求服务。
2、Ribbon负载均衡和Nginx的负载均衡有什么不同?(常见面试题)
一般实现负载均衡,会有两个选择,客户端负载均衡和服务端的负载均衡
Nginx是服务器端负载均衡,负载均衡的策略算法是在服务器端实现的。
Ribbon是客户端负载均衡,负载均衡算法是由调用者本身维护的
3、Ribbon提供的负载均衡策略有哪些?
Ribbon内置了多种负载均衡策略,内部负责复杂均衡的顶级接口为 com.netflix.loadbalancer.IRule;
com.netflix.loadbalancer.RoundRobinRule :轮询策略
com.netflix.loadbalancer.RandomRule :随机策略
com.netflix.loadbalancer.BestAvailableRule :最佳可用策略
4、修改默认的负载均衡策略,在index-service的application.yml配置
#配置调用product-service服务采用的负载均衡策略
#注意,此处大小写要跟接口的声明一致
PRODUCT-SERVICE:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
5、重试机制
当集群服务有些服务出现问题时,如果刚好调用到出问题的服务器,那么会出现服务调用失败。
我们可以采用Ribbon支持的重试机制来解决问题
引入依赖:
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
配置:
PRODUCT-SERVICE:
ribbon:
#NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
OkToRetryOnAllOperations: true # 是否对所有操作都进行重试
MaxAutoRetriesNextServer: 3 # 切换实例的重试次数
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 平凡先生/文奚
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果