January 27, 2021
Flink 需要搭配特定 Source 和 Sink 才能实现精确一次处理语义。
在 Flink 中需要端到端精准一次处理的位置有三个
Source 端:通过保存消费数据的偏移量来保证一致性,所以 source 必须具有可以重置读位置的能力才行。 Flink 内部端:利用 Checkpoint 机制,把状态存盘,发生故障的时候可以恢复,保证内部的状态一致性。 Sink 端在 Flink 1.4 版本引入了两阶段提交 Sink 来解决精确一次处理语义,sink 必须具有幂等性写入和事务性写入的特性。 参考文献 # 硬核!八张图搞懂 Flink 端到端精准一次处理语义 Exactly-once(深入原理,建议收藏)
January 3, 2021
Flink 1.5 之前使用的是 TCP-Based 反压机制,自 Flink 1.5(包含) 使用的是 Credit-Based 反压机制。

简单来说,如果反压机制实现在 Socket 层,那便是 TCP-Based 反压机制;如果实现在 Netty 层,那便是 Credit-Based 反压机制。
...
December 31, 2020
Savepoint 跟 Checkpoint 的差别在于 Checkpoint 是 Flink 对于一个有状态应用在运行中利用分布式快照持续周期性的产生 Checkpoint,而 Savepoint 则是手动产生的 Checkpoint,Savepoint 记录着流式应用中所有运算元的状态。
...
December 25, 2020
Checkpoint 属于一种机制,State + ABS(Asynchronouse Barrier Snapshot)
。
...
December 20, 2020
State 指一个具体的 task/operator 的状态,State Backends 指具体状态的存储介质
...