flink kafka 保证 Exactly Once 语义
flink 通过checkpoint机制来定期保存计算任务的快照,包含两个重要的参数:
1、整个计算任务的状态,
2、数据源的位置信息,比如kafka的offset
flink通过数据流中插入一个barrier(屏障)来确保checkpoint中的位置和状态完全对应
kafka的exactly once语义通过事务和生产幂等共同实现
端到端的exactly once指的是数据从kafka的A主题消费,发送给flink的计算集群进行计算,计算结果再发送给kafka的B主题。
每个flink的checkpoint对应一个kafka的事务,flink在创建一个checkpoint时,同时开启kafka的事务,完成checkpoint的同时提交kafka事务,这个操作通过flink分布式事务控制器解决