0

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

我们遵循了一些诸如 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-7b37fbb60e1a https://github.com/king/flink-state-cache/blob/master/examples/src/main/java/com /king/flink/state/Example.java

我们不能将其外部化到数据库,因为它可能会导致一些性能问题。任何导致此问题的结果都将有助于使用检查点。如何放置和从检查点返回?

4

1 回答 1

0

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

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

此状态会在恢复期间自动恢复,并且可以选择在手动重启期间恢复。

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

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

于 2022-01-19T09:45:49.650 回答