在 Apache Storm 中 运行 时间编辑螺栓进程
Edit bolt process at run time in Apache Storm
我的项目通过 storm 将 object 数据流式传输到图形应用程序。这些 object 的出现取决于风暴拓扑中螺栓分配的变量。
我的问题是是否可以通过向它发送一条消息来更改它附加到 object 数据的变量来更新 bolt 进程。例如,在向 bolt 发送消息声明我希望任何参数 x 高于特定数字的 object 显示为红色而不是蓝色后。
然后,bolt 进程会将红色 rgb 变量附加到 object 数据而不是蓝色。
我在想这可以通过 displayConfig class 来实现,螺栓使用它来应用外观,并且可以通过具有特定 header.
的消息来编辑谁的内容
这可能吗?
可以,但您需要手动操作,并在启动前准备好拓扑。
有两种方法可以做到这一点:
为您放入工作机器(可能通过 NFS)的 bolt 使用本地配置文件。如果您确实更改了文件,bolt 会定期检查文件的更新并读取更新的配置。
您再使用一个生成配置流的 spout。您想要在运行时发送配置的所有螺栓,都需要通过 "allGrouping" 从该配置喷口中使用。处理输入元组时,您检查它是否是常规数据元组或配置元组(并相应地更新您的配置)。
我的项目通过 storm 将 object 数据流式传输到图形应用程序。这些 object 的出现取决于风暴拓扑中螺栓分配的变量。
我的问题是是否可以通过向它发送一条消息来更改它附加到 object 数据的变量来更新 bolt 进程。例如,在向 bolt 发送消息声明我希望任何参数 x 高于特定数字的 object 显示为红色而不是蓝色后。 然后,bolt 进程会将红色 rgb 变量附加到 object 数据而不是蓝色。
我在想这可以通过 displayConfig class 来实现,螺栓使用它来应用外观,并且可以通过具有特定 header.
的消息来编辑谁的内容这可能吗?
可以,但您需要手动操作,并在启动前准备好拓扑。
有两种方法可以做到这一点:
为您放入工作机器(可能通过 NFS)的 bolt 使用本地配置文件。如果您确实更改了文件,bolt 会定期检查文件的更新并读取更新的配置。
您再使用一个生成配置流的 spout。您想要在运行时发送配置的所有螺栓,都需要通过 "allGrouping" 从该配置喷口中使用。处理输入元组时,您检查它是否是常规数据元组或配置元组(并相应地更新您的配置)。