一、负载均衡:
1. 添加Ribbon依赖(Eureka Discovery Client包含此依赖):
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
2. RestTemplate加注解@LoadBalanced:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190701104348860.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3NDQyNDY5,size_16,color_FFFFFF,t_70)
3. 访问路径设置为服务id:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190701104400295.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3NDQyNDY5,size_16,color_FFFFFF,t_70)
二、重试:
1.添加重试依赖:
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
2.application.yml 配置 ribbon 重试:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190701104416930.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3NDQyNDY5,size_16,color_FFFFFF,t_70)
3. 主程序配置 RestTemplate 的请求超时时间:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190701104435766.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3NDQyNDY5,size_16,color_FFFFFF,t_70)
- OkToRetryOnAllOperations=true: 打开对连接超时、读取超时进行重试;
- MaxAutoRetriesNextServer: 重试几个其他服务器;
- MaxAutoRetries: 当前服务器的重试次数,超过后重试下一台服务器;
- ConnectionTimeout: 与服务器连接超时的时间;
- ReadTimeout: 从服务器获取数据的超时时间.