gpt4 book ai didi

java - Spring 端点为较大的 http 请求接收截断的正文

转载 作者:行者123 更新时间:2023-12-04 01:16:59 26 4
gpt4 key购买 nike

我有一个组件,部署在 AWS 上的 EC2 实例中,当发送更大的有效负载(40k)时,它将“随机”失败(约 70% 的请求)。
发送请求是使用 Postman 完成的。一遍又一遍地发送相同的请求(之间有相同的延迟或尽可能快地发送),每次我遇到一些失败,然后成功(有时连续 2 次,然后一些失败,重复)
这是一个 Java Spring Boot 应用程序, Controller 片段:

    @PostMapping
@RequestMapping("/some/url")
ResponseEntity<MyClass> methodName(@RequestBody String data, @RequestHeader("content-length") String header) {

log.info("Content-Length header was: "+header);
log.info("Length of inputJson (@RequestBody) was: "+data.length());
log.info(inputJson);
对于每个请求(失败或成功),我都会为 content-length-header 获得相同的值。
数据长度要么相同(调用成功),要么更短(调用失败)。
我如上所述添加了一些日志记录,这似乎证明了接收到的数据实际上被截断了。
我启用了访问日志使用
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %{content-length}i %{Content-Length}i
access-log 显示与 content-length-header 相同的值。
环顾四周,我发现了几篇文章,没有一个我可以使用的答案。
考虑到这也成功了 30%(或较小的请求),我认为代码本身可能没问题。
只是不知道下一步要更改什么以进一步调查。
一些对我的问题没有帮助的相关链接(可能对其他人有帮助):
  • Request truncated for large String body in Spring boot rest service
  • https://github.com/request/request/issues/1418#issuecomment-249790649
  • AWS ALB Truncating HTTP response
  • Json attribute is getting truncated in request body (Pojo class) in spring app
  • 最佳答案

    在我们的案例中,我们遇到了类似的问题,请求被随机截断(~ 10-20%)。相同的应用程序版本部署在多个环境中。该问题仅存在于某些环境中。我们尝试通过执行以下操作来重现该问题:

  • 将应用程序 API 端点从 HTTPS 更改为 HTTP,没有任何问题。我们还将 ALB 的后端协议(protocol)从 HTTPS 更改为 HTTP。
  • 尝试从 localhost 访问 HTTPS 端点。该问题不存在。

  • 后来我们检查了到位的应用程序服务器。我们在 9.0.31 的 Spring Boot 应用程序中使用了嵌入式 tomcat。
    已知此版本的 tomcat 在 HTTPS 上的有效负载方面存在问题。
    通过在 pom.xml 中明确定义此版本将 tomcat 版本更改为 9.0.30 为我们解决了这个问题。
    相关链接,以便这可以帮助其他人:
  • https://medium.com/javarevisited/how-we-found-apache-tomcat-couldnt-handle-large-requests-fd41b8b5f8e7
  • Multipart file upload using spring boot with tomcat version 9.0.31 is failing
  • https://www.mail-archive.com/users@tomcat.apache.org/msg134573.html
  • 关于java - Spring 端点为较大的 http 请求接收截断的正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63190403/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com