Apache kafka 使用Storm 0.10.x(KafkaSpout)从卡夫卡0.10.x主题中消费

Apache kafka 使用Storm 0.10.x(KafkaSpout)从卡夫卡0.10.x主题中消费,apache-kafka,apache-storm,Apache Kafka,Apache Storm,我不确定在这个论坛上问这个问题是否正确。我们使用Storm connector从一个卡夫卡主题中使用Storm。到现在为止,一切都很顺利。现在,我们应该连接到一个新的卡夫卡集群,该集群的升级版本为0.10.x,与运行在0.10.x版本上的Storm env相同 从storm文档()中,我可以看到storm1.1.0与支持新Kafka消费API的Kafka0.10.x兼容。但在这种情况下,我将无法在我的终端运行拓扑(如果我错了,请纠正我) 这方面有什么办法吗? 我已经看到,即使新的Kafka Co

我不确定在这个论坛上问这个问题是否正确。我们使用Storm connector从一个卡夫卡主题中使用Storm。到现在为止,一切都很顺利。现在,我们应该连接到一个新的卡夫卡集群,该集群的升级版本为
0.10.x
,与运行在
0.10.x
版本上的Storm env相同

从storm文档()中,我可以看到storm
1.1.0
与支持新Kafka消费API的Kafka
0.10.x
兼容。但在这种情况下,我将无法在我的终端运行拓扑(如果我错了,请纠正我)

这方面有什么办法吗? 我已经看到,即使新的Kafka Consumer API已删除ZooKeeper依赖项,但我们仍然可以使用旧的
Kafka console Consumer.sh
通过传递
--ZooKeeper
标志而不是新的
–引导服务器
标志(推荐)来使用来自它的消息。我使用Kafka 0.9运行此命令,并且能够使用Kafka 0.10.x上托管的主题

当我们尝试连接时,出现以下异常:

    java.lang.RuntimeException: java.lang.RuntimeException: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /brokers/topics/mytopic/partitions
at storm.kafka.DynamicBrokersReader.getBrokerInfo(DynamicBrokersReader.java:81) ~[stormjar.jar:?]
at storm.kafka.trident.ZkBrokerReader.<init>(ZkBrokerReader.java:42) ~[stormjar.jar:?]
正如我们在上面所看到的,它为我们提供了预期的输出,因为主题中有4个分区

在这一点上,我们有以下问题:

1) 是否可以使用Storm版本连接到卡夫卡
0.10.x
?有人试过这个吗

2) 即使我们能够使用,我们是否需要进行任何代码更改,以便在拓扑关闭/重新启动时检索消息偏移量。我这样问是因为我们将传递Zk集群详细信息,而不是旧KafkaSpout版本中支持的代理信息

这里没有选择了,任何指点都将不胜感激

更新:
我们可以在本地使用eclipse运行远程Kafka主题的同时,连接并使用它。为了确保storm不使用内存中的zk,我们使用了重载构造函数
LocalCluster(“zkServer”,port)
,它工作正常,我们可以看到数据的到来。这使我们得出结论,版本兼容性可能不是这里的问题

但是,在集群中部署拓扑时仍然没有运气。 我们已经验证了从storm box到ZK服务器的连接 znode看起来也不错

在这一点上,我们确实需要一些指针,这可能有什么问题,我们如何调试它?以前从未与卡夫卡合作过0.10倍,所以不确定我们到底错过了什么


非常感谢您的帮助和建议

Storm 0.10x与Kafka 0.10x兼容。我们仍然可以使用旧的
KafkaSpout
,它依赖于基于zookeeper的偏移存储机制

当我们试图到达一个不允许/接受来自我们终端的连接的远程Kafka群集时,出现了连接丢失异常。我们需要打开特定的防火墙端口,以便建立连接。看起来,当运行集群模式的拓扑时,所有监控节点都应该能够与zookeeper通信,因此防火墙应该为每个节点打开

     ./zkCli.sh -server remoteZKServer:2181

      [zk: remoteZKServer:2181(CONNECTED) 5] ls /brokers/topics/mytopic/partitions
      [3, 2, 1, 0]