我想知道Flink是否有可能在运营商之间分享状态 .
比如说,我在操作员上按键分区,我需要在分区 C
内部分区 A
(由于任何原因)(图1.a),或者我需要在下游运算符中运算符 C
的状态 F
(图1.b) .
我知道有可能 broadcast
记录到所有分区 . 因此,如果在记录中包含运算符的内部状态,则可以与下游运算符共享内部状态 .
但是,这可能是一个昂贵的操作,而不是简单地让 op1
特别要求 op2
状态 .
围绕可查询状态的最新发展是否正朝着这个概念发展,或者它们仅仅是为了让外部用户查询拓扑的内部状态?
提前感谢您的见解
1 回答
通常,Flink的设计不允许读取或写入相同或不同运算符的其他子任务的状态 . 如您所说,您可以使用
broadcast
使状态全局可用 . 可查询状态功能旨在用于外部用户查询 .但是,我听说用户在运营商中利用这些功能从同一作业的其他运营商那里获取数据 . 我不知道这有多好(稳定性和性能) . 如果您想尝试一下,我会指向用户邮件列表进行更深入的技术讨论 .