Storm支持动态拓扑吗?我希望这样做的功能是在Storm拓扑运行时根据用户需求动态更改拓扑。例如,当用户想知道流的前10个单词时,我使用顶部-10的螺栓来处理它,当用户想知道其他的事情时,我使用另一个螺栓来处理流并“拔出”顶部-10的螺栓。
我知道可以通过对流进行分区或复制流,并且总是运行所有功能,并且只演示我们想要的数据,或者我们可以关闭流并更新另一个拓扑,但是有“热插件”的方法吗?
发布于 2016-04-04 13:37:13
它是在03年6月15日暴风561号上加上的:
发布于 2013-10-14 08:36:36
你不能一刀切地改变风暴的拓扑结构,即修改喷口和螺栓布线。Storm拓扑的布线总是静态的。
但是,您可以以已经描述过的其他方式实现所需的功能。IMHO,最好、最符合逻辑的方法是运行多个拓扑--以防数据处理有很大差异。但是,如果在这两种情况下,大多数处理都是相似的,那么只需复制源流并在同一拓扑的不同分支中处理数据。
发布于 2013-10-15 14:34:45
没有内置的方法来实现这一点(将一个螺栓切换到另一个螺栓),但是您可以做的是编写一个基于接收到的输入执行任意代码的螺栓。只要您的输入和输出在风暴中具有相同的结构(发出相同的元组),理论上您就可以在运行时在螺栓中执行您想要的任何操作。如果您在Clojure中构建螺栓,这是特别容易的,但在Storm中使用的每种语言基本上都是可能的。
但是,这可能没有多大意义,因为您想要做的大多数计算都涉及多个螺栓,并且可以传递不同结构的元组。正如schiavuzzi在他们的回答中所说的,如果您希望对流进行多个独立的计算,您可能最好运行多个拓扑。
https://stackoverflow.com/questions/19353256
复制相似问题