OpenFeign 超时控制是什么?
默认Feign 客户端只等待1秒钟,但是服务端处理需要超过1秒钟,导致Feign 客户端不想等待了,直接返回报错。
为了避免这样的情况,有时候我们需要设置Feign客户端的超时控制。
设置超时演示出错情况
服务提供方8001故意写暂停程序:
服务消费方80添加超时方法PaymentFeignService
服务消费方80添加超时方法OrderFeignController
测试
8001服务提供者调用超过3秒才返回数据,再来看80调用8001的方法
OpenFeign 只等待1秒,超过后报错:
在 yml 配置 进行控制
openFeign 内与 ribbon 整合了,支持负载均衡,它的超时控制也由最底层的 ribbon 进行控制,yml 添加配置:
#设置feign 客户端超时时间(openFeign默认支持ribbon)
ribbon:
#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
ReadTimeout: 5000
#指的是建立连接后从服务器读取到可用资源所用的时间
ConnectTimeout: 5000
重启80后 测试
数据在3秒后返回,没有报错。
OpenFeign 默认是1秒钟,部分业务时间长了可以通过这个方法进行设置。