通过kafka复制文件并防止重复数据

Replicate file over kafka and prevent duplicate data

我有兴趣通过 kafka 通道实时发布文件内容(我可以在 python 中执行此操作)但我想知道什么策略可能有效防止发送重复数据以防我出版商崩溃,我需要重新启动它? kafka 中有什么可以直接帮助解决这个问题,还是我必须明确跟踪到目前为止发布的文件偏移量?

我想另一种方法可能是发布者 bootstrap 已经发布的数据并计算接收到的字节数然后文件查找和恢复?

是否有任何现有的脚本或应用程序可以处理此问题我或许可以利用?

与其自己发布,我强烈推荐使用 Kafka Connect。除了不必编写自定义代码外,连接器还可以为您支持 "exactly-once" 功能。

有关连接器的更多详细信息,请参见此处:https://www.confluent.io/product/connectors/

您可能需要检查 kafka 的日志压缩功能。如果您拥有所有重复消息的唯一密钥,它会为您执行重复数据删除。

https://kafka.apache.org/documentation/#compaction