Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 如何检测卡夫卡主题中的重复消息?_Apache Kafka_Kafka Consumer Api_Azureservicebus_Kafka Producer Api_Apache Kafka Streams - Fatal编程技术网

Apache kafka 如何检测卡夫卡主题中的重复消息?

Apache kafka 如何检测卡夫卡主题中的重复消息?,apache-kafka,kafka-consumer-api,azureservicebus,kafka-producer-api,apache-kafka-streams,Apache Kafka,Kafka Consumer Api,Azureservicebus,Kafka Producer Api,Apache Kafka Streams,嗨,我有一个类似下图的架构 我有两个卡夫卡制作人,他们会经常向卡夫卡主题发送重复消息 是否有一种方法可以让我轻松地处理这种情况,比如服务巴士主题 谢谢你的帮助 假设您实际上有多个不同的制作人编写相同的消息,我可以看到以下两个选项: 1) 将所有重复项写入单个卡夫卡主题,然后使用卡夫卡流(或任何其他流处理器,如Flink、Spark Streaming等)来消除消息的重复,并将消除重复的结果写入新主题 下面是一个使用州立商店的卡夫卡流的好例子: 2) 确保复制的邮件具有相同的邮件密钥。在这之后,您

嗨,我有一个类似下图的架构

我有两个卡夫卡制作人,他们会经常向卡夫卡主题发送重复消息

是否有一种方法可以让我轻松地处理这种情况,比如服务巴士主题

谢谢你的帮助


假设您实际上有多个不同的制作人编写相同的消息,我可以看到以下两个选项:

1) 将所有重复项写入单个卡夫卡主题,然后使用卡夫卡流(或任何其他流处理器,如Flink、Spark Streaming等)来消除消息的重复,并将消除重复的结果写入新主题

下面是一个使用州立商店的卡夫卡流的好例子:


2) 确保复制的邮件具有相同的邮件密钥。在这之后,您需要启用和卡夫卡将最终摆脱重复。这种方法不太可靠,但如果您适当调整压缩设置,它可能会提供您想要的内容。

现在,Apache Kafka只支持一次交付:

您的问题相当抽象。。。你的意思是,一个制作人多次发送一条消息?如果是,您可以利用Kafka 0.11中添加的“幂等生产者”。否,我有两个不同的生产者,它们有时会向Kafka主题写入相同的消息。@sap1ens在下面给出了一个很好的答案。