Message Queue 29/08/2026 8 phút

Ba đội cùng đọc một tin mà không ai làm mất của ai — vì sao gọi Kafka là 'hàng đợi' đã sai từ gốc

Kafka hay bị gọi là hàng đợi tin nhắn, và cái tên đó đẻ ra phần lớn hiểu nhầm. Tôi đo đặc tính thật sự định nghĩa nó: đọc không xoá tin, ba nhóm cùng đọc đủ. Và 493.421 tin mỗi giây không đến từ 'mỗi tin nhanh' — bỏ gộp lô thì mỗi tin nhanh gấp 34 lần mà thông lượng sụp đổ.

Message Queue 29/08/2026 8 phút

Suýt nữa tôi đăng một bài bảo 'nén chẳng đáng' — may là tôi đo lại trên dữ liệu thật

Ai cũng bảo gộp lô là 'đổi độ trễ lấy thông lượng'. Tôi đo thì thấy nó làm độ trễ giảm 1.567 lần, cùng lúc với thông lượng. Còn nén trên dữ liệu ngẫu nhiên lại cho ra tệp to hơn bản không nén — và đó chính là cái bẫy suýt khiến tôi kết luận ngược.

Message Queue 29/08/2026 7 phút

Tôi gửi 4 khoá vào 4 partition, đinh ninh mỗi ngăn một khoá — kết quả là 5000/0/0/15000

Ba khái niệm topic–partition–offset thường được vẽ bằng hình hộp và mũi tên. Tôi mở thẳng thư mục dữ liệu trên đĩa ra xem, và vấp phải một cái bẫy về key mà không hình vẽ nào cho thấy: hai partition rỗng hoàn toàn, thêm partition cũng chẳng chữa.

Message Queue 29/08/2026 7 phút

Cả nghìn bài đo bảo 'Kafka chậm' — họ đang bấm giờ JVM khởi động, không phải Kafka

Một broker Kafka thật ra khởi động 2 giây, chiếm 290 MB — nhẹ hơn hẳn tiếng tăm của nó. Nhưng thứ khiến tôi dừng lại là một cái bẫy đo lường: công cụ dòng lệnh tốn 0,86 giây trong khi gửi tin thật chỉ mất 0,89 mili giây. Chênh nhau một nghìn lần, và rất nhiều người đo trúng cái sai.