例如,一个windowOperator有10个并行性,并且有1000个不同的密钥,那么每个并行性将处理100个密钥,这100个密钥的状态是共享的还是隔离的?
在整个Flink中,不同键的状态大多是孤立的。这样做是有意的,以便在重新缩放集群时可以重新交换状态。
在KeyedProcessFunction
中,或在键控窗口的ProcessWindowFunction
中,无论何时访问或更新状态,上下文中都隐含着一个键。在KeyedProcessFunction
的情况下,这是正在处理的事件或定时器的关键;在ProcessWindowFunction
的情况下,它是与所提供的迭代中的事件相关联的密钥。执行的任何状态访问或更新都将以该键为范围。无法访问或修改与其他键关联的状态。