SpringCloud Ribbon服务负载均衡
个人博客网:www.lfuping.cn (你想要的多有)
一、创建多个服务生产者项目
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、服务提供者有没有问题。
4.然后再启动服务消费者http://localhost:8080/consumer/list
多刷新几次看控制台看到有默认的轮询策略,访问对应的服务提供者;
5.看后台两个服务生产者的程序日志:
1.默认的轮询策略肯定是不能满足实际需求的,比如有3个服务提供者,突然挂了一个,这样的话,默认轮询总有1/3的概率访问失败; 所以ribbon默认给提供的策略如下;
源码下载地址:https://pan.baidu.com/s/1e_GqWNBPsatF6kYB2a2a9Q
提取码: irrk
欢迎关注我的微信公众号:平川大叔