Springboot graceful shutdown

发布时间 2023-06-26 10:55:38作者: colorfulworld

很多情况下,在应用程序启动后需要关闭时候,直接shutdown会导致正在处理的请求中断,而采用graceful shutdown可以实现不再接受新的请求,并将已接收到的请求处理完毕再关闭程序释放资源

 

Springboot graceful shutdown应用场景

Springboot中提供了优雅停机方案,在关闭阶段会给应用程序一个宽限期,然后不再处理新的请求处理,并将已经接收到的请求在宽限期内结束。对触发停机后再接收到的请求处理方式取决于不同的web服务器:Jetty, Reactor Netty, Tomcat将会在网络层停滞请求接收,而Undertow将会接受请求,但会直接返回服务器不可用的503状态码

使用方式

开启优雅停机

server:
  shutdown: "graceful"

还需要配置一个宽限期

spring:
  lifecycle:
    time-per-shutdown-phase :"20s"