在流处理(如 Apache Flink、Spark Structured Streaming 等)和数据库系统中,Savepoint(保存点) 是一种“显式、可控”的状态快照机制,它之所以重要,主要体现在以下几个方面:
不同于系统故障自动触发的 Checkpoint,Savepoint 通常由用户手动触发:
因为 Savepoint 是“有意为之”,所以可以确保在安全、一致的状态下停止作业,而不会丢失数据或重复处理。
Savepoint 会完整保存:
恢复时从 Savepoint 启动,可以:
这对金融、计费、监控等场景至关重要。
这是 Savepoint 最常用的场景之一:
只要状态兼容,就可以:
停止作业 → 打 Savepoint → 改代码 → 从 Savepoint 恢复
业务零中断、零数据损失。
Savepoint 可以:
常见用途:
| 对比项 | Checkpoint | Savepoint |
|---|---|---|
| 触发方式 | 自动 | 手动 |
| 用途 | 故障恢复 | 运维/升级 |
| 生命周期 | 短期、可丢弃 | 长期、可保留 |
| 格式稳定性 | 可能随版本变 | 兼容优先 |
Checkpoint 是“保命用的”,Savepoint 是“可规划的”。
Savepoint 的重要性在于:它让流处理系统从“能跑”变成“可控、可运维、可演进”。
如果你愿意,我也可以结合 Flink Savepoint 实战命令 或 状态不兼容的常见坑 来进一步说明。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。