我使用spring cloud gateway作为我的网关应用程序。当我尝试直接调用api时,它成功了,但当通过它调用时,30秒后超时。我试图上传一个大小约为250MB的多部分文件。直接调用应用程序,大约6-7分钟就能成功。
Spring云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
我们将非常感谢您的帮助。
发布于 2021-11-22 12:40:03
嗨,伙计们,我找到了答案,网关中的每个请求都要经过一组过滤器。正如您所看到的过滤器CachedRequestBody。此筛选器缓存请求正文。这是非常大的情况下,api网关没有空间,所以它超时的java堆空间错误。我移除了那个过滤器,现在它工作得很好。谢谢
https://stackoverflow.com/questions/70006272
复制相似问题