全部产品

消息查询

更新时间:2020-11-05 16:13:28

如遇消息消费有问题,则可通过查询具体发送的消息内容来排查问题。SOFAStack 消息队列提供了三种消息查询的方式,分别是按 Message ID、Message Key 以及 Topic 查询。

操作步骤

  1. 进入SOFAStack 消息队列控制台页面,在左侧导航栏,选择 消息查询
  2. 消息查询 页面,您可点击以下任一页签,然后按页面提示输入相应信息。
    • 按 Message ID 查询:Message ID 是由发送方 Send 方法返回的 32 位 Hex 字符串。按 Message ID 查询,即根据 Topic 和 Message ID,精确定位任意一条消息,获取消息的属性。建议在发送消息成功后将 Message ID 信息打印到日志中,方便问题排查。
      获取 Message ID 的方法如下:
      1. SendResult sendResult = producer.send(msg);
      2. String msgId = sendResult.getMessageId();
    • 按 Message Key 查询:Message Key 指发送消息时,设置到消息对象中的 Key 字段,消息队列根据您设置的 Message Key 建立消息的索引信息。按 Message Key 查询,即根据 Topic 和 Message Key,匹配到包含指定 Key 的最近 64 条消息。
      设置 Message Key 的方法如下:
      1. Message msg = new Message("Topic","*","Hello MQ".getBytes());
      2. //Key 值代表消息的业务关键属性,请尽可能全局唯一。
      3. msg.setKey("TestKey"+System.currentTimeMillis());
    • 按 Topic 查询:即根据 Topic 和消息的发送时间范围,批量获取该时间范围内的所有消息,查询量大,不易匹配,一般用在 Message ID 和 Message Key 都无法获得的情况下。
  3. 信息输入完毕后,点击 搜索 按钮,即可查询消息。

消息查询 页面,您可以查看到所有查询到的消息及其概览信息,包括 Message ID、Tag、Key 和存储时间。您还可以 查询消息轨迹 以及查看消息详情。

单元化说明

在 LDC 单元化架构环境下,可以自由切换单元,在指定单元内进行消息查询,如下图所示。

消息查询