天天看点

SpringCloud Ribbon服务负载均衡

SpringCloud Ribbon服务负载均衡

个人博客网:www.lfuping.cn    (你想要的多有)

SpringCloud Ribbon服务负载均衡

一、创建多个服务生产者项目

1.至少两个生产者项目以上,用来模拟生产者服务集群,才能用Ribbon负载均衡

2.创建springcloud-provider-1(生产者1),springcloud-provider-2(生产者2), pom.xml,application.yml,以及java类都复制一份,启动类名称对应的改下;yml配置文件有两处要对应的改下,port端口改下,以及服务实例名称改下;

3.为了方便查看具体执行了哪个服务提供者,再Controller控制器的方法里搞个打印语句;

System.out.println("ProviderController----我是生产者1");
           

二、修改消费者项目:springcloud-consumer-1

1.在SpringCloudConfig配置类加上如下代码:

/**
     * 自定义轮询模式
     * 
     * @return
     */
    @Bean
    public IRule myRule() {
        return new RetryRule();
    }
           

三、配置完后测试

1.先启动三个eureka集群(这个看你电脑配置内存能不能启动这么多java程序,我电脑不行所以只用eureka单机来测试,如果你想要用eureka集群记得要改application.yml配置文件)

2.再启动多个服务提供者集群;

3.测试下 eureka、服务提供者有没有问题。

SpringCloud Ribbon服务负载均衡

4.然后再启动服务消费者http://localhost:8080/consumer/list

多刷新几次看控制台看到有默认的轮询策略,访问对应的服务提供者;

SpringCloud Ribbon服务负载均衡

5.看后台两个服务生产者的程序日志:

SpringCloud Ribbon服务负载均衡
SpringCloud Ribbon服务负载均衡

四、Ribbon轮询策略

1.默认的轮询策略肯定是不能满足实际需求的,比如有3个服务提供者,突然挂了一个,这样的话,默认轮询总有1/3的概率访问失败; 所以ribbon默认给提供的策略如下;

SpringCloud Ribbon服务负载均衡
SpringCloud Ribbon服务负载均衡
源码下载地址:https://pan.baidu.com/s/1e_GqWNBPsatF6kYB2a2a9Q 

提取码: irrk
           
SpringCloud Ribbon服务负载均衡

                                                     欢迎关注我的微信公众号:平川大叔

继续阅读