Apache Kafka 读取后手动删除队列



我对 kafka 真的很陌生,我注意到消费者在阅读队列消息后,似乎队列消息已经消失了。如果这是主题队列的正常行为...有没有办法在阅读后不自动删除主题消息?

顺便说一下,这是我为启动本地 Kafka 服务器而运行的命令:

.binwindowszookeeper-server-start.bat .configzookeeper.properties
.binwindowskafka-server-start.bat .configserver.properties

夫卡版本:kafka_2.12-1.0.0

我使用 kafka 来存储将由我的邮件发件人服务处理(读取(的所有邮件。这样做的问题是...似乎在我的邮件服务器阅读主题消息(邮件消息(之后,无论邮件发送过程是否成功,都将永远消失。

我想知道这对卡夫卡来说是否正常。
如果是,有没有办法在邮件发送成功后手动删除主题消息。

对不起,如果我的问题完全是菜鸟。

使用者的偏移量在您阅读消息后会发生变化。

如果我正确理解了你的问题,你可能总是需要尽早阅读。

查properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "最早"(;

不必后悔。

在 kafka 中,消息(或记录(在使用后不会被删除。

您的使用者具有名为"group.id"的属性,代理将偏移量关联到该属性。此偏移量也存储在另一个名为"_consumer"的 kafka 主题中。

如果您停止使用者并重新启动它(具有相同的 group.id 属性值(,则代理将从使用者停止之前提交的最后一个偏移量向您发送更新的记录。如果您使用另一个 group.id 启动另一个使用者,则您的 group.id 不存在现有的偏移量,并且根据您决定使用以下消费者属性的策略properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");您将重新使用所有主题。

如果不是这样,也许你的主题的保留是做空?您可以使用以下命令进行检查: kafka-topics --zookeeper host_zoo:port_zoo --topic your_topic --describe

最新更新