[Flink/CDC/savepoint] Flink Job 保存点机制
Flink Job 保存点的试验总结试验1
配置 主流的 mysql cdc 的 startoptions = initial
停止 Job 时:
主动勾选:保存到保存点
停止后:
保存点: test-flink-runtime/jobs/savepoint/230445/2025-08-08_16-52-18/savepoint-c7115a-4294a042693e/_metadata
启动时
主动勾选:从保存点恢复
启动后
各个算子 发送的记录数、接受的记录数:会从 0 开始重新计数( 即使源有数据,只要启动后没有新增的、或 update,就应该会一直为 0 ),而非从停止前的数据开始计数。
保存点会被自动删除掉试验2
配置 主流的 mysql cdc 的 startoptions = initial
停止 Job 时,主动勾选:保存到保存点
保存点:
test-flink-runtime/jobs/savepoint/230445/2025-08-08_16-52-18/savepoint-c7115a-4294a042693e/_metadata
启动时
不勾选:从保存点恢复
启动后:
各个算子 发送的记录数、接受的记录数:会从 0 开始重新计数(会从0开始消费数据,只要源有数据,就不会一直为0),而非从停止前的数据开始计数。
保存点会被自动删除掉试验3
配置 主流的 mysql cdc 的 startoptions = latest
停止 Job 时:
主动勾选:保存到保存点
停止后:
保存点: test-flink-runtime/jobs/savepoint/230445/2025-08-08_16-52-18/savepoint-c7115a-4294a042693e/_metadata
启动时
主动勾选:从保存点恢复
启动后
各个算子 发送的记录数、接受的记录数:会从 0 开始重新计数( 即使源有数据,只要启动后没有新增的、或 update,就应该会一直为 0 ),而非从停止前的数据开始计数。
保存点会被自动删除掉试验4
配置 主流的 mysql cdc 的 startoptions = latest
停止 Job 时,主动勾选:保存到保存点
保存点:
test-flink-runtime/jobs/savepoint/230445/2025-08-08_16-52-18/savepoint-c7115a-4294a042693e/_metadata
启动时
不勾选:从保存点恢复
启动后:
各个算子 发送的记录数、接受的记录数:会从 0 开始重新计数(即使源有数据,只要启动后没有新增的、或 update,就应该会一直为 0),而非从停止前的数据开始计数。
保存点会被自动删除掉试验5
配置 主流的 mysql cdc 的 startoptions = initial
停止 Job 时,不主动勾选:保存到保存点
保存点:
--
启动时
从保存点恢复
启动后:
各个算子 发送的记录数、接受的记录数:会从 0 开始重新计数(会从0开始消费数据,只要源有数据,就不会一直为0),而非从停止前的数据开始计数。
保存点会被自动删除掉试验6
配置 主流的 mysql cdc 的 startoptions = latest
停止 Job 时,不主动勾选:保存到保存点
保存点:
--
启动时
从保存点恢复
启动后:
各个算子 发送的记录数、接受的记录数:会从 0 开始重新计数(即使源有数据,只要启动后没有新增的、或 update,就应该会一直为 0),而非从停止前的数据开始计数。
保存点会被自动删除掉FAQ for Flink 保存点机制
Q: Flink 保存点与检查点的关系与区别?
[*]Flink中的检查点用于【容错恢复】,而【保存点】则用于【手动维护和升级】,二者在触发方式和使用场景上有显著区别。
[*]检查点(Checkpoint)
[*]定义:检查点是Flink实现容错机制的核心功能,能够周期性地生成作业状态的快照,并将其持久化存储。当Flink程序意外崩溃时,可以从最近的检查点恢复状态,确保作业的准确性和一致性。
[*]触发方式:检查点是自动触发的,通常由Flink的TaskManager定期执行,用户无需干预。可以通过配置设置检查点的时间间隔和模式。
[*]存储格式:检查点的存储格式较轻量级,支持增量存储,适合频繁生成以降低恢复时间。
[*]使用场景:主要用于处理意外失败后的自动恢复,确保作业的连续性和数据的准确性。
[*]保存点(Savepoint)
[*]定义:保存点是通过检查点机制创建的,表示作业状态的完整快照,通常用于手动干预和维护。
[*]触发方式:保存点是用户手动触发的,适用于需要进行作业升级、迁移或A/B测试等场景。用户可以根据需要选择何时创建保存点。
[*]存储格式:保存点以二进制形式存储所有状态数据和元数据,执行速度较慢,但支持在代码升级或并行度变化后恢复。
[*]使用场景:适用于需要人工干预的场景,如作业升级、迁移或进行A/B测试时,确保状态的完整性和可恢复性。
[*]总结
[*]容错 vs 维护:检查点侧重于容错,确保在意外失败后能够快速恢复;而保存点则侧重于维护,允许用户在进行手动操作时保存状态并恢复。
[*]自动 vs 手动:检查点是自动生成的,频率较高;保存点则是手动触发的,适合特定的维护需求。
通过理解这两者的区别,用户可以更有效地管理Flink作业的状态和恢复策略。
X 参考文献
本文作者: 千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]