【笔记】Ribbon学习笔记

前言

Spring Cloud Ribbon为服务客户端提供跨服务实例负载平衡的能力。(维基百科

在Feign或Zuul中集成Ribbon,实现负载均衡和重试

负载均衡

  • 在RestTemplate的配置方法上追加@LoadBalanced注解,@LoadBalanced封装RestTemplate,添加负载均衡的功能

setConnectTimeout():建立连接等待时间
setReadTimeout():连接建立后,发送请求后,等待接收响应的时>间

1
2
3
4
5
6
7
8
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
simpleClientHttpRequestFactory.setConnectTimeout(1000);
simpleClientHttpRequestFactory.setReadTimeout(1000);
return new RestTemplate();
}

重试

修改配置文件

src/main/resources/application.yml
1
2
3
4
ribbon:
# 重试次数越少越好,一般用0、1
MaxAutoRetries: 1
MaxAutoRetriesNextServer: 2

完成