如何正确使用Flink Connector?(16)

Q:如果 checkpoint 时间过长 , offset 未提交到 kafka , 此时节点宕机了 , 重启之后的重复消费如何保证呢?

A:首先开启 checkpoint 时 offset 是 Flink 通过状态 state 管理和恢复的 , 并不是从 kafka 的 offset 位置恢复 。 在 checkpoint 机制下 , 作业从最近一次 checkpoint 恢复 , 本身是会回放部分历史数据 , 导致部分数据重复消费 , Flink 引擎仅保证计算状态的精准一次 , 要想做到端到端精准一次需要依赖一些幂等的存储系统或者事务操作 。

作者:中间件小哥

本文为云栖社区原创内容 , 未经允许不得转载 。

推荐阅读