13.6请求失败重试
- config-client 在调用 config-server 时,一样也可能发生请求失败的问题,这个时候,我们可以配置一个请求重试的功能。
要给 config-client 添加重试功能,只需要添加如下依赖即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
然后修改配置,开启失败快速响应。
config-client 的请求失败重试,与 resiliense4j 请求重试不同,config-client 的请求失败重试应该在项目启动的时候就报这个错,而不是项目启动完成后,调用某个接口或者方法时候使用配置内容时候再加载,这时如果启动没拉去 config-server 内容,项目会报错的,所以应该在项目启动时配置 config 的请求重试功能
- 在 config-client 的 bootstrap.properties 中配置:
# 开启配置文件失败快速响应
spring.cloud.config.fail-fast=true
- 重启 Eureka server、config-server,然后通过注释 config-client 中 访问 config-server 的用户名密码来模拟项目启动加载不到 config-server 配置文件的情况
#spring.cloud.config.username=javaboy
#spring.cloud.config.password=123
- 启动 config-client 项目,直接报错:
说明spring.cloud.config.fail-fast=true
起作用了
- 还可以配置其他内容:
# 请求重试的初始时间间隔
spring.cloud.config.retry.initial-interval=1000
# 最大重试次数
spring.cloud.config.retry.max-attempts=6
# 重试时间几个乘数
spring.cloud.config.retry.multiplier=1.1
# 最大间隔时间
spring.cloud.config.retry.max-interval=3000
这就是 Spring Cloud Config 请求失败重试功能。