1、负载均衡
Feign调用服务的默认时长是1秒钟,也就是如果超过1秒没连接上或者超过1秒没响应,就会相应的报错。Feign 的负载均衡底层用的是 Ribbon,其配置如下:
ribbon: ReadTimeout: 10000 #指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间。 ConnectTimeout: 10000 #指的是建立连接后从服务器读取到可用资源所用的时间。
2、网关超时配置
zull: host: socket-timeout-millis: 500 connect-timeout-millis: 500
3、Feign的Hystrix熔断功能配置
feign: hystrix: enabled: true hystrix: command: default: #default全局有效,service id指定应用有效 execution: timeout: #如果enabled设置为false,则请求超时交给ribbon控制,为true,则超时作为熔断根据 enabled: true isolation: thread: timeoutInMilliseconds: 1000 #断路器超时时间,默认1000ms
注意:当Feign的read-timeout大于Hytrix的超时时间时,此时如果本服务调用的第三方接口响应时间较长,请求到hytrix超时时间仍未返回,则进行熔断。而此时请求第三方接口并未终止,直到到读取超时时间,请求第三方接口的连接才终止。