场景:
当消费者调用服务A,而服务A宕机或网络出现异常时,Ribbon会重新发送请求到服务B上完成请求。
重试实现:
- 引入spring的重试组件
在maven引入依赖
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
- 对ribbon进行重试配置
#配置ribbon请求重试 服务名 - ribbon - 参数
service-product:
ribbon:
ConnectTimeout: 250 # Ribbon的连接超时时间
ReadTimeout: 1000 # Ribbon的数据读取超时时间
OkToRetryOnAllOperations: true # 是否对所有操作都进行重试
MaxAutoRetriesNextServer: 1 # 切换实例的重试次数
MaxAutoRetries: 1 # 对当前实例的重试次数