SpringCloud IRule算法组件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gcxzflgl/article/details/82916262

IRule是根据特定算法从服务列表中选取一个要访问的服务。SpringCloud自带7中算法

1.RoundRobinRule--轮询

2.RandomRule--随机

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

4.WeightedResponseTimeRul--根据平均响应时间计算所有服务的权重,响应时间越快服务权重越大被选中的概率越大。刚启动时如果同统计信息不足,则使用轮询的策略,等统计信息足够会切换到自身规则

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

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

7.ZoneAvoidanceRule -- 默认规则,复合判断Server所在区域的性能和Server的可用行选择服务器。

算法切换

@Configuration

public class ConfigBean {

    @Bean

    @LoadBalanced

    public RestTemplate getRestTemplate() {

        return new RestTemplate();

    }

    @Bean

    public IRule myRule() {

        return new RandomRule();

    }

}

猜你喜欢

转载自blog.csdn.net/gcxzflgl/article/details/82916262