如何通过代码在 Spring Cloud Gateway 中配置请求超时
How to configure request timeouts in Spring Cloud Gateway via code
我需要在代码中为所有路由配置请求超时。我知道可以通过 application.properties
中的以下属性配置全局超时,但是如何在代码中配置它们?
spring.cloud.gateway.httpclient.connect-timeout=1000
spring.cloud.gateway.httpclient.response-timeout=5s
我查看了 GatewayAutoConfiguration
默认情况下如何配置超时。 HttpClientProperties
拥有这两个属性,但不能被覆盖。
@Bean
public HttpClientProperties httpClientProperties() {
return new HttpClientProperties();
}
这可以用代码完成吗?
我解决了我的问题。我创建了自己的 bean 并使用注释 @Primary
来创建一个具有相同类型的单独 bean。 GatewayAutoConfiguration
现在使用我的 bean 而不是默认的 bean。
@Bean
@Primary
public HttpClientProperties overwrittenHttpClientProperties() {
HttpClientProperties p = new HttpClientProperties();
p.setConnectTimeout(3000);
p.setResponseTimeout(Duration.ofMillis(10000));
return p;
}
我需要在代码中为所有路由配置请求超时。我知道可以通过 application.properties
中的以下属性配置全局超时,但是如何在代码中配置它们?
spring.cloud.gateway.httpclient.connect-timeout=1000
spring.cloud.gateway.httpclient.response-timeout=5s
我查看了 GatewayAutoConfiguration
默认情况下如何配置超时。 HttpClientProperties
拥有这两个属性,但不能被覆盖。
@Bean
public HttpClientProperties httpClientProperties() {
return new HttpClientProperties();
}
这可以用代码完成吗?
我解决了我的问题。我创建了自己的 bean 并使用注释 @Primary
来创建一个具有相同类型的单独 bean。 GatewayAutoConfiguration
现在使用我的 bean 而不是默认的 bean。
@Bean
@Primary
public HttpClientProperties overwrittenHttpClientProperties() {
HttpClientProperties p = new HttpClientProperties();
p.setConnectTimeout(3000);
p.setResponseTimeout(Duration.ofMillis(10000));
return p;
}