首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >禁用feign retryer

禁用feign retryer

作者头像
只喝牛奶的杀手
发布2019-08-26 16:17:53
1.8K0
发布2019-08-26 16:17:53
举报

为什么要禁用retryer?其实主要是为了Debug,禁用feign retryer有两面性,追妹子一定要retry!!!如果接口做好幂等性,retry不影响,但是总有一些意外发生,比如:有一个实例发生了故障而该情况还没有被服务治理机制及时的发现和摘除,这时候客户端访问该节点的时候自然会失败。所以,为了构建更为健壮的应用系统,我们希望当请求失败的时候能够有一定策略的重试机制,而不是直接返回失败。这个时候就需要Retryer;像一些更新德接口,如果不做好幂等性,retry可能会导致数据错乱;dev环境feign调用会频繁出现retry,影响Debug;下面让我们一起开启debug模式:

1,下载feign-core

// https://mvnrepository.com/artifact/com.netflix.feign/feign-core runtime group: 'com.netflix.feign', name: 'feign-core', version: '8.18.0'

feign-core是runtime不是compile,build会报错;把jar包下载下来放在libs目录下,用compile的方式。

compile fileTree(dir:'libs',include:['*.jar'])

2,Retryer不去重试

@Configuration

public class RetryerConfig {

@Bean

@Primary

Retryer feignRetryer() {

return Retryer.NEVER_RETRY;

}

}

3,Ribbon properties配置完retryer之后还会出现两次请求,为什么?我们没有配置ribbon相关的properties。

#Max number of retries

ribbon.MaxAutoRetries=0

#Max number of next servers to retry (excluding the first server)

ribbon.MaxAutoRetriesNextServer=0

#Whether all operations can be retried for this client

ribbon.OkToRetryOnAllOperations=false

#Interval to refresh the server list from the source

ribbon.ServerListRefreshInterval=2000

#Connect timeout used by Apache HttpClient

ribbon.ConnectTimeout=3000

#Read timeout used by Apache HttpClient

ribbon.ReadTimeout=5000

xxx-service.ribbon.ConnectTimeout:请求连接的超时时间

xxx-service.ribbon.ReadTimeout:请求处理的超时时间

xxx-service.ribbon.OkToRetryOnAllOperations:对所有操作请求都进行重试

xxx-service.ribbon.MaxAutoRetriesNextServer:切换实例的重试次数

xxx-service.ribbon.MaxAutoRetries:对当前实例的重试次数

根据如上配置,当访问到故障请求的时候,它会再尝试访问一次当前实例(次数由MaxAutoRetries配置),如果不行,就换一个实例进行访问,如果还是不行,再换一次实例访问(更换次数由MaxAutoRetriesNextServer配置),如果依然不行,返回失败信息。大家要设置Connect和Read超时时间的话,不要小于默认设置的超时时间;如果同时使用Retryer和Hystrix,建议Hystrix的超时>其他组件的超时,否则将可能导致重试特性失效。

其实最后再次强调一下,这篇只适合debug,生产上不要去禁用Retryer,但是小伙伴们一定要做好幂等性。下一篇聊一下Hystrix,欢迎吐槽!不要玻璃心,不怂就是一个字干!自勉!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 只喝牛奶的杀手 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

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