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

注意事项

使用重置消费位点功能有以下注意事项:

  • 广播消费模式不支持重置消费位点。
  • 目前不支持指定Message ID、Message Key和Tag来重置消息的消费位点。
  • 当前在控制台上仅能重置TCP协议使用的Group ID的消费位点。

操作步骤

  1. 登录消息队列RocketMQ版控制台
  2. 在左侧导航栏,单击实例列表
  3. 在顶部菜单栏,选择地域,如华东1(杭州)
  4. 实例列表页面,找到目标实例,在其操作列,单击更多,然后在下拉菜单中,选择Group 管理
  5. Group 管理页面,单击TCP 协议页签。
  6. 找到需要重置消费位点的Group ID,在其操作列单击更多,然后在下拉菜单中,选择重置消费位点mq.reset_consumer_site
  7. 在重置消费位点面板中,按需选择以下选项,然后单击确定执行消费位点重置。mq.reset_consumer_site_talk
    • 从最新位点开始消费:若选择此项,该Group ID在消费该Topic下的消息时会跳过当前堆积(未被消费)的所有消息,从这之后发送的最新消息开始消费。

      对于程序返回reconsumeLater,即走重试流程的这部分消息来说,清除无效。

    • 从指定时间点的位点开始消费:选择该选项后会出现时间点选择的控件。请选择一个时间点,这个时间点之后发送的消息才会被消费。

      可选时间范围中的起始和终止时间分别是该Topic中储存的最早的和最晚的一条消息的生产时间。不能选择超过可选时间范围的时间点。

常见问题排查

  • 我使用两种方式重置消费位点均失败,该怎么处理?
    1. 请确认是否为集群消费。广播模式不支持重置消费位点。
    2. 确认当前消费者是否在线。消费者必须在线才能重置消费位点。
    3. 确认SDK版本,SDK版本过低也会导致此问题。建议升级SDK至最新版本,针对TCP Java SDK,至少是1.8.0.Final及以上版本。更多信息,请参见版本说明
  • 我重置消费位点跳过之前堆积的消息,为什么还有部分消息未被重置?

    目前重置消息功能对重试中消息不生效,因此重置后仍然可能会有少量重试消息投递。