前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Cloud OpenFeign 超时与重试

Spring Cloud OpenFeign 超时与重试

原创
作者头像
冯文议
发布2022-01-11 11:16:52
2.5K0
发布2022-01-11 11:16:52
举报
文章被收录于专栏:编程笔记

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

超时

代码语言:txt
复制
feign:
  client:
    config:
      default:
        connectTimeout: 1000
        readTimeout: 1000

需要注意以下几点:

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

2、超时单位为毫秒。

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

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

代码语言:txt
复制
feign:
  client:
    config:
      provider-get:
        connectTimeout: 1000
        readTimeout: 6000

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

代码语言:txt
复制
feign:
  client:
    config:
      provider-post:
        connectTimeout: 1000
        readTimeout: 20000

重试

实现 feign.Retryer 接口

代码语言:txt
复制
public class MyRetryer implements Retryer {
    @Override
    public void continueOrPropagate(RetryableException e) {
        throw e;
    }

    @Override
    public Retryer clone() {
        return new Default(100, TimeUnit.SECONDS.toMillis(1), 5);
    }
}

三个参数的理解:

  • period:周期,重试间隔时间
  • maxPeriod:最大周期,重试间隔时间按照一定的规则逐渐增大,但不能超过最大周期
  • maxAttempts:最大尝试次数,重试次数

之后,我们可以进行配置:

代码语言:txt
复制
feign:
  client:
    config:
      default:
        retryer: com.fengwenyi.springclouddemo.demospringcloudfeignsentinel.consumerservice.MyRetryer

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 超时
  • 重试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档