You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置为仅读取已提交记录的Kafka消费者,未提交记录是否计入Lag?

当Kafka消费者配置为仅读取已提交记录时,未提交记录是否计入Lag?

结论:未提交的记录不会被计入消费者Lag

原因解析:

  • Kafka消费者Lag的核心定义是:消费者当前已消费的偏移量与**分区的高水位(HW, High Watermark)**之间的差值。高水位代表分区内所有副本已同步、且能被read_committed级别消费者读取到的最新已提交记录的偏移量。
  • 未提交的记录(比如未完成的事务消息、生产者未确认提交的消息)不会被纳入高水位范围,read_committed级别的消费者根本无法看到这些记录。因此计算Lag时,只会基于消费者能访问到的最高偏移量(即HW)来统计,未提交记录完全不会被纳入。
  • 举个实际场景:假设分区HW是100,此时有一批偏移量101-110的事务消息还未提交,那么read_committed消费者最多只能消费到100,Lag的计算只会用100减去消费者当前的消费偏移量。直到这批事务提交后,HW会更新到110,此时Lag才会把101-110的范围纳入计算。

补充说明:

即使使用官方工具(比如kafka-consumer-groups.sh)查询Lag,也是基于消费者偏移量和分区HW的差值来统计,和消费者的隔离级别无关——未提交的记录只要没更新HW,就不会被算进Lag里。

内容的提问来源于stack exchange,提问作者anfisa9la

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 00:13:13