展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

Ribbon

Ribbon是一套客户端负载工具
负载均衡(LB)
nginx实现负载均衡属于集中式LB,即在服务的消费方和提供方提供LB设施,当消费方发请求调提供方时,消费方的请求会先进入nginx,通过nginx转发分配到提供方集群
Ribbon属于进程内LB,消费方自己选择调用哪个提供方
之前的案例中通过80轮询负载访问80018002,拉取了eureka的依赖,新版的eureka依赖中已经集成了ribbon
ribbon等同于负载均衡+RestTemplate调用
负载均衡规则:
RoundRobinRule # 轮询
RandomRule # 随机
RetryRule # 先按照RoundRobinRule的策略获取服务,如果获取服务失败则在指定时间内会进行重
WeightedResponseTimeRule # 对RoundRobinRule的扩展,响应速度越快的实例选择权重越大,越容易被选择
BestAvailableRule # 会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务
AvailabilityFilteringRule # 先过滤掉故障实例,再选择并发较小的实例
ZoneAvoidanceRule # 默认规则,复合判断server所在区域的性能和server的可用性选择服务器
配置自定义负载均衡规则,案例:使80随机调用80018002
修改80订单模块,自定义的规则类不能放在@ComponentScan所扫描的当前包及其子包下;在当前项目中该注解在启动类上,规则类就不能放在启动类所在的包下,因此新建一个包myrule,然后编写自定义规则类

在启动类上添加注解,指定要调的提供者微服务和要使用的负载规则:@RibbonClient(name = "CLOUD-PAYMENT-SERVICE", configuration = MySelfRule.class)
posted @   DogLeftover  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示