我正在运行一个 SpringBoot 应用程序,并且有一个定义 Rest Api 并接受 id 列表请求的控制器。通常它工作正常,但如果 ids 的数量变大,那么我会收到 http 503。有趣的是,我也看不到控制器收到我的请求的任何日志。因此我无法理解发生了什么。您知道什么值得检查吗?
503 是一个错误代码,这意味着您请求的服务或 url 或控制器未运行/可用,请确保您的 jar 文件正在运行,并确保您请求的 url 有效。由于服务不可用,您看不到任何日志或错误消息。因为你的控制器还没有收到任何请求。
503错误表明服务器尚未准备好处理请求。
通过URL传输数据有一些限制,主要是URL的长度 一般来说,限制是 2047 个字符,不同浏览器的限制也不同
503 表示服务不可用。
我认为您的要求有问题。
您可以尝试添加自定义 OncePerRequestFilter 并记录您的 HTTP 请求。
就我而言,问题是由异步请求超时引起的。 它在执行 30 秒后返回 503,因为这是 Tomcats 异步请求的默认超时,请参阅例如这里:https://tomcat.apache.org/tomcat-9.0-doc/config/http.html
将
spring.mvc.async.request-timeout
设置为超过 30 000
ms 解决了我的问题。
参见例如以下问题了解一些详细信息:Spring Boot REST API - 请求超时?