6.Springcloud的Ribbon的负载均衡算法解析及配置方式
  0mVFGgeRrPTU 2023年11月02日 74 0


项目地址:

​github地址​

配置方式

1.在restTemplate配置类里面添加一个bean,用于确认所属的负载均衡算法类类型,全部代码如下:

package com.debuggg.cloud.cfg;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RoundRobinRule;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class CfgBean {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}

@Bean
public IRule myRule(){
return new RoundRobinRule();//默认的轮询算法
// return new RandomRule();//达到的目的,用我们重新选择的随机算法替代默认的轮询
// return new RetryRule();//重试负载均衡,如果有服务端挂了,重试几次之后会排除该服务器
}
}

2.系统提供负载均衡算法的种类:

RoundRobinRule 轮询

RandomRule 随机

AvailabilityFilteringRule 会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,还有并发的连接数量超过阈值的服务,然后对剩余的服务列表按照轮询策略进行访问

WeightedResponseTimeRule 根据平均响应时间计算所有服务的权重,响应时间越快服务权重越大被选中的概率越高。刚启动时如果统计信息不足,则使用RoundRobinRule策略,等统计信息足够,会切换到WeightedResponseTimeRule

RetryRule 先按照RoundRobinRule的策略获取服务,如果获取服务失败则在指定时间内会进行重试,获取可用的服务

BestAvailableRule 会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务

ZoneAvoidanceRule 默认规则,复合判断server所在区域的性能和server的可用性选择服务器

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  ehrZuhofWJiC   2024年04月26日   39   0   0 日志Java
  ehrZuhofWJiC   2024年05月31日   28   0   0 数据库
0mVFGgeRrPTU