跳到主要内容
版本:5.0.1

Http 超时配置

DeepSeek V3 中英对照 Http timeouts configuration

所有路由的HTTP超时(响应和连接)均可配置,并可为每个特定路由单独覆盖。

全局超时设置​

配置全局 HTTP 超时设置:
connect-timeout 必须以毫秒为单位指定。
response-timeout 必须指定为 java.time.Duration 格式。

spring:
cloud:
gateway:
httpclient:
connect-timeout: 1000
response-timeout: 5s

按路由超时设置​

配置每条路由的超时设置:
connect-timeout 必须以毫秒为单位指定。
response-timeout 必须以毫秒为单位指定。

- id: per_route_timeouts
uri: https://example.org
predicates:
- name: Path
args:
pattern: /delay/{timeout}
metadata:
response-timeout: 200
connect-timeout: 200
import static org.springframework.cloud.gateway.support.RouteMetadataUtils.CONNECT_TIMEOUT_ATTR;
import static org.springframework.cloud.gateway.support.RouteMetadataUtils.RESPONSE_TIMEOUT_ATTR;

@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder routeBuilder){
return routeBuilder.routes()
.route("test1", r -> {
return r.host("*.somehost.org").and().path("/somepath")
.filters(f -> f.addRequestHeader("header1", "header-value-1"))
.uri("http://someuri")
.metadata(RESPONSE_TIMEOUT_ATTR, 200)
.metadata(CONNECT_TIMEOUT_ATTR, 200);
})
.build();
}

每个路由的 response-timeout 若设置为负值,将禁用全局的 response-timeout 值。

- id: per_route_timeouts
uri: https://example.org
predicates:
- name: Path
args:
pattern: /delay/{timeout}
metadata:
response-timeout: -1