你的 Web Service 有一條 Graceful Shutdown 路徑。那就是 Bug。
Crash-only software 把每一次失敗都當成 crash,把每一次啟動都當成 recovery。對 Web Service 來說,這意味著刪掉你的 shutdown 邏輯,並設計出能撐過 kill -9 的狀態。
你的 Web Service 有一個 shutdown handler。它會 flush buffer、關閉連線、寫入 checkpoint。你也許測試過一次。在生產環境,它大概一年只在計畫性部署時執行一次。其他時候,你的服務死於 OOM kill、node eviction、斷電,或是部署超時後被 SIGKILL。…