【发布时间】:2018-01-30 07:50:51
【问题描述】:
我对 Kafka 0.11.0.0 有疑问
当我创建新主题时,将数据放入其中并使用 java 消费者使用它,重新启动 Kafka 后,我的消费者组的 0.11.0.0 偏移量消失。主题保持不变,其中包含相同的数据,只有偏移量被清除。这使得消费者再次从主题下载所有记录。奇怪的是,只有一个主题有其旧的、正确的偏移量,所有其他偏移量都被删除,可能是因为那个主题存在一段时间。
我使用 commitSync() 提交所有使用的记录。然后将偏移量保存在我的代理上,我可以重新启动我的 java 消费者,它从正确的偏移量开始,但是在重新启动整个 Kafka 后,消费者组的偏移量重置为 0。我在使用 kafka-consumer-groups.sh 重新启动后检查当前提交。脚本,肯定是经纪人重置了它们。
我在 Kafka 0.10.2.1 中对此没有任何问题。我只在 0.11.0.0 版本中遇到过这个问题。
我的消费者将 auto.offset.reset 设置为最早,自动提交设置为 false,因为我是手动提交的。 Kafka 数据存储在具有必要权限的非 tmp 目录中。其余的代理配置是默认的。
我需要 0.11.0.0 版本的交易。我不知道问题出在哪里。这可能是什么原因?有没有我错过的新配置参数?
@编辑 保留的主题也存在偏移量问题,但它并没有完全清除,但重启后的偏移量不正确,消费者在每次中断重启后都会获得大约 15% 的数据。
@Edit2 有时但并非总是我的 server.log 充满:
WARN Received a PartitionLeaderEpoch assignment for an epoch < latestEpoch. This implies messages have arrived out of order. New: {epoch:4, offset:1669}, Current: {epoch:5, offset1540} for Partition: __consumer_offsets-26 (kafka.server.epoch.LeaderEpochFileCache)
由于另一个日志,它似乎已连接到我的消费者组:
[2017-08-22 08:59:30,719] INFO [GroupCoordinator 0]: Preparing to rebalance group scrapperBackup with old generation 119 (__consumer_offsets-26) (kafka.coordinator.group.GroupCoordinator)
[2017-08-22 08:59:30,720] INFO [GroupCoordinator 0]: Group scrapperBackup with generation 120 is now empty (__consumer_offsets-26) (kafka.coordinator.group.GroupCoordinator)
重启时总是有这样的日志:
[2017-08-22 09:15:37,948] INFO Partition [__consumer_offsets,26] on broker 0: __consumer_offsets-26 starts at Leader Epoch 6 from offset 1699. Previous Leader Epoch was: 5 (kafka.cluster.Partition)
@Edit3 为 Kafka/Zookeeper 数据创建新目录并从头开始创建所有内容都有帮助。我不知道是什么问题,但它现在可以正常工作。应用程序的数据目录似乎发生了一些错误。
【问题讨论】:
-
您能出示您的消费者代码吗?您是否认为当偏移量提交时,kafka 会重新启动?
-
感谢您的回复!不幸的是,我无法显示代码,但每个提交都记录在文件中,我可以在那里看到提交,也可以在 kafka 上看到提交。关闭消费者后我正在重新启动kafka。无论如何,检查edit3。
-
不要在您的问题中编辑解决方案并在标题中添加
(Solved),您应该添加解决问题的方式作为答案。 -
谢谢,我还是新手
标签: java apache-kafka