ank*_*ddy 5 azureservicebus apache-kafka kafka-consumer-api kafka-producer-api apache-kafka-streams
嗨,我有一个类似于下图所示的架构。
我有两个 kafka 生产者,它们将向 kafka 主题发送频繁重复消息的消息。
有没有一种方法可以以简单的方式处理这种情况,例如服务总线主题。
感谢您的帮助。
假设您实际上有多个不同的生产者编写相同的消息,我可以看到这两个选项:
1) 将所有重复项写入单个 Kafka 主题,然后使用 Kafka Streams(或任何其他流处理器,如 Flink、Spark Streaming 等)之类的工具对消息进行重复数据删除,并将重复数据删除后的结果写入新主题。
这是一个使用状态存储的很棒的 Kafka Streams 示例:https://github.com/confluenceinc/kafka-streams-examples/blob/4.0.0-post/src/test/java/io/confluence/examples/streams/EventDeduplicationLambdaIntegrationTest。爪哇
2) 确保重复的消息具有相同的消息密钥。之后,您需要启用日志压缩,Kafka最终将删除重复项。这种方法不太可靠,但如果您正确调整压缩设置,它可能会给您带来您想要的结果。
| 归档时间: |
|
| 查看次数: |
9612 次 |
| 最近记录: |