【发布时间】:2020-11-16 20:36:16
【问题描述】:
如果您更喜欢使用配置属性来配置所有 @FeignClient,您可以使用默认的 feign 名称创建配置属性。也可以通过命名客户端来为每个特定客户端设置这些超时。 当然,我们可以毫无问题地列出全局设置和每个客户端的覆盖。
我的客户:
@FeignClient( contextId = "fooFeignClient", name = "foo-client", url = "${foo.url}",
fallbackFactory = FooFallBackFactory.class,
configuration = FooFeignConfiguration.class)
我正在尝试这样做,并且我希望 foo-client.readTimeout 在我使用 foo-client 时覆盖 default.readTimeout:
feign:
hystrix:
enabled: true
client:
config:
default:
connectTimeout: 3000
readTimeout: 3000
loggerLevel: full
foo-client:
connectTimeout: 3000
readTimeout: 5000
hystrix:
command:
default:
execution:
timeout:
enabled: "false"
isolation:
strategy: "THREAD"
thread:
timeoutInMilliseconds: "3000"
但这并没有发生。我不确定 Hystrix 的 timeoutInMilliseconds 是否会产生影响,但从我的测试来看,它不会产生影响。我希望 feign.readTimeout 仅为 foo 客户端的 5000,而不是其他客户端。但看起来它忽略了这个 foo-client 配置,只使用默认配置。
我知道这不是 @Configuration 类的问题,因为 Feign 文档说如果我们同时创建 @Configuration bean 和配置属性,配置属性将会获胜。
【问题讨论】:
标签: java client hystrix spring-cloud-feign feign