⚖️ Cheatsheet: Kafka so với BullMQ: thiết kế kiến trúc hàng đợi hoàn chỉnh

[!NOTE] Cheatsheet tra cứu nhanh cho toàn bộ khóa học. Dùng khi cần chốt mô hình, chọn công cụ, hoặc nhớ lại cú pháp retry/DLQ.


1. Bức tranh tổng quan

Tiêu chí BullMQ Kafka
Bản chất Hàng đợi công việc (job queue) Log sự kiện phân tán (event log)
Nền tảng Redis Cluster broker (tối thiểu 3 broker)
Đơn vị dữ liệu Job Record
Sau khi xử lý xong Job bị xóa Record được giữ lại
Số consumer nhận 1 item Đúng một worker Nhiều consumer group đọc độc lập
Đọc lại (replay) Không (job đã xong là mất) Có, tua offset đọc lại được
Mô hình Task ngắn hạn, xong thì biến mất Lịch sử sự kiện, append-only
Vận hành Nhẹ, dễ Nặng, cần đội vận hành
Chi phí nhỏ Rẻ Đắt (disk, network, broker)
Chi phí biên khi lớn Xấu dần (mọi job nằm trong Redis) Tốt hơn (scale theo partition)

Câu chốt: hai mô hình khác nhau ở chỗ dữ liệu xử lý xong thì đi đâu.


2. Kafka: bốn khái niệm cốt lõi

Khái niệm Định nghĩa Vai trò
Topic Cái tên, kênh logic Đơn vị tổ chức sự kiện
Partition Log có thứ tự bên trong topic Đơn vị song song hóa
Offset Con trỏ vị trí trong một partition Đánh dấu consumer đã đọc tới đâu
Consumer group Nhóm consumer chia nhau partition Mỗi group giữ offset riêng, scale ngang

Quy tắc vàng của partition

  • Thứ tự chỉ được đảm bảo trong một partition, không đảm bảo toàn topic.
  • Cùng một key (ví dụ orderId) đi vào cùng partition, nên giữ được thứ tự cho key đó.
  • Số consumer active trong một group không vượt quá số partition (consumer thừa sẽ ngồi không).
  • Muốn tăng song song hóa: tăng số partition.

This cheatsheet is part of the paid section. Sign in and purchase the course to view the full content. Sign in