首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Ribbon负载均衡

Ribbon负载均衡

作者头像
崔笑颜
发布2020-06-08 16:32:45
发布2020-06-08 16:32:45
4780
举报

策略规则 Ribbon 提供 IRule 接口,该接口定义了如何访问服务的策略,以下是该接口的实现类:

代码语言:javascript
复制
1) RoundRobinRule:轮询,默认使用的规则;
2) RandomRule:随机;
3) AvailabilityFilteringRule:先过滤由于多次访问故障而处于断路器跳闸状态以及并发连接数量超过阀值得服务,然后从剩余服务列表中按照轮询策略进行访问;
4) WeightedResponseTimeRule:根据平均响应时间计算所有的权重,响应时间越快服务权重越有可能被选中;
5) RetryRule:先按照 RoundRobinRule 策略获取服务,如果获取服务失败则在指定时间内进行重试,获取可用服务;
6) BestAvailableRule:先过滤由于多次访问故障而处于断路器跳闸状态的服务,然后选择并发量最小的服务;
7) ZoneAvoidanceRule:判断 server 所在区域的性能和 server 的可用性来选择服务器。

策略使用

代码语言:javascript
复制
@Configuration
public class RestConfiguration {

	@Bean
	@LoadBalanced
	public RestTemplate getRestTemplate() {
		return new RestTemplate();
	}
	
	@Bean
	public IRule testRule() {
	    return new RandomRule();
	}
}

手动创建负载均衡规则对象,本次测试使用的策略是随机。

启动 user-consumer 项目使用浏览器访问接口,运行结果如下:

由图可知,随机策略已生效,负载均衡的策略由轮询变成了随机。 源码下载

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档