- 还是继续用上一节中创建的config-client工程
1.修改bootstrap.properties文件,添加spring.cloud.config.fail-fast=true
通过该参数可以避免当Config Server配置有误时,过多的等待前置加载时间,可以直接快速返回失败信息。
server.port=7001
spring.application.name=configtest
spring.cloud.config.profile=dev
spring.cloud.config.label=master
spring.cloud.config.uri=http://localhost:7000/
spring.cloud.config.fail-fast=true
2.编辑pom.xml,新增spring-retry和spring-boot-starter-aop依赖。
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
-
测试
到目前为止,添加完spring-retry和spring-boot-starter-aop依赖后,就不需要再有多余的配置了,如果config-server宕机或者网络延迟等原因导致连接不到时就会根据默认配置进行重试了,默认会重试6次,下面我们停掉config-server服务,然后启动config-client服务来测试一下。
从控制台打印的日志可以看出,进行了6次重试,6次之后还是连接不到才返回错误信息。
修改bootstrap.properties文件,添加上述参数
server.port=7001
spring.application.name=configtest
spring.cloud.config.profile=dev
spring.cloud.config.label=master
spring.cloud.config.uri=http://localhost:7000/
spring.cloud.config.fail-fast=true
spring.cloud.config.retry.multiplier=1000
spring.cloud.config.retry.initial-interval=2
spring.cloud.config.retry.max-interval=5000
spring.cloud.config.retry.max-attempts=10
再次启动config-config,可以看到会根据我们自己配置的参数进行重试。我们可以看到进行了10次重试,前几次重试间隔按照我们配置的下次间隔乘数进行重试,直到时间大于了我们设置的最大间隔时间后都开始按照设置的最大间隔时间进行重试,直到重试次数达到了我们设置的最大重试次数,还是连接不上就返回错误信息。