如何自定义负载均衡策略
2023-12-13 20:17:41
- 参考官方资源
- 负载均衡策略
-
内置负载均衡规则类 规则描述 RoundRobinRule 简单轮询服务列表来选择服务器。它是Ribbon默认的负载均衡规则。 AvailabilityFilteringRule 对以下两种服务器进行忽略:(1)在默认情况下,这台服务器如果3次连接失败,这台服务器就会被设置为“短路”状态。短路状态将持续30秒,如果再次连接失败,短路的持续时间就会几何级地增加。(2)并发数过高的服务器。如果一个服务器的并发连接数过高,配置了AvailabilityFilteringRule规则的客户端也会将其忽略。并发连接数的上限,可以由客户端的<clientName>.<clientConfigNameSpace>.ActiveConnectionsLimit属性进行配置。 WeightedResponseTimeRule 为每一个服务器赋予一个权重值。服务器响应时间越长,这个服务器的权重就越小。这个规则会随机选择服务器,这个权重值会影响服务器的选择。 ZoneAvoidanceRule 以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这个Zone可以理解为一个机房、一个机架等。而后再对Zone内的多个服务做轮询。 BestAvailableRule 忽略那些短路的服务器,并选择并发数较低的服务器。 RandomRule 随机选择一个可用的服务器。 RetryRule 重试机制的选择逻辑
-
- 可以通过java代码定义IRule实现可以修改负载均衡规则,将负载均衡规则修改为随机选择算法
-
/** * 根据java代码修改负载均衡规则,注入Bean * * @return 返回负载均衡规则 */ @Bean public IRule randomRule() { // 使用随机选择算法 return new RandomRule(); }
-
- 可以通过配置文件application.yml的方式定义IRule实现可以修改负载均衡规则,将负载均衡规则修改为随机选择算法
-
# 给某个微服务配置ribbon负载均衡规则,这里配置的服务是user-service服务 user-service: ribbon: # 配置随机选择的负载均衡规则 NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
-
- 启动服务时开启饥饿加载方式
- Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间相对较长。而饥饿加载则会在项目启动时就创建,这样可以降低第一次访问的耗时,通过下面配置可以开启饥饿加载
-
ribbon: eager-load: enabled: true # 配置服务的列表,这个是填写提供接口的服务名称 clients: user-service
-
- Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间相对较长。而饥饿加载则会在项目启动时就创建,这样可以降低第一次访问的耗时,通过下面配置可以开启饥饿加载
文章来源:https://blog.csdn.net/weixin_41926152/article/details/134842907
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!