1、SpringCloud_Ribbon
Load Balance 对于任何一个分布式系统都是必要的基础功能,从实现角度而言,可以分为客户端 LB 和服务器端 LB。
在日常工作中大家接触最多的应该是基于服务器的 LB 解决方案,例如通过 nginx 的反向代理,或是商用的 F5。但是今天的例子中会演示如何使用 Ribbon 搭建一个具有 LB 的客户端应用。让我们开始吧。
spring Cloud Ribbon 是一个客户端的负载均衡器,它提供对大量的HTTP和TCP客户端的访问控制。
为啥是consumer-user项目中配置Ribbon,因为它是一个客户端的负载均衡器。客户端的注意点,所以consumer-user是服务客户端。
1、consumer-user项目中pom.xml配置Ribbon
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency>
2、consumer-user开启负载均衡@LoadBalanced
1 @Configuration 2 public class ConfigBean 3 { 4 @Bean 5 @LoadBalanced //使用负载均衡机制 6 public RestTemplate restTemplate() 7 { 8 return new RestTemplate(); 9 } 10 }
配置完后依次启动服务项目:
由于开启了负载均衡,所以8761、8762、8763服务会依次按照算法顺序调用。