卡夫卡有重复的消息

问题描述 投票:3回答:1

在生成或使用数据时我没有看到任何失败,但是生产中存在大量重复消息。对于获得大约100k消息的小主题,有大约4k重复,虽然我说没有失败,并且最重要的是没有实现重试逻辑或设置配置值。

我还检查了那些重复消息的偏移值,每个消息都有不同的值,告诉我问题出在生产者身上。

任何帮助将受到高度赞赏

apache-kafka kafka-consumer-api kafka-producer-api
1个回答
6
投票

阅读更多关于kafka中的消息传递:

https://kafka.apache.org/08/design.html#semantics

因此,有效地Kafka保证默认情况下至少一次交付,并且允许用户通过禁用生产者的重试并在处理一批消息之前提交其偏移量来最多实施一次交付。完全一次交付需要与目标存储系统合作,但Kafka提供了偏移,这使得实现这一直接。

可能你正在寻找像jms一样的“一次交付”

https://cwiki.apache.org/confluence/display/KAFKA/FAQ#FAQ-HowdoIgetexactly-oncemessagingfromKafka

在数据生成期间有两种方法可以准确获取一次语义:1。每个分区使用一个单一写入器,每次出现网络错误时,请检查该分区中的最后一条消息,看看上次写入是否成功2.包含主键消息中的(UUID或其他内容)和消费者的重复数据删除。

我们在系统中实施了第二点。

© www.soinside.com 2019 - 2024. All rights reserved.