Flink KafkaConsumer offset是如何提交的

一、fllink 内部配置

  • client.id.prefix,指定用于 Kafka Consumer 的客户端 ID 前缀
  • partition.discovery.interval.ms,定义 Kafka Source 检查新分区的时间间隔。 请参阅下面的动态分区检查一节
  • register.consumer.metrics 指定是否在 Flink 中注册 Kafka Consumer 的指标
  • commit.offsets.on.checkpoint 指定是否在进行 checkpoint 时将消费位点提交至 Kafka broker

Kafka consumer 的配置可以参考 Apache Kafka 文档

请注意,即使指定了以下配置项,构建器也会将其覆盖:

  • auto.offset.reset.strategy 被 OffsetsInitializer#getAutoOffsetResetStrategy() 覆盖
  • partition.discovery.interval.ms 会在批模式下被覆盖为 -1

消费位点提交 #

Kafka source 在 checkpoint 完成 时提交当前的消费位点 ,以保证 Flink 的 checkpoint 状态和 Kafka broker 上的提交位点一致。如果未开启 checkpoint,Kafka source 依赖于 Kafka consumer 内部的位点定时自动提交逻辑,自动提交功能由 enable.auto.commitauto.commit.interval.ms 两个 Kafka consumer 配置项进行配置。

注意:Kafka source 不依赖于 broker 上提交的位点来恢复失败的作业。提交位点只是为了上报 Kafka consumer 和消费组的消费进度,以在 broker 端进行监控。

二、Flink KafkaConsumer offset提交过程解释

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曲线可能会是一个锯齿状。

三、kafka 内部配置

相关推荐
智能化咨询16 小时前
(68页PPT)埃森哲XX集团用户主数据治理项目汇报方案(附下载方式)
大数据·人工智能
数据智研17 小时前
【数据分享】毛乌素沙地(毛乌素沙漠)空间矢量范围
大数据·人工智能·信息可视化·数据分析
TinpeaV17 小时前
Elasticsearch8(ES)保姆级菜鸟入门教程
大数据·spring boot·elasticsearch·搜索引擎·全文检索·postman
专注数据的痴汉17 小时前
「数据获取」江门统计年鉴(1997-2024)
大数据·人工智能·信息可视化
小王毕业啦17 小时前
2000-2023年 地级市-公路运输相关数据
大数据·人工智能·数据挖掘·数据分析·数据统计·社科数据·实证数据
Element_南笙18 小时前
吴恩达新课程:Agentic AI(笔记11)
大数据·人工智能·笔记·算法·机器学习
paperxie_xiexuo19 小时前
文献综述不是写作任务,而是一次“认知脚手架”的搭建:PaperXie 如何通过结构化输入,帮你把碎片阅读转化为可辩护的学术立场?
大数据·人工智能·ai写作
B站_计算机毕业设计之家19 小时前
python招聘数据 求职就业数据可视化平台 大数据毕业设计 BOSS直聘数据可视化分析系统 Flask框架 Echarts可视化 selenium爬虫技术✅
大数据·python·深度学习·考研·信息可视化·数据分析·flask
袋鼠云数栈19 小时前
官宣!ChunJun 1.16 Release 版本发布!
大数据·经验分享·大模型
驾数者20 小时前
Flink SQL关联查询:双流Join与维表Join实战技巧
数据库·sql·flink