我正在将消息和时间戳一起写入kafka。如果我重试,时间戳可能会改变,并且正在编写的生产者,但消息内容和消息ID是相同的。消息ID在消息到达之前生成,它是一个uuid。
我怎样才能确保kafka不接受第二个副本,如果它成功写入主题,但是ack丢失了,那么链上的服务会重试?消费者绝不能看到重复的消息。
答案 0 :(得分:2)
一般情况下,有两种情况可以向Kafka发送相同的消息:
我认为您对 2 的情况感兴趣。 Kafka开发人员的呼叫案例 2。完全一次交付。最新版本的Kafka支持交易,以便一次性交付。有关Kafka如何与代码段一起完整解释,请参阅此article by Confluent (the Kafka company)。