Trung BìnhKafka iconKafka

Message ordering trong Kafka được đảm bảo như thế nào? Khi nào ordering bị phá vỡ?

Kafka đảm bảo thứ tự message trong phạm vi một partition — các message được ghi và đọc theo đúng thứ tự FIFO.

  • Tuy nhiên, không có đảm bảo thứ tự giữa các partition khác nhau.
  • Để đảm bảo ordering cho một nhóm message liên quan (ví dụ: tất cả sự kiện của một user), cần gán cùng một message key — Kafka sẽ hash key và luôn route message có cùng key vào cùng partition.
  • Ordering có thể bị phá vỡ khi: producer bật retries > 0max.in.flight.requests.per.connection > 1 (message sau có thể arrive trước message trước bị retry) — giải pháp là bật enable.idempotence=true.
  • Ngoài ra, rebalancing consumer group không ảnh hưởng đến thứ tự trong partition vì offset được duy trì.

Xem toàn bộ Kafka cùng filter theo level & chủ đề con.

Mở danh sách Kafka