在Apache Storm中运行时编辑螺栓进程

问题描述:

我的项目通过风暴将对象数据传输到图形应用程序。这些对象的外观取决于风暴拓扑中由螺栓分配的变量。在Apache Storm中运行时编辑螺栓进程

我的问题是,是否可以通过向它发送消息更新螺栓过程来更改它附加到对象数据的变量。例如,在向螺栓发送消息之后,声明我希望任何具有参数x的对象超过某个数字时,显示为红色而不是蓝色。 螺栓过程然后会将红色的rgb变量附加到对象数据而不是蓝色。

我在想这将是可能的有一个displayConfig类,螺栓用来应用外观和谁的内容可以通过带有特定标题的邮件进行编辑。

这可能吗?

这是可能的,但您需要手动执行并在启动之前为拓扑做好准备。

有两种方法可以做到这一点:

  1. 使用了您放入工人机(可能通过NFS)螺栓本地配置文件。如果您更改文件,这些螺栓会定期检查文件是否更新以及读取更新后的配置。

  2. 您可以使用另一个生成配置流的喷口。您希望在运行期间发送配置的所有螺栓都需要通过“allGrouping”从该配置消耗。当处理输入元组时,你检查它是否是一个常规数据元组或配置元组(并相应地更新你的配置)。

+0

感谢您的帮助。最后我用zookeeper znodes来存储配置信息。每个螺栓都可以在znodes上设置侦听器,因此每当znode发生更改时都可以更新其配置。对于任何有兴趣的人,我都使用了curatorWatcher PathChildrenCache食谱。 –