Q

Quản trị viên

Là một lập trình viên yêu công nghệ, thích viết blog để chia sẻ kiến thức, kinh nghiệm lập trình và những điều thú vị trong thế giới tech.

2272 bài viết · Website
Lập trình Go 22/09/2026 10 phút

Circuit breaker trong Go: tự ngắt lời gọi tới service đang chết, tránh sập dây chuyền

Circuit breaker theo dõi lỗi và tự ngắt lời gọi tới service đang hỏng để không dồn tải. Đo thật trong Go 1.23: ba trạng thái Closed/Open/HalfOpen chuyển đúng, và khi breaker mở nó chặn nhanh trong 107 nano giây thay vì chờ 55ms timeout của service chết.

Lập trình Go 22/09/2026 11 phút

Tiny allocator của Go: gộp object nhỏ để một byte chỉ tốn một byte

Object tí hon rất phổ biến nhưng cấp mỗi cái một slot 8-16 byte quá phí. Tiny allocator gộp object dưới 16 byte không con trỏ vào chung khối 16B. Đo thật: object 1-byte nén xuống đúng 1.0 B mỗi cái (thắng 8 lần), nhưng cùng cỡ mà có con trỏ thì không được gộp. Go 1.23.

Lập trình Go 22/09/2026 9 phút

WebSocket server thật trong Go: nâng cấp từ HTTP, giao tiếp hai chiều bền vững

WebSocket nâng cấp một kết nối HTTP thành kênh hai chiều mở liên tục cho chat, thông báo đẩy, dữ liệu real-time. Đo thật trong Go 1.23: bắt tay 101 Switching Protocols, gửi/nhận trên một kết nối bền, và một message qua WebSocket nhanh hơn HTTP polling khoảng 23 lần.

Lập trình Go 22/09/2026 11 phút

LRU cache tự cài trong Go: get/put O(1) bằng map và danh sách liên kết đôi

LRU cache khi đầy loại phần tử lâu nhất chưa dùng. Nó cần cả tra cứu theo key và cập nhật thứ tự dùng đều O(1) — không cấu trúc đơn lẻ nào làm được cả hai. Bài tự cài trong Go bằng map + danh sách liên kết đôi, đo thật: loại đúng phần tử ít dùng nhất, get+put chỉ 79.6 ns O(1) hằng số.