java - 如何在spring cloud gateway中设置超时?
问题描述
如何设置一个time-out
?spring cloud gateway
routeLocatorBuilder.routes()
.route("test-api", r -> r.path("/api/**")).uri(apiLb))
.route("test-doc", r -> r.path("/doc/**")).uri(docLb));
ROUTE
有没有办法只为一个-设置一个超时时间doc
。
解决方案
引用自spring doc
设置global time-out
spring:
cloud:
gateway:
httpclient:
connect-timeout: 1000
response-timeout: 5s
每条路由超时:-
- id: per_route_timeouts
uri: https://example.org
predicates:
- name: Path
args:
pattern: /delay/{timeout}
metadata:
response-timeout: 200
connect-timeout: 200
在 Java 中:
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();
}
推荐阅读
- javascript - 如何在不返回浏览器的情况下使用 JavaScript 返回上一个路由?
- mysql - 如何将csv文件的某些列导入mysql phpmyadmin
- mongodb - MongoDB 的查询优化器有多可靠?
- c# - 在 C# 中替换 xml 字符串时出错
- php - 如何回显在 unlink 方法中的函数中返回的变量
- json - 将 JSON 转换为缺少字段名的 CSV
- c++ - 使用基于此标志的条件语句是否比添加更多代码行更有效?
- .net-core - .Net Core 查询来自不同微服务的记录
- javascript - 使用“relay-test-utils”测试反应组件
- swift - 你能在 Swift 中测试目标配置吗?