1. 概述
在本快速教程中,我們將學習如何配置 Spring Boot 應用程序以更優雅地處理關閉操作。
2. 優雅關閉
自 Spring Boot 2.3 版本起,Spring Boot 現在支持所有嵌入式 Web 服務器(Tomcat、Jetty、Undertow 和 Netty)的優雅關閉功能,無論是在 Servlet 平台還是 Reactive 平台。
要啓用優雅關閉,只需在我們的 application.properties 文件中將 server.shutdown 屬性設置為 graceful 即可。
server.shutdown=graceful然後,Tomcat、Netty 和 Jetty 將在網絡層停止接受新的請求。而 Undertow 則會繼續接受新的請求,但會向客户端返回即時的 503 Service Unavailable 響應。
默認情況下,該屬性的值等於 immediate,這意味着服務器會立即關閉。
一些請求可能會在優雅關閉階段開始之前被接受。在這種情況下,服務器會等待這些活躍請求完成其工作,最多等待指定的時間。我們可以使用 spring.lifecycle.timeout-per-shutdown-phase 配置屬性來配置這個優雅關閉時間段。
spring.lifecycle.timeout-per-shutdown-phase=1m如果添加此項,服務器將等待最多一分鐘來完成活躍請求。此屬性的默認值為30秒。
3. 結論
在本教程中,我們瞭解到如何利用 Spring Boot 2.3 中的優雅關閉功能。