Ch14-Flink 之 Exactly-Once 语义
January 27, 2021
Flink 需要搭配特定 Source 和 Sink 才能实现精确一次处理语义。
在 Flink 中需要端到端精准一次处理的位置有三个
- Source 端:通过保存消费数据的偏移量来保证一致性,所以 source 必须具有可以重置读位置的能力才行。
- Flink 内部端:利用 Checkpoint 机制,把状态存盘,发生故障的时候可以恢复,保证内部的状态一致性。
- Sink 端在 Flink 1.4 版本引入了两阶段提交 Sink 来解决精确一次处理语义,sink 必须具有幂等性写入和事务性写入的特性。