非键控流的 Flink 检查点状态

Flink checkpointing state for non-keyed stream

我是Flink新手。我正在尝试在我的应用程序中启用检查点和有状态。我从 Flink 文档中看到了我们如何存储键控状态。但我想知道我们能否存储非键控状态(ProcessFunction 的状态)

需要非键控状态有点不寻常,但是有documentation with examples

在用户代码中,这通常仅在实现自定义源和接收器时才需要,这就是为什么示例侧重于这些用例的原因。但是在 ProcessFunction 中你会做同样的事情,即实现 CheckpointedFunction 接口(即 initializeStatesnapshotState 方法)。

非键控状态的唯一类型是 ListStateUnionStateBroadcastStateListState 可能是您要使用的类型。 UnionStateListState 非常相似,只是在重新缩放时使用了不同的策略来重新分配状态(每个并行实例获取整个列表,而不是被分配到列表的一部分,并且实例负责知道该做什么)。 BroadcastStateBroadcastProcessFunctionKeyedBroadcastProcessFunction 所使用的。