在Apache Storm中运行时编辑bolt过程

时间:2016-11-04 11:38:52

标签: java streaming apache-storm

我的项目通过风暴将对象数据流式传输到图形应用程序。这些对象的外观取决于风暴拓扑中螺栓分配的变量。

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

我认为这可以通过一个displayConfig类来实现,该类可以使用bolt来应用外观,并且可以通过具有特定标题的消息编辑谁的内容。

这可能吗?

1 个答案:

答案 0 :(得分:1)

这是可能的,但您需要手动完成并在开始之前为拓扑做好准备。

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

  1. 将本地配置文件用于放入工作机器的螺栓(可能通过NFS)。如果您更改文件,螺栓会定期检查文件是否有更新,并读取更新的配置。

  2. 您再使用一个产生配置流的spout。您希望在运行时发送配置的所有螺栓都需要来自此配置的消费者 - 通过" allGrouping"。处理输入元组时,检查它是否是常规数据元组或配置元组(并相应地更新配置)。