开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

FlinkKafkaConsumer offset 是如何提交的?

FlinkKafkaConsumer offset 是如何提交的?

展开
收起
一人吃饱,全家不饿 2021-01-06 12:08:21 2594 0
1 条回答
写回答
取消 提交回答
  • Flink kafka consumer commit offset 方式需要区分是否开启了 checkpoint。 1. 如果 checkpoint 关闭,commit offset 要依赖于 kafka 客户端的 auto commit。 需设置 enable.auto.commit,auto.commit.interval.ms 参数到 consumerproperties,就会按固定的时间间隔定期 auto commit offset 到 kafka。 2. 如果开启 checkpoint,这个时候作业消费的 offset 是 Flink 在 state 中自己管理和容错。此时提交 offset 到 kafka,一般都是作为外部进度的监控,想实时知道作业消费的位置和 lag 情况。此时需要 setCommitOffsetsOnCheckpoints 为 true 来设置当 checkpoint 成功时提交 offset 到 kafka。此时 commit offset 的间隔就取决于 checkpoint 的间隔,所以此时从 kafka 一侧看到的 lag 可能并非完全实时,如果 checkpoint 间隔比较长 lag 曲线可能会是一个锯齿状。

    2021-01-06 12:08:28
    赞同 1 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载