
Graceful shutdown: lợi ích và lý do phải có
- Golang
- August 28, 2025
Table of Contents
Có lần team mình deploy bản mới lúc 11h đêm. kubectl rollout restart xong, 30 giây sau PagerDuty réo: 200 cái 502 trong 5 giây. Khách hàng đang đặt đồ ăn thì timeout. Mình lật đật rollout undo, xong ngồi check log - hóa ra pod cũ bị SIGTERM, HTTP server tắt ngay lập tức, 50 request đang xử lý dở bị cắt ngang hết.
Lỗi không phải ở Kubernetes. Lỗi ở service mình: không có graceful shutdown.
Sau đêm đó, mình bỏ 2 ngày implement graceful shutdown cho toàn bộ service. Dưới đây là pattern mình dùng, kèm code Go chạy được và những thứ Kubernetes cần sync.


