【发布时间】:2016-12-08 14:43:35
【问题描述】:
我希望避免向 Kafka 主题发送重复消息。
实现它的理想方法是什么?
使用 Apache Kafka 的 Java 客户端,在调用 KafkaProducer.send
之前是否有验证消息是否存在我指的是这个doc
【问题讨论】:
标签: java apache-kafka kafka-producer-api
我希望避免向 Kafka 主题发送重复消息。
实现它的理想方法是什么?
使用 Apache Kafka 的 Java 客户端,在调用 KafkaProducer.send
之前是否有验证消息是否存在我指的是这个doc
【问题讨论】:
标签: java apache-kafka kafka-producer-api
目前 (Kafka 0.10.1),没有办法使用 Kafka 进行一次性交付。无论您想要做什么解决方法,总会有一个差距,您最终可能会丢失消息或重复消息。
但是,Kafka 将添加一个idempotent producer(计划用于0.10.2),这将允许您避免重复写入。 0.10.2 的目标发布日期是 beginning 2017。
【讨论】:
每次发送新邮件时都检查是否发送了相同的邮件是不切实际的。换一种方式想一想:您可以调用 KafkaProducer.send 方法,并通过回调通知您成功或失败。
【讨论】:
这几乎超出了 Kafka 的范围。您需要使用为随机访问提供适当索引的不同存储来执行此操作。 根据您的需要,可以是(分布式)缓存、键值存储或其他任何东西。
您可能希望在消费者端而不是生产者端执行此操作,因为不同的消费者可能使用不同的重复数据删除策略(有些消费者可能只是容忍重复)。
【讨论】: