有没有办法向所有任务管理器广播消息

时间:2019-10-07 15:40:09

标签: apache-flink flink-streaming flink-cep

我想知道如果特定事件从源头读取到所有任务管理器中,flink中是否有办法广播事件(或类似事件)。

更具体地说,我正在将状态数据与地图状态进行汇总,如果从源中读取了一些事件,我希望所有任务管理器都执行特定的操作

有可能吗?

2 个答案:

答案 0 :(得分:0)

是的,这是可能的。 broadcast state pattern正是用于这种用例。

答案 1 :(得分:0)

正如David指出的那样,使用广播流是将数据发送到所有(并行)子任务的正确方法。至于仅广播一些数据,请看一下side outputs,作为对数据子集进行特殊处理的一种方式。因此,您可以有一个ProcessFunction来传递所有未修改的数据,并且如果传入事件是要广播的事件,那么您也将其作为侧面输出发出。