【发布时间】:2017-03-09 03:05:50
【问题描述】:
我们的 Storm 拓扑中有一个场景,其中 KafkaSpouts 无法使用来自主题的任何消息。 Spout 不断记录相同的 WARN 消息:
获取偏移量超出范围的获取请求
...
2016-10-26 11:11:31.070 o.a.s.k.KafkaUtils [WARN] Partition{host=somehost.org:9092, topic=my-topic, partition=0} Got fetch request with offset out of range: [3]
2016-10-26 11:11:31.078 o.a.s.k.KafkaUtils [WARN] Partition{host=somehost.org:9092, topic=my-topic, partition=0} Got fetch request with offset out of range: [3]
2016-10-26 11:11:31.084 o.a.s.k.KafkaUtils [WARN] Partition{host=somehost.org:9092, topic=my-topic, partition=0} Got fetch request with offset out of range: [3]
2016-10-26 11:11:31.098 o.a.s.k.KafkaUtils [WARN] Partition{host=somehost.org:9092, topic=my-topic, partition=0} Got fetch request with offset out of range: [3]
2016-10-26 11:11:31.104 o.a.s.k.KafkaUtils [WARN] Partition{host=somehost.org:9092, topic=my-topic, partition=0} Got fetch request with offset out of range: [3]
2016-10-26 11:11:31.111 o.a.s.k.KafkaUtils [WARN] Partition{host=somehost.org:9092, topic=my-topic, partition=0} Got fetch request with offset out of range: [3]
...
Spout 被配置为从 zookeeper 读取最后一次提交的偏移量,并且在这种情况下该偏移量大于 Kafka 中最新的消息偏移量。我们也在研究为什么主题偏移会重置。
目前我们通过观察风暴日志中的超出范围警告来解决问题,删除zookeeper偏移条目,然后重新部署拓扑。
【问题讨论】:
-
您最近是否将您的 spout 指向了一个新的主题名称?您是否有多个具有相同 ID 的 spout?
-
该问题主要发生在开发环境中,因此我可以看到提交给 zookeeper 的“误导性”偏移量。我希望将 KafkSpout 配置为放弃获取超出范围偏移量的无限循环,并返回到最早或最新的偏移量。
标签: apache-kafka apache-storm apache-zookeeper