1 Ribbon的作用
Robbin可以帮助我们实现客户端负载均衡,在服务调用方在发送请求到其他服务时,在本地通过你指定负责均衡策略,筛选指定的服务调用。
2 Ribbon入门
2.1在服务的调用方导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
2.2 在RestTemplate配置上添加注解
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
2.3 使用restTemplate对象调用
restTemplate.getForObject("http://服务名称/路径", 返回结果.class);
Ps:在通过EurekaClient获取服务的地址信息,得到的时机器名称作为ip地址
# 指定服务展示的信息
eureka:
instance:
prefer-ip-address: true
ip-address: localhost
home-page-url: http://${eureka.instance.ip-address}:${server.port}
3 Ribbon指定负载均衡策略
Ribbon提供的负载均衡策略:
- RoundRobinRule:轮询(默认)
- RandomRule:随机策略
- WeightedResponseTimeRule:权重,默认根据响应时间指定权重值
- BestAvailableRule:根据并发,哪个服务并发少,就找哪个服务
配置负载均衡策略:
配置文件
服务名:
ribbon:
NFLoadBalancerRuleClassName: 负载均衡策略类的全路径
配置类
@Bean
public IRule ribbonRule(){
return new RandomRule();
}