在Apache Storm运行时编辑bolt进程



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

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

我认为这将是可能的,通过有一个displayConfig类,螺栓使用应用外观和谁的内容可以通过消息与特定的标题编辑。

这可能吗?

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

有两种方法:

  1. 使用您放入工作机器的本地配置文件(可能通过NFS)。螺栓定期检查文件的更新和读取更新的配置,如果你改变了文件。

  2. 您使用另一个喷嘴来生成配置流。你想在运行时发送配置的所有螺栓都需要通过"allGrouping"从这个配置喷口中消费。当处理输入元组时,你检查它是一个常规的数据元组还是一个配置元组(并相应地更新你的配置)。

最新更新