本文将带你了解如何在 Spring Boot 应用中配置优雅停机。
1、优雅停机 {#1优雅停机}
从 Spring Boot 2.3 开始,Spring Boot 所支持的四种嵌入式 Web 服务器(Tomcat、Jetty、Undertow 和 Netty)都支持在 Servlet 和响应式平台上的优雅关机功能。
只需在 application.properties
文件中将 server.shutdown
属性设置为 graceful
,即可启用优雅停机:
server.shutdown=graceful
在优雅停机阶段,Tomcat、Netty 和 Jetty 会停止接受新的 Web 请求。而 Undertow 会继续接受,但会立即向客户端发送 503 Service Unavailable 响应。
默认情况下,该属性的值等于 immediate
,这意味着服务器会立即关闭。
在优雅关机时,可能有一些之前的请求仍在处理中。在这种情况下,服务器会等待这些活动请求在指定时间内完成。
可以使用 spring.lifecycle.timeout-per-shutdown-phase
配置属性来配置超时时间:
spring.lifecycle.timeout-per-shutdown-phase=1m
如上,在优雅停机时,对于那些仍在处理的请求,服务器等待最多一分钟。该属性的默认值为 30 秒。
2、总结 {#2总结}
本文介绍了如何在 Spring Boot 中配置优雅停机,以及如何配置服务器停机超时时间。
Ref:https://www.baeldung.com/spring-boot-web-server-shutdown