一、负载均衡:
1. 添加Ribbon依赖(Eureka Discovery Client包含此依赖):
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
2. RestTemplate加注解@LoadBalanced:
3. 访问路径设置为服务id:
二、重试:
1.添加重试依赖:
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
2.application.yml 配置 ribbon 重试:
3. 主程序配置 RestTemplate 的请求超时时间:
- OkToRetryOnAllOperations=true: 打开对连接超时、读取超时进行重试;
- MaxAutoRetriesNextServer: 重试几个其他服务器;
- MaxAutoRetries: 当前服务器的重试次数,超过后重试下一台服务器;
- ConnectionTimeout: 与服务器连接超时的时间;
- ReadTimeout: 从服务器获取数据的超时时间.