在清除堆积消息、离线数据处理等场景下,需要消费过去某个时段的消息,或清除所有堆积消息,可以对消费位点进行重置操作。消息队列 RocketMQ版控制台支持重置消费位点,改变订阅者当前的消费位置,您可以通过重置消费位点功能直接从最新 Offset 位点或某个指定时间点来消费消息。
背景信息
消息队列 RocketMQ版支持重置 Group 订阅的某一 Topic 或所有 Topic 的消费位点,支持的重置方式包括以下两种。
- 从最新位点开始消费:该 Group 在消费该 Topic 下的消息时会跳过当前堆积的所有消息,从这之后发送的最新消息开始消费。堆积的消息本身并不会因此被删除。
- 从指定时间点开始消费:从过去或将来的某个指定时段内选择一个时间点开始消费。该时间段由 Topic 的消息保留时间决定,目前默认为 3 天。
注意事项
- 消费模式为广播模式时,不支持重置消费位点。
- 重置消费位点对重试中的消息不生效,因此重置消费位点后,仍然可能会有部分重试消息投递。
- RocketMQ Go 客户端 SDK 使用重置消费位点功能时,请使用指定 Commit(83f60c154236bb92a5d5e3d40276b546b6079f1b)及后续版本的社区版 Go SDK,否则可能会引起报错或业务异常。详细说明请参考 Go SDK 概述。
- Go、java 和 C++ 客户端 SDK 支持在线重置消费位点,其他语言 SDK 需要先暂停客户端,再重置消费位点。
重置 Group 的消费位点
重置 Group 的消费位点时,会重置此 Group 订阅的所有 Topic 的消费位点,操作步骤如下。
- 登录消息队列 RocketMQ版控制台。
- 在顶部菜单栏中选择地域。
- 在实例列表中找到指定 RocketMQ 实例,并单击实例名称。
- 在顶部页签栏中单击Group管理,页签中展示当前实例下的 Group 列表。
- 选择需要重置消费位点的 Group。
- 选择重置方式。
- 从最新位点开始消费:该 Group 在消费 Topic 下的消息时会跳过当前堆积的所有消息,从这之后发送的最新消息开始消费。堆积的消息本身并不会因此被删除。
- 从指定时间点开始消费:从过去或将来的某个指定时段内选择一个时间点,这个时间点之后发送的消息才会被消费。该时间段由 Topic 的消息保留时间决定,目前默认为 3 天。
- 单击重置。
重置某个 Topic 的消费位点
- 登录消息队列 RocketMQ版控制台。
- 在顶部菜单栏中选择地域。
- 在实例列表中找到指定 RocketMQ 实例,并单击实例名称。
- 在顶部页签栏中单击Group管理,页签中展示当前实例下的 Group 列表。
- 单击 Group ID。
- 在订阅信息页签,找到需要重置消费位点的 Topic,在操作列单击重置消费位点。
- 选择重置方式。
- 从最新位点开始消费:该 Group 在消费该 Topic 下的消息时会跳过当前堆积的所有消息,从这之后发送的最新消息开始消费。堆积的消息本身并不会因此被删除。
- 从指定时间点开始消费:从过去或将来的某个指定时段内选择一个时间点,这个时间点之后发送的消息才会被消费。该时间段由 Topic 的消息保留时间决定,目前默认为 3 天。
- 单击重置。