Kafka喷口消费者和另一个消费者运行在Spring不能同时运行

5cnsuln7  于 2021-06-07  发布在  Kafka
关注(0)|答案(0)|浏览(225)

我的应用程序接受一个url,其中包含它需要通过使用spring公开的rest服务处理的数据。
每次它收到一个接受数据的url时,应用程序
将url发送到主题为“dataready”的dataready使用者
dataready使用者从url下载数据,并使用kafka生产者将其发送到主题为“dataprocess”的storm拓扑
处理后的数据被风暴拓扑内部的Kafka喷口接受。这只是一个测试系统,因此所有代码都在localhost中运行,只有一个分区、一个代理和1的复制因子。
问题是我不能让kafkaspout和dataready消费者同时连接到zookeeper。在tomcat内部运行的kafkaspout和dataready消费者在单独运行时都能够连接到zookeeper。
我使用的是apache-storm-0.9.1-incubating和kafkaèu 2.9.2-0.8.1.1。
我的storm.yaml文件具有以下配置

storm.zookeeper.servers:
 - "localhost"

nimbus.host: "localhost"

在tomcat之后运行storm时抛出的异常

java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException:     org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss
        at storm.kafka.ZkCoordinator.refresh(ZkCoordinator.java:83) ~[stormjar.jar:na]
        at storm.kafka.ZkCoordinator.getMyManagedPartitions(ZkCoordinator.java:45) ~[stormjar.jar:na]
        at storm.kafka.KafkaSpout.nextTuple(KafkaSpout.java:118) ~[stormjar.jar:na]
        at backtype.storm.daemon.executor$eval3848$fn__3849$fn__3864$fn__3893.invoke(executor.clj:562) ~[na:na]
        at backtype.storm.util$async_loop$fn__384.invoke(util.clj:433) ~[na:na]
        at clojure.lang.AFn.run(AFn.java:24) [clojure-1.4.0.jar:na]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60]
    Caused by: java.lang.RuntimeException: java.lang.RuntimeException: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss
        at storm.kafka.DynamicBrokersReader.getBrokerInfo(DynamicBrokersReader.java:62) ~[stormjar.jar:na]
        at storm.kafka.ZkCoordinator.refresh(ZkCoordinator.java:54) ~[stormjar.jar:na]
        ... 6 common frames omitted

当我先运行storm,然后运行tomcat时,会得到一个非节点异常。有人能帮我理解为什么我会有这种行为吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题