Kafka: Zero to Hero
Sê-ri 40 phần về Apache Kafka, mỗi phần một phép đo chạy được trên Docker.
12/40 phần đã đăng
Message Queue
1
Kafka là gì và không là gì
Ba nhóm tiêu thụ cùng đọc một tin mà không ai làm mất của ai. Và 493.421 tin mỗi giây đến từ gộp lô, không từ mỗi tin nhanh.
29/08/2026
· 6 phút đọc
2
Dựng một broker và gửi tin đầu tiên
Khởi động 2 giây, chiếm 290 MB. Và một cái bẫy khi đo: 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.
29/08/2026
· 6 phút đọc
3
Topic, partition và offset
Bốn key vào bốn partition cho ra 5000/0/0/15000 — hai partition rỗng hoàn toàn. Đo cách Kafka thật sự xếp dữ liệu trên đĩa.
29/08/2026
· 5 phút đọc
4
Producer: acks và độ bền
acks=0 chậm hơn acks=1 5%. Chỉ acks=all mới thật sự tốn — và đây là cái nửa thông lượng đó mua được.
29/08/2026
· 6 phút đọc
5
Producer: gộp lô và nén
Gộp lô làm độ trễ giảm 1.567 lần chứ không tăng. Và nén trên dữ liệu ngẫu nhiên khiến tệp to hơn bản không nén.
29/08/2026
· 6 phút đọc
6
Idempotent và ghi đúng một lần
Giao dịch bị huỷ vẫn nằm nguyên trên đĩa và vẫn chiếm offset. Hệ quả: consumer bắt kịp hoàn toàn vẫn hiện lag khác 0.
29/08/2026
· 7 phút đọc
7
Consumer: nhóm và phân chia partition
Cân bằng lại kiểu hợp tác giữ được partition đang chạy, nhưng tổng thời gian ngừng lại cao gấp 375 lần. Đo cả ba lần.
30/08/2026
· 6 phút đọc
8
Consumer: chốt offset
Cùng một lần sập: chốt tự động cho 1.150 tin trùng, chốt sau cho 50 tin trùng, chốt trước làm mất hẳn 50 tin mà không có lỗi nào.
30/08/2026
· 6 phút đọc
9
Cân bằng lại nhóm
Chiến lược chia mặc định cho ra 2 partition với consumer này và 4 với consumer kia. Và một dòng cấu hình xoá sạch cân bằng lại khi khởi động lại.
30/08/2026
· 5 phút đọc
10
Độ trễ đầu-cuối
Kafka mặc định cho 0,35 ms. Một dòng fetch.min.bytes đẩy nó lên 503 ms — chậm hơn 1.439 lần mà không có lỗi nào.
30/08/2026
· 6 phút đọc
11
Số partition bao nhiêu là đủ
Một partition đã đạt 83% thông lượng đỉnh. 128 partition không nhanh hơn 4. Nhưng bộ nhớ broker thì tăng gấp 3,4 lần.
30/08/2026
· 5 phút đọc
12
Khoá tin và thứ tự
Gửi 1 đến 12 đúng thứ tự, consumer nhận về 1-5-9-2-3-4. Và tăng partition làm 9 trong 20 khoá đổi chỗ vĩnh viễn.
30/08/2026
· 6 phút đọc
Còn 28 phần nữa sẽ lần lượt được đăng.