Context trong Go — hủy request đúng cách, đừng để leak
Context trong Go giúp hủy request đúng lúc, nhưng dùng sai thì leak goroutine và timer. Pitfall thực tế và checklist trước khi merge.
THE ENGINEERING JOURNAL
Các bài viết về go.
Context trong Go giúp hủy request đúng lúc, nhưng dùng sai thì leak goroutine và timer. Pitfall thực tế và checklist trước khi merge.
Bỏ mock database, dùng Testcontainers dựng PostgreSQL thật ngay trong test: code Go, bẫy thường gặp và cách chạy nhanh trên CI.
Chạy pprof đúng cách để tìm hot path CPU, memory leak và goroutine kẹt trong service Go — kèm code mẫu và mấy cái bẫy em từng dính.
Goroutine rẻ nhưng không miễn phí. Bài này chỉ chỗ Goroutine leak thường gặp và cách bắt bằng runtime.NumGoroutine + pprof.
Graceful shutdown trong Go: bắt SIGTERM, dừng nhận request mới, chờ request dở xong rồi mới tắt. Code mẫu + kinh nghiệm thực tế.
Fan-in fan-out giúp xử lý hàng ngàn tác vụ song song bằng goroutine rồi gom kết quả — kèm code mẫu Go và kinh nghiệm thực chiến.
Profile CPU, heap và goroutine bằng pprof trong Go: cách bật endpoint, đọc flame graph và kinh nghiệm bắt bottleneck thực tế.
Goroutine leak âm thầm ăn hết RAM của bạn. Nhận diện 3 pattern leak kinh điển và fix bằng context + select + goleak.
Học cách dùng Testcontainers để viết integration test với dependency thật (Postgres, Redis) trong Go — không mock, chạy CI mượt, code an tâm hơn.
Học cách graceful shutdown HTTP server, worker pool và background jobs trong Go bằng signal.Notify, context và sync.WaitGroup từ kinh nghiệm production thực tế.