Apache Flink结合Apache Kafka实现端到端的一致性语义

本次分享来自阿里巴巴的工程师在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实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

Apache Flink结合Apache Kafka实现端到端的一致性语义

相关推荐