Apache flink ApacheFlink如何处理注册的计时器状态?它是否存储/恢复它们?对于“事件时间”和“处理时间”属性?

Apache flink ApacheFlink如何处理注册的计时器状态?它是否存储/恢复它们?对于“事件时间”和“处理时间”属性?,apache-flink,Apache Flink,ApacheFlink有一个时间服务,允许开发人员注册基于时间的事件,并收到这些事件的通知(基于处理时间或事件时间)!但我不明白当ApacheFlink接受检查点并从这些快照恢复其状态时,它是如何工作的 它是否存储并恢复其计时器状态 我可以猜它在活动时间是如何工作的!(通过存储水印)但是处理时间呢 如果它不存储计时器,那么故障恢复将不会成功,直到我们将丢失所有基于时间的事件/状态,这意味着时间窗口将无法正常工作!我说得对吗 Flink的所有计时器都保存为托管Flink状态,并在故障恢复过程中恢

ApacheFlink有一个时间服务,允许开发人员注册基于时间的事件,并收到这些事件的通知(基于处理时间或事件时间)!但我不明白当ApacheFlink接受检查点并从这些快照恢复其状态时,它是如何工作的

  • 它是否存储并恢复其计时器状态
  • 我可以猜它在活动时间是如何工作的!(通过存储水印)但是处理时间呢
  • 如果它不存储计时器,那么故障恢复将不会成功,直到我们将丢失所有基于时间的事件/状态,这意味着时间窗口将无法正常工作!我说得对吗

Flink的所有计时器都保存为托管Flink状态,并在故障恢复过程中恢复。应在停机期间启动的所有处理时间计时器将在恢复后立即启动,事件时间计时器将在水印到达时自然启动

唯一没有得到完美处理的是,操作员没有检查当前的水印。如果源相当活跃,这通常不会引起注意,但如果您有一个几乎空闲的源,那么这可能会导致事件时间计时器延迟触发