阿里云消息队列RocketMQ消息查询方式

消息队列RocketMQ提供了三种消息查询的方式,分别是按分别是按 Message ID、Message Key 以及 Topic 查询。

查询方式说明

三种查询方式的特点和对比如下表所示

查询方式                

查询条件                

查询类别                

说明                

按Message ID查询                

Topic+Message ID                

精确查询                

根据Topic   和 Message ID 可以精确定位任意一条消息,获取消息的属性。注意:为了尽可能精确地查询,建议发送方调用Producer生产者实例发送消息时,在发送消息成功后将Message ID信息打印到日志中,这样可以通过按照“MessageId”的方式来查询这条消息。                

按Message Key查询                

Topic+Message Key                

模糊查询                

按Message   Key查询消息时,RocketMQ根据用户设置的Message   Key建立消息的索引信息,当用户输入 Key进行查询时,RocketMQ根据该索引即可匹配相关的消息返回相关联的一个或多个消息。                

按Topic查询                

Topic+时间段                

范围查询                

按Topic查询一般用在前两种查询条件都无法获得的情况下,根据Topic和消息的发送时间范围,批量获取该时间范围内的所有消息,然后用户再基于查询出来的部分消息再查找到相关联的数据。      

推荐查询流程

用户使用消息查询的整体流程建议:

操作步骤

1.登录消息队列RocketMQ控制台

2. 点击目标,单击消息查询

3.在消息查询页面,您可单击以下任一标签,然后按页面提示输入相应信息,再单击搜索按钮来查询消息。
按 Message ID 查询
按Message ID查询消息属于精确查询,您输入Topic和Message ID即可精确查询到任意一条消息。因此,为了尽可能精确地查询,建议在发送消息成功后将 Message ID 信息打印到日志中,方便问题排查。
在消息查询页面点击“Message ID”tab页,选择topic,填写Message ID,点击“搜索”查询消息,查询结果。
查询到消息后,您可以在消息详情页面看到每条消息的基本属性,消息体下载链接以及消息的消费状态,:

按 Message Key 查询
消息队列RocketMQ根据您设置的Message Key建立消息的索引信息,当您选择Topic并输入Message Key进行查询时,消息队列RocketMQ根据该索引即可匹配相关的消息返回

按 Topic 查询
按Topic查询一般用在Message ID和Message Key都无法获得的情况下,根据Topic和消息的发送时间范围,批量获取该时间范围内的所有消息,然后再找到关心的数据。
在消息查询页面点击“Topic”tab页,选择Topic,选择查询起始时间,点击“搜索”查询消息,查询结果: