我有生产者,我打电话给Kafka并将记录发布到Kafka,然后我打电话给消费者,该消费者返回记录,但是当我再次呼叫消费者时,消费者不会返回任何记录。 (我需要得到我再次发给卡夫卡的记录)。我该怎么做?(任何代码都将不胜感激)
答案 0 :(得分:1)
Kafka在消费后不会删除该消息。但它保留了任何消费者阅读的抵消。因此,在您从中读取消息后,偏移量将继续。第二次读取没有读取任何内容,因为在您的唯一消息之后的偏移点并且之后没有任何内容。您应该在再次阅读之前尝试重置偏移量。看这篇文章:
Reset consumer offset to the beginning from Kafka Streams
但是如果您不想在本地或全局重置,您可以创建另一个消费者群组,因为每个消费者群体都有自己的偏移量,新消费者的第二次阅读可以达到您想要的效果。看到这个链接:
希望这会有所帮助。
答案 1 :(得分:0)
您可以手动将偏移重置为所需的偏移量,或者如果您需要从起始偏移量消费者(kafka中可用的任何内容),则可以设置消费者属性“auto.offset.reset = earliest”
答案 2 :(得分:0)
您还可以每次为消费者属性提供新的group.id
值。只需生成一个随机字符串值。必须将属性auto.offset.reset
设置为earliest
。