首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >消灭风暴拓扑后的资源清理

消灭风暴拓扑后的资源清理
EN

Stack Overflow用户
提问于 2019-03-06 14:01:39
回答 1查看 542关注 0票数 1

我们有一个与MariaDB数据库交互的风暴拓扑。我们的螺栓实现了IRichBolt接口并覆盖了生命周期方法。我们在prepare方法中打开一个db连接,并在cleanup方法中关闭它。cleanup方法文档指出:

当IBolt将被关闭时调用。没有监护人会调用清理,因为主管在集群上杀死了-9的工作人员进程。保证调用清理的一个上下文是在本地模式下运行Storm时终止拓扑。

kill -9命令在不清理任何资源的情况下杀死进程。因此,我们得出这样的结论:在关闭拓扑时,不需要调用cleanup方法并关闭db连接。

因此,接下来要问我的问题,我们有一个用于拓扑部署的shell脚本,该脚本在执行时会以超时0终止当前拓扑,并部署一个新的拓扑。我们在db级别面临一个问题,即有许多连接被打开,这给了我们以前的连接没有关闭的提示。(在前一个拓扑中打开的那个)。

我们的假设正确吗?增加超时会清除所有的资源吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-06 14:36:57

不是的。增加拓扑超时不会影响员工清理的时间。当您使用例如30秒超时时,这只会关闭喷口,并给出其余的拓扑30秒来完成处理。

你想要的是增加风暴的持续时间,让工人在杀戮前停止工作。https://github.com/apache/storm/blob/b07413670fa62fec077c92cb78fc711c3bda820c/storm-server/src/main/java/org/apache/storm/DaemonConfig.java#L780选项允许您指定风暴在发送kill -9之前将等待多长时间。默认为3秒。您需要在storm.yaml中设置此选项,在拓扑配置中设置它将不会产生任何影响。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55024919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档