feign 第一次调用超时_feign超时配置

本文详细介绍了Feign中Ribbon的超时配置,包括连接超时和读取超时,并提供了配置计算公式。通过实例展示了当服务提供者设置不同超时参数时,客户端调用的实际行为,验证了配置导致的超时时间,并在消费者端进行了18秒超时异常的验证。
摘要由CSDN通过智能技术生成

接着上一篇文章,记录下feign的超时配置

Feign底层用了ribbon做负载均衡,这里记录下ribbon的超时配置

# 服务提供者的 spring.application.namefeign-client-provider:  ribbon:    # 所有HTTP Method进行重试        OkToRetryOnAllOperations: true    # 每台机器最大重试次数        MaxAutoRetries: 2    # 可以再重试几台机器        MaxAutoRetriesNextServer: 2    # 连接超时        ConnectTimeout: 1000    # 处理超时        ReadTimeout: 2000

根据这段配置,我们可以计算下 最终会耗时多久,才会报超时异常

公式:(1+机器重试次数)*(1+重试机器数)*超时时间

(1+2)* (1+2)*2=18s

接下来我们验证下

在上一篇文章的项目基础上,我们增加一个超时接口

4c8c8b6ba4f65636216384b035ef9f2c.png

然后provider实现下

ef9f849200cfe0cc4579a42e167d0425.png

最后消费者调用该超市接口

0a81dcd1f466139e1cf0b52fc13addd9.png

我们用不同的端口 启动两个服务提供者

然后开始调用

ea484840345eb8ca94a55205c772824d.png

看下后台输出

50001端口服务提供者的后台输出

63eb708b7398f712d392b184eba2bd1a.png

50002端口的服务提供者的后台输出

145f677e685dce1915bd276154df94ea.png

可以看出来

1 单台机每次被调用3次,符合MaxAutoRetries=2的预期  调用超时后,可以再重试2次,一共调用3次
2 5001被调用1次,5002被调用2次,符合MaxAutoRetriesNextServe=2 的预期   1台机器超时后,可以再重试2台机器,一共调用3台机器

在看下消费者后台输出

08ddc913f926d7d13385d324987ab172.png

一共耗时18s 才报错,符合我们的计算结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值