1.概述
官网:在 Apache Flink 中管理大型状态:增量检查点介绍
官网:FLIP-158: Generalized incremental checkpoints
Apache Flink 专为有状态的流处理而构建。但是,流处理应用程序中的状态是什么?我在之前的博客文章中定义了状态和有状态流处理,如果您需要复习,状态被定义为应用程序运算符中的内存,它存储有关先前看到的事件的信息,您可以使用这些信息来影响未来事件的处理。
状态是大多数复杂用例所需的流处理中一个基本的支持概念。Flink 文档中突出显示的一些示例:
- 当应用程序搜索某些事件模式时,状态会存储迄今为止遇到的事件序列。
- 在每分钟聚合事件时,状态会保存待处理的聚合。
- 在数据点流上训练机器学习模型时,状态会保存模型参数的当前版本。
但是,有状态的流处理仅在状态是容错的情况下才在生产环境中有用。“容错”意味着即使出现软件或机器故障,计算的最终结果也是准确的,不会丢失数据或重复计算事件。
Flink 的容错性一直是一个强大且流行的特性,它可以最大程