目标:从概念上讲,Flink的Savepoint和Checkpoint的不同之处很像传统数据库中备份与恢复日志之间的区别。Checkpoint的主要目标是充当Flink中的恢复机制,确保能从潜在的故障中恢复。相反,Savepoint的主要目标是充当手动备份、恢复暂停作业的方法。
实现:Checkpoint和Savepoint在实现上也有不同。Checkpoint被设计成轻量和快速的机制。他们可能(但不一定必须)利用底层状态后端的不同功能尽可能地快速地恢复数据。例如,基于RocksDB状态后端地增量检查点,能够加速RocksDB的checkpoint过程,这使得checkpoint机制变得更加轻量。相反,Savepoint旨在更多地关注数据的可移植性,并支持对作业做任何更改而状态能保持兼容,这使得生成和恢复成本更高。
生命周期:Checkpoint是自动和定期地,他们由Flink自动地周期性地创建和删除,无需用户地交互。相反,Savepoint由用户手动管理(调度、创建、删除)