Kafka 通过以下方式来保证消息不重复:
Producer 端发送消息时,可以设置消息的 key,Kafka 根据消息的 key 进行分区,确保相同 key 的消息会被发送到同一个分区,从而保证同一个 key 的消息不会被重复发送到不同的分区。
Consumer 端消费消息时,可以使用 Consumer Group 来确保同一个消息只被消费一次。每个 Consumer Group 中的 Consumer 只会消费各自分区中的消息,避免重复消费消息。
Consumer 在处理消息时,可以使用消息的 offset 来标记已经消费过的消息,从而避免重复消费消息。
通过以上方式,Kafka 可以保证消息不会被重复发送或消费。