当前位置: 首页 > news >正文

Ribbon-IRule 修改负载均衡的规则

1、负载均衡规则描述

 (1)整体关系

 (2)规则描述

内置负载均衡规则类规则描述
RoundRobinRule简单轮询服务列表来选择服务器。它是Ribbon默认的负载均衡规则。
AvailabilityFilteringRule对以下两种服务器进行忽略:
(1)在默认情况下,这台服务器如果3次连接失败,这台服务器就会被设置为“短路”状态。短路状态将持续30秒,如果再次连接失败,短路的持续时间就会几何级地增加。(2)并发数过高的服务器。如果一个服务器的并发连接数过高,配置了AvailabilityFilteringRule规则的客户端也会将其忽略。并发连接数的上限,可以由客户端的<clientName><clientConfigNameSpace>ActiveConnectionsLimit属性进行配置。
WeightedResponseTimeRule为每一个服务器赋予一个权重值。服务器响应时间越长,这个服务器的权重就越小。这个规则会随机选择服务器,这个权重值会影响服务器的选择。
ZoneAvoidanceRule以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这个Zone可以理解为一个机房、一个机架等。而后再对Zone内的多个服务做轮询。
BestAvailableRule忽略哪些短路的服务器,并选择并发数较低的服务器。
RandomRule随机选择一个可用的服务器。
RetryRule重试机制的选择逻辑。

2、负载均衡规则方式

 (方式1)在服务的Application类中,定义IRule,这种方式全局生效。

@Bean
public IRule randomRule(){
        return new RandomRule;

}

 (方式2)在服务的application.yml,定义配置修改规则,这种方式可以针对某个服务进行配置。 

userservice:
        ribbon:
        NFLoadBalancerRuleClassName: com.netfix.loadbalancer.RandomRule

3、举例

(方式1)例

(方式2)例

http://www.lryc.cn/news/254845.html

相关文章:

  • 双十二电视盒子哪个牌子最好?自费3000+测评整理电视盒子推荐
  • 排序:直接选择排序
  • Nacos多数据源插件
  • 【Java基础篇 | 面向对象】—— 聊聊什么是接口(上篇)
  • golang实现函数yamlToStruct(infile,outFile)
  • 产品成本收集器流程演示
  • 【微服务】springboot整合quartz使用详解
  • Electron+Ts+Vue+Vite桌面应用系列:TypeScript常用时间处理工具
  • 记录 | centos源码编译bazel
  • 常见的Bean工厂后置处理器
  • 代码随想录算法训练营第四十二天| 416 分割等和子集
  • memmove 和 memcpy的区别
  • C实现的双向链表队列
  • 自适应中值滤波器的python代码实现-----冈萨雷斯数字图像处理
  • Python作业答疑_6.22~6.25
  • Uber Go 语言编码规范
  • UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大内核ConvNet
  • Http协议与Tomcat
  • Spring AOP从入门到精通
  • Tap虚拟网卡
  • 【数电笔记】53-与非门构成的基本RS触发器
  • kubernetes(k8s)容器内无法连接同所绑定的Service ClusterIP问题记录
  • Hadoop入门学习笔记
  • 堆栈,BSS,DATA,TEXT
  • Java八股文面试全套真题【含答案】-JSON篇
  • 数据库管理-第119期 记一次迁移和性能优化(202301130)
  • 【云原生-K8s】镜像漏洞安全扫描工具Trivy部署及使用
  • 【Docker】Swarm的ingress网络
  • gcc安全特性之FORTIFY_SOURCE
  • 【JUC】二十、volatile变量的特点与使用场景