SpringCloud负载均衡Ribbon核心组件IRule
1、IRule是根据特定算法从服务列表中选取一个要访问的服务。Ribbon有如下图IRule算法的实现:
2、Spring Ribbon的负载均衡默认实现了一些IRule的算法。各个不同的IRule算法的解释如下图所示。
3、Ribbon默认的负载均衡策略是轮询策略,我们可以更改这个默认规则。package com.gwol熠硒勘唏f.springcloud.cfgbeans;@Configurationpublic class ConfigBean { @Bean @LoadBalanced public RestTemplate getRestTemplate() { return new RestTemplate(); } @Bean public IRule myRule() { return new RandomRule(); }}
4、现在我们测试一下是否是随机访问的策略模式。从刷新浏览器访问的结果可以看出访问的微服务是随机访问的。
5、接下来测试一下RetryRule策略,这个策锐瞒噌澡略会按照RoudRobinRule的策略获取服务,如果获取服务失拎翮堆腼败,然后选择一个并发量小的服务。现在如果三个提供者都正常的话就会是轮询策略。访问的顺序是有顺序的。
6、现在我们关闭其他的一个提供者服务的话,这个策略会自动不去访问已经挂掉的服务了。现在访问关掉的服务会出现页面访问错误,隔断时间之后Ribbon会自动不去访问这个挂掉的服务了。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:72
阅读量:33
阅读量:63
阅读量:60
阅读量:83