SpringCloud负载均衡Ribbon核心组件IRule

时间:2026-02-16 01:33:54

1、IRule是根据特定算法从服务改侵摸列表中选取一个要访问的服务。

Ribbon有如下图IRule算法的实现:

SpringCloud负载均衡Ribbon核心组件IRule

2、Spring Ribbon的负载均衡默认实现了一些IRule的算法。各个不同的IRule算法的解释如下图所示。

SpringCloud负载均衡Ribbon核心组件IRule

3、Ribbon默认的负载均衡策略是轮询策略,我们可以更改这个默认规则侵晃。

package com.gwolf.springcloud.cfgbeans;

@Configuration

public class ConfigBean {

    @Bean

    @LoadBalanced

    public RestTemplate getRestTemplate() {

        return new RestTemplate();

    }

    @Bean

    public IRule myRule() {

        return new RandomRule();

    }

}

SpringCloud负载均衡Ribbon核心组件IRule

4、现在我们测试一下是否是随机访问的策略模式。

从刷新浏览器访问的结果可以看出访问的微服务是随机访问的。

SpringCloud负载均衡Ribbon核心组件IRule

SpringCloud负载均衡Ribbon核心组件IRule

5、接下来测试一下RetryRule策略,这个策略会按照RoudRobinRule的策略获取服务,如果获取服务失败,然后选择一个并发量小的服务。

现在如果三个提供者都正常的话就会是轮询策略。访问的顺序是有顺序的。

SpringCloud负载均衡Ribbon核心组件IRule

6、现在我们关闭其他的一个提供者服务的话,这个策略会自动不去访问已经挂掉的服务了。

现在访问关掉的服务会出现页面访问错误,隔断时间之后Ribbon会宿总自动不去访问这个挂掉的服务了。

SpringCloud负载均衡Ribbon核心组件IRule

SpringCloud负载均衡Ribbon核心组件IRule

© 2026 五度知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com