storm:如何在发生异常时自动重新提交拓扑?

swvgeqrz  于 2021-06-21  发布在  Storm
关注(0)|答案(1)|浏览(311)

我有一个运行在storm集群上的拓扑,它有3个管理节点(每个节点32克)。在最初的几天里,拓扑结构进展顺利,一切正常。但在运行几天后,始终会出现以下错误,并且拓扑结构会崩溃:

java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /brokers/topics/TOPICNAME/partitions at storm.kafka.ZkCoordinator.refresh

该拓扑使用一个喷口来消费来自远程kafka服务的消息,该服务位于远程服务器上,并且该服务器也是上的zookeeper服务。
我猜这个异常的原因是zookeeper服务器不稳定,或者网络连接不稳定。
我没有权限对远程kafka/zookeeper服务器执行任何操作,因此我需要一个解决方案来保持拓扑稳定运行。是让拓扑稳定运行还是在异常出现时跳过异常?还是自动重新提交拓扑?
非常感谢你!

irlmq6kh

irlmq6kh1#

你应该做的第一件事是谷歌什么原因造成的连接丢失错误。
然后转到storm的日志文件并查看导致错误的代码行。
正确的方法是找出错误的原因。
但是,如果您想要更快的临时解决方案,那么可以使用storm的restapi终止拓扑。然后可以使用普通的java程序或任何语言的脚本从命令行重新启动拓扑。

相关问题