Skip to content

状态管理与Checkpoint

1. 这是什么

状态管理是 Flink 维护流计算上下文的能力,checkpoint 用于在失败时恢复一致状态。
这是 Flink 区别于很多简单流式框架的核心优势之一。

2. 为什么重要

没有状态,就很难做复杂流计算;没有 checkpoint,就很难保证容错和一致性。
理解这两者,是真正掌握 Flink 的关键。

3. 核心内容

  • Keyed State
  • Operator State
  • State Backend 基本认知
  • Checkpoint
  • Savepoint
  • 状态一致性

4. 学习重点

  • 理解状态不是临时变量,而是持续计算上下文
  • 理解 checkpoint 用于容错恢复
  • 理解 savepoint 更偏向可控迁移和升级

5. 常见问题

  • 不清楚状态会占用多少资源
  • checkpoint 开了却不了解恢复语义
  • 把 savepoint 和 checkpoint 完全混为一谈

6. 练习建议

  • 写一个带状态的流式统计示例
  • 总结 checkpoint 和 savepoint 的区别
  • 结合故障恢复流程理解一致性保障

7. 自测问题

  • Flink 为什么必须有状态管理
  • checkpoint 主要解决什么问题
  • savepoint 更适合哪些场景