Apache storm 将现有拓扑替换为新拓扑

Apache storm 将现有拓扑替换为新拓扑,apache-storm,Apache Storm,我已在storm拓扑中添加了新的螺栓,并希望将现有拓扑与新拓扑交换。如何实现此目的,使第二个拓扑启动时不再读取相同的消息。如果您使用storm提供的卡夫卡喷嘴从卡夫卡读取,它会将其偏移量存储在Zookeeper中。如果保持相同中定义的id,则每次卡夫卡喷口重新启动时,它都应检查Zookeeper并从上次提交的偏移量重新启动。实现不再阅读相同信息的目标 您的数据源是什么?我正在使用kafka作为数据源。请参见:@MatthiasJ.Sax:即使保持相同的根和id,kafka也会从一开始读取数据。即

我已在storm拓扑中添加了新的螺栓,并希望将现有拓扑与新拓扑交换。如何实现此目的,使第二个拓扑启动时不再读取相同的消息。

如果您使用storm提供的卡夫卡喷嘴从卡夫卡读取,它会将其偏移量存储在Zookeeper中。如果保持相同中定义的id,则每次卡夫卡喷口重新启动时,它都应检查Zookeeper并从上次提交的偏移量重新启动。实现不再阅读相同信息的目标

您的数据源是什么?我正在使用kafka作为数据源。请参见:@MatthiasJ.Sax:即使保持相同的根和id,kafka也会从一开始读取数据。即使传递相同的id,拓扑也会从一开始读取数据。这是我的代码段<代码>私有静态KafkaSpout tEmitter(字符串主题){ZkHosts ZkHosts=new ZkHosts(zkHostPort);SpoutConfig-spoutCfg=new-SpoutConfig(ZkHosts,topic,zkRoot,zkSpoutId);spoutCfg.scheme=new-SchemeAsMultiScheme(new-StringScheme());kafkafkaspout-kafkafkaspout=new-kafkafkaspout(spoutCfg);返回kafkafkaspout;}