Apache Flink Checkpoint(手动将值放入RocksDB检查点,并在恢复或重新启动期间检索)



我们有一个场景,我们必须将一些值持久化/保存到检查点中,并在故障恢复/应用程序重新启动期间将其取回。

我们遵循了一些类似ValueState的东西,ValueStateDescriptor仍然不起作用。https://github.com/realtime-storage-engine/flink-spillable-statebackend/blob/master/flink-spillable-benchmark/src/main/java/org/apache/flink/spillable/benchmark/WordCount.java

https://towardsdatascience.com/heres-how-flink-stores-your-state-7b37fbb60e1ahttps://github.com/king/flink-state-cache/blob/master/examples/src/main/java/com/king/flink/state/Example.java

我们不能将它外部化到数据库中,因为它可能会导致一些性能问题。任何这方面的线索都将有助于使用检查点。如何从检查站出发和返回?

所有托管应用程序状态都会自动写入Flink检查点(和保存点(。这包括

  • 键控状态(ValueState、ListState、MapState等(
  • 操作员状态(ListState、BroadcastState等(
  • 定时器

此状态在恢复过程中自动恢复,也可以在手动重新启动过程中恢复。

Flink Operations Playground展示了如何使用检查点和保存点,并允许您观察它们在故障/恢复和重新启动/重新缩放期间的行为。

如果您想自己从检查点读取,这就是状态处理器API的作用。下面是一个例子。

相关内容

最新更新