1. 他和水位线很像,是flink里面的一个标记
2. 设置checkpoint的意义:为了保证系统再崩溃的时候,可以保证各个算子之间的数据一致性。
3. 水位线对齐可以保证exatly-once,非对齐只能保证at least once
4. jobmannager会定期的去发送barrari给源端算子,barrari经过算子拍照成功之后会发送ack信息通知jobmannager,每个算子都回复ack信息之后,jobmannager会再次通知各个算子拍照完成。
5. checkpoint调用实际是两阶段提交,每一次算子拍照保存sate都是一次预提交,然后jobmannager最后再通知各个算子完成是提交的过程
6. 对齐快照,如果有多条输入流,流向同一个算子,那么这种方式的话,来的快的那条流就会等待慢的那条流,那么快的那条流的数据还会继续来,只是先放到缓存中,等到慢的栅栏到了,进行state对齐异步快照,做异步快照的时候,会先处理缓存的数据再去处理输入通道的数据
7. checkpoin的参数:
checkpoin数据存储位置
失败的最大次数
是否需要对齐
job取消时是否保留checkpoint的数据
设置checpoint对齐的超时时间
两次checpoint的最小间隔
最大并行的checkpoint数
指定用那种状态后端默认是hashmapstatbakende