Flink 保证ExactlyOnce
阅读原文时间:2023年07月08日阅读:4

Flink 保证 ExactlyOnce

1、使用执行ExactlyOnce 的数据源,比如 kafka

2、使用FlinkConsumer,开启CheckPointing,偏移量会保存通过CheckPointing 保存到StateBackend中,并且默认会将偏移量写入kafka的特殊 topic中,即 __consumer_offsets

3、FlinkKafkaConsumer的setCommitOffsetsOnCheckpoints 参数默认为true,即将偏移量写入到kafka特殊的 Topic中,目的是为了监控或重启任务没有指定savePoint时可以接着以前的偏移量继续消费。

4、并且设置CheckpointingMode.EXACTLY_ONCE

5、存储系统支持覆盖(Redis、Hbase、ES) 使用幂等性,将原来的数据覆盖

6、Barrier(隔离带)可以保证一个流水线中的所有算子都处理完成了在对该条数据做CheckPoint。

7、存储系统不支持覆盖

要支持事务,成功了提交事务和偏移量,如果失败可以回滚且不更新偏移量

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章