我想知道如果特定事件从源头读取到所有任务管理器中,flink中是否有办法广播事件(或类似事件)。
更具体地说,我正在将状态数据与地图状态进行汇总,如果从源中读取了一些事件,我希望所有任务管理器都执行特定的操作
有可能吗?
答案 0 :(得分:0)
是的,这是可能的。 broadcast state pattern正是用于这种用例。
答案 1 :(得分:0)
正如David指出的那样,使用广播流是将数据发送到所有(并行)子任务的正确方法。至于仅广播一些数据,请看一下side outputs,作为对数据子集进行特殊处理的一种方式。因此,您可以有一个ProcessFunction
来传递所有未修改的数据,并且如果传入事件是要广播的事件,那么您也将其作为侧面输出发出。