操作场景
消费进度(offset)表示消费者消费消息的位置,在某些业务场景下,例如数据处理异常、业务逻辑变更或系统运维需求,可能会需要重置消费位点,以重新消费或跳过特定消息。
约束与限制
重置消费进度可能会导致消息被重复消费,请谨慎操作。
前提条件
CKafka 不支持在消费组处于活跃状态时直接重置消费进度,因此在重置消费进度前,请停止目标消费组的所有消费活动。停止消费者客户端后,需等待服务端识别消费者下线(等待时长由 ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG 参数决定,默认1000毫秒)。
查看消费进度
2. 在左侧导航栏单击实例列表,选择好地域后,单击目标实例的“ID”,进入实例基本信息页面。
3. 在实例基本信息页面,单击 Consumer Group 页签,可以查看实例下的消费组列表信息。
4. 单击消费组名称列左侧的小三角,可以查看该消费组订阅的 Topic 信息,以及消费进度信息。
重置消费进度
2. 在左侧导航栏单击实例列表,选择好地域后,单击目标实例的“ID”,进入实例基本信息页面。
3. 在实例基本信息页面,单击 Consumer Group 页签,可以查看实例下的消费组列表信息。
4. 单击目标消费组操作列的 offset 设置,在 offset 设置弹窗中选择重置方式。
以 Topic 为维度设置:对整个 Topic 的所有分区统一重置,适用于批量重设消费位点,按业务设置消费位点等场景。
以 Partition 为维度设置:可以针对 Topic 的单个或多个特定分区进行重置,适用于部分分区需要特殊处理的场景,可以解决数据倾斜或特定分区问题。
5. 单击下一步,在下拉框中选择需要重置消费进度的对象。
以 Topic 为维度设置:选择需要重置的 Topic,支持多选,不选择默认重置实例下所有 Topic 的 offset。
以 Partition 为维度设置:选择需要重置的 Partition,支持多选,不选择默认重置 Topic 下所有 Partition 的 offset。
6. 单击下一步,对 offset 进行指定。
将 offset 移动到指定位置:将消费位点精确调整到指定的 offset 位置。offset 的调整范围介于最小 offset 和最大 offset 之间,如输入位置小于/大于 offset 范围则会重置到最小/最大 offset 位置。
将 offset 向前或向后移动若干条:基于当前位置相对移动 offset,输入负数向前移动,输入正数向后移动,移动后位置同样受最小/最大 offset 限制。
从最新/最开始位置开始消费:快速将消费位点重置到起始或末端位置。最新表示从最新的消息开始消费(跳过所有积压消息);最早表示从最早的消息开始消费。
按时间点进行消费位置重置:根据时间戳定位 offset,可以指定时间点,精确到秒。
7. 单击提交,完成重置。