Trung BìnhKafka iconKafka

Idempotent producer trong Kafka là gì? Cách bật và hoạt động như thế nào?

Idempotent producer đảm bảo rằng dù producer retry gửi message bao nhiêu lần (do network error, timeout), mỗi message chỉ được ghi đúng một lần vào partition. Cách hoạt động: Kafka assign cho mỗi producer một Producer ID (PID) duy nhất và mỗi message có sequence number tăng dần per-partition. Broker reject nếu thấy message có sequence number đã nhận hoặc không liên tiếp. Bật bằng cách set enable.idempotence=true — tự động set acks=all, max.in.flight.requests.per.connection=5, retries=Integer.MAX_VALUE. Idempotence chỉ trong một producer session — nếu producer restart, PID mới và sequence reset. Để exactly-once across sessions và multiple partitions, cần Kafka Transactions.

Ví dụ:

props.put("enable.idempotence", "true");
props.put("transactional.id", "my-tx-id"); // cho transactions

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

Mở danh sách Kafka