Skip to content

位点管理

位点(offset)记录消费组在每个分区读到了哪里。RobustMQ 把位点持久化在 meta 层,提供提交、查询、重置、删除以及 lag 计算等完整的 Kafka 位点管理能力。本文覆盖对应的 API 与 kafka-consumer-groups.sh 命令行操作。

提交与查询

API作用说明
OffsetCommit提交位点消费组把某分区的消费进度写入 meta(commitSync 为同步提交)
OffsetFetch查询已提交位点v8+ 支持一次请求批量查询多个 group

位点持久化在 meta 层,消费组重启或成员变更后可从已提交位点续读(见消费组)。

重置位点(reset-offsets)

kafka-consumer-groups.sh --reset-offsets 用于把消费组位点改到指定位置:

目标含义
--to-earliest重置到最早可用 offset
--to-latest重置到最新 offset
--to-offset <n>重置到指定 offset
--shift-by <n>在当前位点上前移/后移 n(负数回退)

执行模式:

模式行为
--dry-run仅预览将要变更的结果,不落库
--execute实际提交变更

删除位点(delete-offsets)

kafka-consumer-groups.sh --delete-offsets 删除某消费组在指定 topic/分区上的已提交位点。删除后该分区无已提交位点,下次消费按 auto.offset.reset 起始(见消费者)。

Lag(消费滞后)

kafka-consumer-groups.sh --describe 展示每个分区的消费进度:

含义
CURRENT-OFFSET消费组已提交的位点
LOG-END-OFFSET分区当前最新 offset(末端)
LAG滞后量 = LOG-END-OFFSET − CURRENT-OFFSET

lag 越大表示消费越落后于生产。

持久化

所有位点都持久化在基于 Raft 的 meta-service 中,与集群动态配置、ACL/SCRAM/配额同层管理(见系统架构)。协调器(Raft Leader)负责位点的读写。

相关文档

🎉 既然都登录了 GitHub,不如顺手给我们点个 Star 吧!⭐ 你的支持是我们最大的动力 🚀