Apache kafka Storm无法从Kafka获取消息,消息为:获取了偏移量超出范围的获取请求

Apache kafka Storm无法从Kafka获取消息,消息为:获取了偏移量超出范围的获取请求,apache-kafka,apache-storm,Apache Kafka,Apache Storm,我是风暴世界的新手。在我的拓扑结构中,我使用来自Kafka的数据,并使用SpoutConfig 通过一些测试,我得到了以下警告消息: 2015-10-01 23:31:51.753 s.k.KafkaUtils[警告]收到偏移量超出范围的提取请求:[85970] 2015-10-01 23:31:51.755使用新偏移量的s.k.分区管理器[警告]:0 MySpoutConfig将IgnorezkOffset设置为false,因此我希望在提交新拓扑时,它使用存储在Zookeeper中的最新偏移量

我是风暴世界的新手。在我的拓扑结构中,我使用来自Kafka的数据,并使用
SpoutConfig

通过一些测试,我得到了以下警告消息:

2015-10-01 23:31:51.753 s.k.KafkaUtils[警告]收到偏移量超出范围的提取请求:[85970] 2015-10-01 23:31:51.755使用新偏移量的s.k.分区管理器[警告]:0

My
SpoutConfig
IgnorezkOffset
设置为
false
,因此我希望在提交新拓扑时,它使用存储在Zookeeper中的最新偏移量


但是,当我删除旧拓扑并提交新拓扑时,会显示警告消息,新拓扑无法使用偏移量。如果我忘了什么,你能给我一个好主意吗?

最后,我发现我错过了什么。 由于我的拓扑使用两个不同的Kafka源,因此我使用不同的
spoutConnifg
实例创建了两个
KafkaSpout
,每个实例都分配给每个
KafkaSpout

但是当我实例化每个
SpoutConfig
实例时,我向每个实例传递了相同的id。这导致只有一个id为的znode,即使我希望从两个不同的来源消费


因此,两个
PartitionManager
尝试使用具有偏移信息的同一个znode。如果
PartitionManager
中的一个尝试使用偏移量为另一端的新元组,则会显示警告消息。

您可以发布用于生成您的喷注配置和KafkaSpout的代码吗?@SQL.injection谢谢您的评论。最后我发现我错过了什么。我将在下面回答我的问题。请参考它。:)