Spring Cloud gateway 30s 超时,
Posted
技术标签:
【中文标题】Spring Cloud gateway 30s 超时,【英文标题】:Spring Cloud gateway is timing out in 30s, 【发布时间】:2021-12-28 12:59:55 【问题描述】:我正在使用 Spring Cloud Gateway 作为我的网关应用程序。当我尝试直接调用 api 时它会成功,但是通过它调用时会在 30 秒内超时。我正在尝试上传一个大约 250MB 的多部分文件。直接调用应用大约 6-7 分钟成功。
Spring Cloud api网关超时配置
- id: xyz
uri: $xyz.----
predicates:
- Path=/$xyz/**
filters:
- RewritePath=/$xyz/(?<oldPath>.*), /$oldPath
- CachingRequestBody
- SignResponseBody
- name: RequestSize
args:
maxSize: 1024MB
metadata:
response-timeout: 600000
connect-timeout: 600000
serviceName: $xyz
public Customizer<ReactiveResilience4JCircuitBreakerFactory> defaultCustomizer()
return factory -> factory.configureDefault(id -> new Resilience4JConfigBuilder(id)
.circuitBreakerConfig(CircuitBreakerConfig.ofDefaults())
.timeLimiterConfig(TimeLimiterConfig.custom().timeoutDuration(Duration.ofMillis(600000)).build())
.build());
cloud:
gateway:
httpclient:
connect-timeout: 600000
response-timeout: 600s
default-filters:
- name: OrderedCircuitBreaker
args:
name: global-fallback
fallbackUri: forward:/fallback
我们将不胜感激任何帮助
【问题讨论】:
httpclient 配置的结构顶部是否有 spring 关键字?在这里查看cloud.spring.io/spring-cloud-gateway/reference/html/… 【参考方案1】:大家好,我找到了答案, 网关中的每个请求都经过一组过滤器。如您所见,过滤器 CachedRequestBody。此过滤器缓存请求正文。如果它非常大并且api网关没有空间,那么它会因java堆空间错误而超时。我删除了那个过滤器,现在它工作正常。谢谢
【讨论】:
你能edit你的答案来解释你是如何删除它的吗?以上是关于Spring Cloud gateway 30s 超时,的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud实战Spring Cloud GateWay服务网关
spring cloud gateway 某些路由中跳过全局过滤器
spring cloud gateway 报错 Unable to find GatewayFilterFactory with name