我正在开发一个使用Spring Boot 8.5.9版本的Spring Boot开发的项目。
该应用程序在JAX RS中提供RESTfull Web服务。 在Prod环境中,有时我会收到错误 503 Service not available ,但我无法重现它,因为我使用的是本地Mock。
有没有办法在本地重现错误?就像把TomCat搁置一段时间不可用?
答案 0 :(得分:1)
根据MDN,HTTP 503服务不可用服务器错误意味着:
...响应代码表示 服务器尚未准备好处理请求。
常见原因是:
关闭以进行维护或过载的服务器。
要以自然的方式重现此错误响应,您可能会使Tomcat过载。
这样做可以更改Tomcat可以处理的最大并发请求数。
如果使用嵌入式tomcat,请将server.tomcat.max-threads
Spring Boot属性设置为易于访问的弱值,例如:
server.tomcat.max-threads = 1
否则,如果您使用我们自己的Tomcat安装,请在Connector
配置文件的server.xml
元素中使用弱值设置maxThreads
:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
...
maxThreads="1"/>
答案 1 :(得分:1)
您可以使用Java通过WireMock进行模拟。
public static WireMockServer wireMockServer = new WireMockServer(8089);
wireMockServer.start();
final WireMock wireMock = new WireMock(8089);
wireMock.register(WireMock.get(WireMock.urlEqualTo("/conf"))
.willReturn(WireMock.aResponse()
.withStatus(503)));
点击localhost:8089 / conf以获得503 Service Unavailable