全部產品
Search
文件中心

ApsaraMQ for RocketMQ:訊息查詢

更新時間:Sep 19, 2025

雲訊息佇列 RocketMQ 版提供了三種訊息查詢的方式,分別是按Message ID、Message Key以及Topic查詢。您可以通過訊息查詢驗證訊息是否發送成功、驗證訊息發送的內容是否正確、以及進一步查看訊息的軌跡資訊。

查詢方式說明

由於訊息在雲訊息佇列 RocketMQ 版中儲存的時間預設為3天,即只能查詢從當前查詢時間算起3天內的訊息。例如,目前時間是2019年06月10日15:09:48,那麼能查詢到的某Topic下的訊息最早的時間點為2019年06月07日15:09:48。

三種查詢方式的特點和對比如下表所述。

查詢方式

查詢條件

查詢類別

說明

按Message ID查詢

Topic+Message ID

精確查詢

根據Topic和Message ID可以精確定位任意一條訊息,擷取訊息的屬性。

按Message Key查詢

Topic+Message Key

模糊查詢

根據Topic和Message Key可以匹配到包含指定Key的最近64條訊息。

重要

建議訊息生產方為每條訊息設定儘可能唯一的Key,以確保相同的Key的訊息不會超過64條,否則訊息會漏查。

按Topic查詢

Topic+時間段

範圍查詢

根據Topic和時間範圍,批量擷取合格所有訊息,查詢量大,不易匹配。

推薦查詢過程

推薦按照以下流程查詢訊息。

訊息查詢

操作步驟

  1. 登入雲訊息佇列 RocketMQ 版控制台,在左側導覽列,單擊实例列表

  2. 在頂部功能表列,選擇地區,如華東1(杭州)

  3. 執行個體列表頁面,找到目標執行個體,在其操作列,單擊更多,然後在下拉式功能表中,選擇消息查询

  4. 消息查询頁面,您可選擇以下任意一種查詢方式,然後按頁面提示輸入相應資訊,再單擊查询來查詢訊息。

    • 按 Message ID 查询

      按Message ID查詢訊息屬於精確查詢,您輸入Topic和Message ID即可精確查詢到任意一條訊息。因此,為了儘可能精確地查詢,建議在發送訊息成功後將Message ID資訊列印到日誌中,方便問題排查。

      以Java SDK為例,擷取Message ID的方法如下。

         SendResult sendResult = producer.send(msg);
         String msgId = sendResult.getMessageId();

      其他語言可參見SDK參考概述

    • 按 Message Key 查询

      雲訊息佇列 RocketMQ 版根據您設定的Message Key建立訊息的索引資訊,當您輸入Key進行查詢時,雲訊息佇列 RocketMQ 版根據該索引即可匹配相關的訊息返回。

      重要
      • 按Message Key查詢的條件是您在發送訊息時已設定Message Key屬性。

      • 按Message Key查詢僅返回合格最近的64條訊息,因此建議您儘可能保證設定的Key是唯一的,並具有業務區分度。

      設定Message Key的方法如下。

              Message msg = new Message("Topic","*","Hello MQ".getBytes());
              /**
             * 對每條訊息設定其檢索的Key,該Key值代表訊息的業務關鍵屬性,請儘可能全域唯一。
             * 以方便您在無法正常收到訊息情況下,可通過訊息佇列RocketMQ版控制台查詢訊息。不設定也不會影響訊息正常收發。
             */
            msg.setKey("TestKey"+System.currentTimeMillis());                                
    • 按 Topic 查询

      按Topic查詢一般用在Message ID和Message Key都無法獲得的情況下,根據Topic和訊息的發送時間範圍,批量擷取該時間範圍內的所有訊息,然後再找到關心的資料。

      重要

      若按Topic查詢訊息,請注意以下幾點:

      • 按Topic查詢屬於範圍查詢,擷取Topic下符合時間條件的所有訊息,訊息量大,建議盡量縮短查詢區間。

      • 按Topic查詢訊息量大,採用分頁展示。

查詢結果說明

您可以在控制台的消息查询頁面看到查詢到的訊息。直接顯示的資訊包含Message ID、Tag、Key、產生時間及儲存時間。此外,您還可以查詢訊息軌跡、進行消費驗證或下載訊息。

消費驗證

雲訊息佇列 RocketMQ 版提供了消費驗證功能,該功能可以將指定訊息推送給指定的線上用戶端,以檢測用戶端消費該訊息的邏輯和結果是否符合預期。

消費驗證功能僅用於驗證用戶端的消費邏輯是否正常,並不會影響正常的收訊息流程程,因此訊息的消費狀態等資訊在消費驗證後並不會改變。

重要

消費驗證功能僅用於驗證用戶端的消費邏輯是否正常,並不會影響正常的收訊息流程程,因此訊息的消費狀態等資訊在消費驗證後並不會改變。

consumer_vaildate

相關文檔

您可以根據訊息查詢結果進一步查看訊息的軌跡資訊,查看訊息的消費狀態和消費結果。具體操作,請參見查詢訊息軌跡