|
此版本仍在开发中,尚未视为稳定版。如需最新稳定版本,请使用 Spring Boot 4.0.4! |
优雅关闭
优雅关闭默认在所有四种嵌入式 Web 服务器(Jetty、Reactor Netty、Tomcat 和 Undertow)以及基于响应式和 Servlet 的 Web 应用中启用。
它作为关闭应用程序上下文的一部分发生,并在停止 SmartLifecycle Bean 的最早阶段执行。
此停止过程使用超时机制,提供一个宽限期,在此期间现有请求将被允许完成,但不再接受新请求。
要配置超时周期,请配置spring.lifecycle.timeout-per-shutdown-phase属性,如下例所示:
-
Properties
-
YAML
spring.lifecycle.timeout-per-shutdown-phase=20s
spring:
lifecycle:
timeout-per-shutdown-phase: "20s"
在IDE中关闭可能不会是优雅的,而是立即的,除非它发送了一个适当的SIGTERM信号。
请参阅您IDE的文档以获取更多详细信息。 |
在宽限期内拒绝请求
新请求不允许的方式因所使用的 web 服务器不同而有所不同。 实现方式可能在网络层停止接受请求,或者返回带有特定 HTTP 状态码或 HTTP 头部的响应。 持久连接的使用也会改变请求停止被接受的方式。
要了解有关您的 Web 服务器所用具体方法的更多信息,请参阅 shutDownGracefully API 文档,适用于 TomcatWebServer.shutDownGracefully(GracefulShutdownCallback)、NettyWebServer.shutDownGracefully(GracefulShutdownCallback)、JettyWebServer.shutDownGracefully(GracefulShutdownCallback) 或 UndertowWebServer.shutDownGracefully(GracefulShutdownCallback)。 |
Jetty, Reactor Netty, 和 Tomcat 将在网络层停止接受新的请求。 Undertow 将接受新的连接,但立即返回服务不可用(503)响应。
禁用优雅关闭
为了禁用优雅关闭,请配置server.shutdown属性,例如如下所示:
-
Properties
-
YAML
server.shutdown=immediate
server:
shutdown: "immediate"