一、是什么
Spring Cloud Ribbon 是基于 Netfix Ribbon 实现的一套客户端(服务的消费者)负载均衡的工具
二、用法
服务消费者工程的 pom.xml 添加如下内容
<!-- Ribbon相关 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
服务消费者工程的 application.yml
eureka:
client:
register-with-eureka: false
service-url:
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ #连接 Eureka 集群
配置类 配置 RestTemplate,加上 @LoadBalanced 注解
@Configuration public class ConfigBean { @Bean @LoadBalanced //客户端的负载均衡 public RestTemplate geRestTemplate() { return new RestTemplate(); } }
结论
Ribbon 和 Eureka 整合后,Consumer 可以直接通过微服务名调用微服务,而不需要关心地址和端口号
三、Ribbon 核心组件 IRule(Ribbon 默认算法的是轮询,一个挨一个)
IRule:根据特定算法从服务列表中选取一个访问服务