Kafka 通過以下方式來保證消息不重復:
Producer 端發送消息時,可以設置消息的 key,Kafka 根據消息的 key 進行分區,確保相同 key 的消息會被發送到同一個分區,從而保證同一個 key 的消息不會被重復發送到不同的分區。
Consumer 端消費消息時,可以使用 Consumer Group 來確保同一個消息只被消費一次。每個 Consumer Group 中的 Consumer 只會消費各自分區中的消息,避免重復消費消息。
Consumer 在處理消息時,可以使用消息的 offset 來標記已經消費過的消息,從而避免重復消費消息。
通過以上方式,Kafka 可以保證消息不會被重復發送或消費。