重置消费位点是指改变订阅者当前的消费位置。您可通过重置消费位点,按需清除堆积的或不想消费的这部分消息再开始消费,或直接跳转到某个时间点消费该时间点之后的消息(不论是否消费过该时间点之前的消息)。

具体包含以下两个功能:

  • 消息清除:因为某种原因,订阅者不准备再继续消费 Broker 上堆积的消息,此时通过清除消息,可以将消费位点指定到最新的位置。
    注意 堆积的消息本身并不会因此被删除,改变的只是消费位点。
  • 指定时间点开始消费:将某个 Consumer Group 的位点重置到过去或者将来的某个时间点(该时间点以 Topic 的消息存储时间为准,假设为“t”)。重置过后,Consumer Group 将从“t”时间点之后的消息开始订阅。

前提条件

已停止所有 Consumer 客户端(消息队列 Kafka 不支持在线重置消费位点)。

注意 在停止 Consumer 客户端后,需要经过 ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG 配置的时间(默认 10000 毫秒),服务端才认为 Consumer 真正下线。

操作步骤

  1. 登录消息队列 Kafka 控制台。在顶部导航栏,选择实例所在的地域(Region),如华东1(杭州)

  2. 在左侧导航栏,单击Consumer Group管理

  3. Consumer Group管理页面的搜索框中输入 Consumer Group 名称, 然后单击搜索

  4. Consumer Group管理页面的相应 Consumer Group 的操作列,单击重置消费位点

  5. 在弹出的对话框中选择您要采用的重置策略,然后单击确认

    重置策略有以下两个可选项:

    • 清除所有堆积消息,从最新位点开始消费:对应本文开头介绍的消息清除功能

    • 按时间点进行消费位点重置:对应本文开头介绍的指定时间点开始消费功能(若选择此项,需选择时间点)