Kafka 事务实现原理
Flink checkpoint 结合kafka 实现端到端的一致性
- 为啥taskState 的时候要开启一个新事务,因为本来做state 就相当于把barrier之前的状态做一个快照,相当于是一个新的开始,所以开启一个新的事务。那为啥checkpoint 第一步要提交事务,其实就是把checkpoint 间隔的这部分事务数据提交。相当于把之前的工作做一个清理。在prepareSnapshotPreBarrier() 方法中提交事务的原因是为了确保 Kafka 生产者在 Flink 检查点屏障之前的数据都已事务性提交,从而与 Flink 的检查点保持一致性。这是 Flink 实现端到端一致性、Exactly-Once 语义的关键步骤,确保了 Kafka 和 Flink 状态的原子性和一致性。