首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring请求超时504

Spring请求超时504
EN

Stack Overflow用户
提问于 2022-08-11 14:45:40
回答 1查看 790关注 0票数 1

我有两个Spring应用程序,它们互相交谈。

ProjectA,getTest rest服务有时需要一分钟。它是从projectB打来的。

代码语言:javascript
复制
  @PostMapping(value = "/test")
  public ResponseEntity<Map<byte[], List<String>>> getTest(
      @RequestBody ObjectDTO configDto) {
    try {

      HashMap<byte[], List<String>> testMap =
          serviceImpl.test(configDto);

      if (!testMap.isEmpty())
        return new ResponseEntity<>(testMap, HttpStatus.CREATED);
      else return new ResponseEntity<>(testMap, HttpStatus.NO_CONTENT);

    } catch (Exception e) {      
      return ResponseEntity.badRequest().build();
    }
  }

ProjectB,它调用上面的API。

代码语言:javascript
复制
@PostMapping(value = "/getTest")
  @Async
  public ResponseEntity<Map<byte[], List<String>>> getTest(
      @RequestBody Config config) {
    try {
        Map<byte[], List<String>> val = serviceImpl.testConfig(config);
        return new ResponseEntity<>(val, HttpStatus.CREATED);       
    } catch (Exception e) {
      return ResponseEntity.badRequest().build();
    }
  }

它在本地工作,但当我运行prod时,它总是在6.2之后返回:

代码语言:javascript
复制
upstream request timeout

我已经在项目B的配置中增加了属性的超时值,但是没有工作。

代码语言:javascript
复制
server.tomcat.connection-timeout=120000
spring.mvc.async.request-timeout=120000

因此,问题是如何修复504网关超时错误

更新

通过在下面的大使.yaml文件上设置一个超时来修正。

代码语言:javascript
复制
apiVersion: getambassador.io/v2
kind:  Mapping
metadata:
  name:  ambassador-header-mapping
  namespace: x
spec:
  prefix: /
  timeout_ms: 60000
  service: dummyservice:8080
  ambassador_id: ambassador-x
  headers:
    X-Forwarded-Proto: https
    Host: dummyhost
EN

回答 1

Stack Overflow用户

发布于 2022-09-28 13:50:41

看起来您有额外的代理服务器,它有自己的超时配置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73322664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档