前言
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.yml1 2 3 4
| ribbon: MaxAutoRetries: 1 MaxAutoRetriesNextServer: 2
|
完成