checkPoint简介
-
为了保证state的容错性,Flink需要对state进行checkpoint。
-
Checkpoint是Flink实现容错机制最核心的功能,它能够根据配置周期性地基于Stream中各个Operator/task的状态来生成快照,从而将这些状态数据定期持久化存储下来,当Flink程序一旦意外崩溃时,重新运行程序时可以有选择地从这些快照进行恢复,从而修正因为故障带来的程序数据异常
-
Flink的checkpoint机制可以与(stream和state)的持久化存储交互的前提:
-
持久化的source,它需要支持在一定时间内重放事件。这种sources的典型例子是持久化的消息队列(比如Apache Kafka,RabbitMQ等)或文件系统(比如HDFS,S3,GFS等)
-
用于state的持久化存储,例如分布式文件系统(比如HDFS,S3,GFS等)
-
checkPoint配置
-
默认checkpoint功能是disabled的,想要使用的时候需要先启用
-
checkpoint开启之后,默认的checkPointMode是Exactly-once
-
checkpoint的checkPointMode有两种,Exactly-once和At-least-once
-
Exactly-once对于大多数应用来说是最合适的。At-least-once可能用在某些