Java技术升华Spring

Spring Cloud Config 客户端获取配置时出现异常

2020-03-29  本文已影响0人  zbsong

如果客户端因为网络波动等其它间接性原因导致连接不到配置中心而直接启动失败,这样的代价似乎有些高,所以针对这样的问题,Config客户端提供了自动重试的功能。

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.cloud.config.retry.multiplier=1000:初始重试间隔时间,单位为毫秒,默认1000毫秒。
spring.cloud.config.retry.initial-interval=2:下一间隔的剩数,默认为1.1,比如初始重试间隔为1000毫秒,那么下次失败后的重试间隔为1000x1.1= 1100毫秒。
spring.cloud.config.retry.max-interval=5000:最大间隔时间,默认2000毫秒。
spring.cloud.config.retry.max-attempts=10:最大重试次数,默认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,可以看到会根据我们自己配置的参数进行重试。 image.png

我们可以看到进行了10次重试,前几次重试间隔按照我们配置的下次间隔乘数进行重试,直到时间大于了我们设置的最大间隔时间后都开始按照设置的最大间隔时间进行重试,直到重试次数达到了我们设置的最大重试次数,还是连接不上就返回错误信息。

上一篇下一篇

猜你喜欢

热点阅读