flink中每个function和operator都可以状态化,具有可状态化的元素,可以再处理数据过程中进行数据存储,参与数据的容错。
启用和配置检查点
flink程序中,默认关闭Checkpointin。如果想启用Checkpointing,可通过StreamExecutionEnvironment.enableCheckpointing(n),n为毫秒,表示进行checkpoint间隔时间。
可启用的Checkpointing配置
exactly-once vs. at-least-once:
Checkpoint Barrier 对齐机制实现 Exactly-Once 语义。如果 Barrier 不对齐,即 At Least Once 语义。
- exactly-once:精确一次,如果产生故障,也能保证数据不丢失不重复。
- At-Least-Once:最少一次,如果产生故障,可能有重复数据。
(未完待续。。。)