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

注意事项

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

操作步骤

  1. 登录消息队列RocketMQ版控制台,在左侧导航栏单击实例列表
  2. 在顶部菜单栏选择地域,如华东1(杭州),然后在实例列表中,单击目标实例名称。
  3. 在左侧导航栏单击Group 管理,然后单击TCP 协议页签。
  4. Group 管理页面,单击TCP 协议页签。
  5. 找到需要重置消费位点的Group ID,在其操作列单击更多,然后在下拉菜单中,选择重置消费位点mq.reset_consumer_site
  6. 在重置消费位点面板中,按需选择以下选项,然后单击确定执行消费位点重置。mq.reset_consumer_site_talk
    警告 若选择从最新位点开始消费,则Group ID在指定Topic中的堆积消息将被全部清除,该操作大概2~3分钟后生效,请勿重复操作。期间应用所有的消费者将暂停消费2~3分钟,对延迟敏感的业务请谨慎使用。
    • 从最新位点开始消费:若选择此项,该Group ID在消费该Topic下的消息时会跳过当前堆积(未被消费)的所有消息,从这之后发送的最新消息开始消费。

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

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

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

常见问题排查

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

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