本次分享来自阿里巴巴的工程师在Apache Kafka x Apache Flink·北京会议上的分享,关于Apache Flink结合Apache Kafka实现端到端的一致性语义的原理。


2017年12月Apache Flink社区发布了1.4版本。该版本正式引入了一个里程碑式的功能:两阶段提交Sink,即TwoPhaseCommitSinkFunction。


该SinkFunction提取并封装了两阶段提交协议中的公共逻辑,自此Flink搭配特定Source和Sink搭建精确一次处理语义( exactly-once semantics)应用成为了可能。作为一个抽象类TwoPhaseCommitSinkFunction提供了一个抽象层供用户自行实现特定方法来支持 Exactly-Once semantics。


接下来,我们进一步介绍flink的这个特性:

  • Flink的checkpoints在保证exactly-once语义时的作用

  • Flink是如何通过两阶段提交协议来保证从数据源到数据输出的exactly-once语义


Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术

Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术_02

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_03

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_04

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_05

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_06

Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术_07

Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术_08

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_09

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_10

Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术_11

Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术_12

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_13

Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术_14

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_15

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_16

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_17

Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术_18

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_19

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_20

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_21

Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术_22

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_23

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_24

Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术_25

Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术_26

Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术_27

Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_28



Apache Flink结合Apache Kafka实现端到端的一致性语义_大数据技术_29


Apache Flink结合Apache Kafka实现端到端的一致性语义_Flink学习_30