避坑配置connectTimeout和readTimeout
坑点1:
feign客户端默认2个超时时间是1s
# 修改全局默认值:
feign.client.config.default.readTimeout=3000
feign.client.config.default.connectTimeout=3000
坑点2:
如果要配置 Feign 的读取超时,就必须同时配置连接超时,connectTimeout和readTimeout 同时
配置才能生效。
坑点3:
对单独的 Feign Client 设置超时时间,可以把 default 替换为 Client 的 name:
feign.client.config.default.readTimeout=3000
feign.client.config.default.connectTimeout=3000
feign.client.config.clientname.readTimeout=2000
feign.client.config.clientname.connectTimeout=2000
单独的超时可以覆盖全局超时,这符合预期,不算坑
坑点4:
除了可以配置 Feign,也可以配置 Ribbon 组件的参数来修改两个超时时间。
坑点4是,参数首字母要大写,和 Feign 的配置不同。
ribbon.ReadTimeout=4000
ribbon.ConnectTimeout=4000
结论:同时配置 Feign 和 Ribbon 的超时,以 Feign 为准
clientname.ribbon.listOfServers=localhost:8080
feign.client.config.default.readTimeout=3000
feign.client.config.default.connectTimeout=3000
ribbon.ReadTimeout=4000
ribbon.ConnectTimeout=4000