【问题标题】:Killing storm topology from spout从 spout 中杀死风暴拓扑
【发布时间】:2018-06-09 04:46:35
【问题描述】:

我们有一个用例,我们不想连续运行风暴拓扑。相反,应该在指定时间处理一组输入(10K+),Spout 不断发出这些输入并由拓扑中的其余螺栓处理。处理完所有输入后,我的 spout 中的 nextTuple 将不会发出任何内容。

此时我们希望我们的拓扑每天晚上 12:00 进入睡眠状态并重新启动进程。

是否在storm config中设置任何属性以每天运行一次拓扑并在处理完成后休眠并在指定时间启动?

【问题讨论】:

    标签: apache-storm topology


    【解决方案1】:

    我不知道您要求的功能。 Storm 不是批处理系统,它意味着要连续运行。考虑 Storm 是否非常适合这个用例。

    也就是说,您应该能够实现您想要的。您可以在 spout 输入的末尾输入“我完成了”消息。当 spout 命中该消息并且所有其他未决消息都被确认时,它可以使用 Nimbus 客户端来终止或停用拓扑(取决于您是要终止还是停用),请参阅https://stackoverflow.com/a/37134473/8845188。然后最后一步是使用您最喜欢的调度软件在每天午夜重新提交/重新激活拓扑。

    【讨论】:

    • 非常感谢!是的,我已经像我一样实施了 ack 并且它正在工作
    猜你喜欢
    • 2018-07-19
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 2015-11-14
    • 2013-08-06
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    相关资源
    最近更新 更多