欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring Cloud OpenFeign 超时与重试

程序员文章站 2022-04-28 22:40:55
...

今天给大家分享的是 feign 的超时与重试配置。
超时

  1. feign:
  2. client:
  3. config:
  4. default:
  5. connectTimeout: 1000
  6. readTimeout: 1000

需要注意以下几点:

1、连接超时 (connectTimeout) 和 读取超时 (readTimeout) 同时配置时,才会生效。

2、超时单位为毫秒。

3、可根据服务名称单独定义超时。

比如, provider-get 服务提供的是查询接口,超时时间可以设置短一些:

  1. feign:
  2. client:
  3. config:
  4. provider-get:
  5. connectTimeout: 1000
  6. readTimeout: 6000

而, provider-post 服务提供的是数据处理接口,超时时间可以设置长一些:

  1. feign:
  2. client:
  3. config:
  4. provider-post:
  5. connectTimeout: 1000
  6. readTimeout: 20000

重试
实现 feign.Retryer 接口

  1. public class MyRetryer implements Retryer {
  2. @Override
  3. public void continueOrPropagate(RetryableException e) {
  4. throw e;
  5. }
  6. @Override
  7. public Retryer clone() {
  8. return new Default(100, TimeUnit.SECONDS.toMillis(1), 5);
  9. }
  10. }

三个参数的理解:
period:周期,重试间隔时间
maxPeriod:最大周期,重试间隔时间按照一定的规则逐渐增大,但不能超过最大周期
maxAttempts:最大尝试次数,重试次数
之后,我们可以进行配置:

  1. feign:
  2. client:
  3. config:
  4. default:
  5. retryer: com.fengwenyi.springclouddemo.demospringcloudfeignsentinel.consumerservice.MyRetryer

希望今天的分享能够在工作中帮助到你。