Ch14-Flink 之 Exactly-Once 语义

Ch14-Flink 之 Exactly-Once 语义

January 27, 2021
Apache Flink
flink

Flink 需要搭配特定 Source 和 Sink 才能实现精确一次处理语义。

在 Flink 中需要端到端精准一次处理的位置有三个

  1. Source 端:通过保存消费数据的偏移量来保证一致性,所以 source 必须具有可以重置读位置的能力才行。
  2. Flink 内部端:利用 Checkpoint 机制,把状态存盘,发生故障的时候可以恢复,保证内部的状态一致性。
  3. Sink 端在 Flink 1.4 版本引入了两阶段提交 Sink 来解决精确一次处理语义,sink 必须具有幂等性写入和事务性写入的特性。

参考文献 #