8,3 Graceful Shutdown(优雅停机)

356 阅读1分钟

8,3 Graceful Shutdown(优雅停机)

原链接:docs.spring.io/spring-boot…

优雅停机支持所有四种内嵌式web server,Jetty,Reactor Netty,Tomcat 和 Undertow。对Reactive和Servlet两种模式也都支持。优雅停机发生在关闭application context的时候,在停止SmartLifecyclebean的最早阶段。优雅停机允许现存的请求继续完成但不会接收新的请求。具体以哪种方式实现不再接收新的请求因不同的web server而异。Jerry,Reactor Netty,Tomcat还在network layer停止接收请求,Undertow还会继续接收请求但是会立马返回503(service unavailable)。

Note

如果使用的是Tomcat,那么优雅停机需要Tomcat9.0.33+。

为了启用优雅停机,配置server.shutdown配置项,如下所示

server.shutdown=graceful

为了配置优雅停机的超时时间,配置spring.lifecycle.timeout-per-shutdown-phase配置项,如下所示

spring.lifecycle.timeout-per-shutdown-phase=20s

Important

如果你所使用的IDE没有正确的SIGTERM信号,那么在IDE中可能不能正常地使用优雅停机。