全部產品
Search
文件中心

ApsaraMQ for RocketMQ:Topic管理

更新時間:Jul 10, 2026

Topic是雲訊息佇列 RocketMQ 版對訊息的一級歸類。雲訊息佇列 RocketMQ 版支援發布和訂閱模型,通過Topic完成訊息的發布和訂閱。訊息生產者將訊息發送到Topic中,而訊息消費者則通過訂閱該Topic來消費訊息。本文介紹如何在雲訊息佇列 RocketMQ 版控制台上建立、刪除、更新和查詢Topic。

注意事項

  • Topic不能跨執行個體使用,例如在執行個體A中建立的Topic A不能在執行個體B中使用。

  • Topic類型和訊息類型必須一致不能混用。例如,您需要建立一個Topic用於收發普通訊息,則該Topic的訊息類型必須為普通訊息類型,不能選擇順序訊息、事務訊息等,否則會導致營運事件(如節點更換,執行個體遷移時定時訊息丟失)。

  • RocketMQ 5.x 版本中,Topic 的隊列數(Queue)由系統自動分配,不支援自訂修改,目前也無法通過控制台或 API 直接查看具體隊列數值。

  • 雲訊息佇列 RocketMQ 版不支援直接建立全域順序 Topic,也不提供特殊申請通道。如需實現全域順序效果,建議建立分區順序 Topic,並在發送訊息時為所有訊息設定相同的 Sharding Key(如固定值),使訊息均路由至同一分區。

  • 雲訊息佇列 RocketMQ 5.x 版出於資源管控和穩定性考慮,不支援自動建立 Topic(包括死信 Topic)。如需使用死信 Topic,需通過控制台或調用 API 顯式手動建立,這與開源 RocketMQ 版本的行為有所不同。

計費說明

雲訊息佇列 RocketMQ 版不同的計費模式,Topic的計費方式也不相同。

  • 訂用帳戶、隨用隨付執行個體

    Topic數量超過執行個體免費配額的部分,會產生Topic費用。若未超出免費配額,則不產生費用。具體的計費規則,請參見Topic費用

  • Serverless執行個體

    按照Topic數量進行計費。具體的計費規則,請參見Serverless執行個體Topic費用

建立Topic

  1. 登入雲訊息佇列 RocketMQ 版控制台,在左側導覽列單擊執行個體列表

  2. 在頂部功能表列選擇地區,如華東1(杭州),然後在執行個體列表中,單擊目標執行個體名稱。

  3. 在左側導覽列,單擊Topic 管理

  4. Topic 管理頁面,單擊創建 Topic

  5. 创建 Topic面板中,輸入Topic的名称描述,選擇該Topic的訊息類型,然後單擊確定

    訊息類型可選擇普通訊息順序訊息定時/延時訊息事務訊息。名稱長度為 1~60 個字元,只能包含大小寫英文、數字、虛線(-)和底線(_)。

查看Topic列表

  1. 登入雲訊息佇列 RocketMQ 版控制台,在左側導覽列單擊執行個體列表

  2. 在頂部功能表列選擇地區,如華東1(杭州),然後在執行個體列表中,單擊目標執行個體名稱。

  3. 在左側導覽列,單擊Topic 管理

  4. Topic 管理頁面,可以查看當前執行個體的所有Topic。

查詢Topic詳情

  1. Topic 管理頁面,找到目標Topic,在其操作列單擊详情

  2. Topic 详情頁面,可以查詢Topic的詳細資料。

編輯Topic

  1. Topic 管理頁面,找到目標Topic,在其操作列單擊详情

  2. Topic 详情頁面單擊基本信息頁簽,然後在基础信息地區單擊编辑

  3. 更新 Topic面板中輸入修改後的Topic描述,並單擊确定完成修改。

刪除Topic

警告
  • Topic刪除後,相關的生產者、消費者將會立即停止服務,Topic中繼資料和Topic的訊息資料也會被同時刪除且不可恢複,請您謹慎執行該操作。

  • 若需要再次建立同名Topic,需要等待5分鐘。

  1. Topic 管理頁面,找到目標Topic,在其操作列單擊详情

  2. Topic 详情頁面單擊基本信息頁簽,然後在基础信息地區單擊刪除 Topic

  3. 提示對話方塊,單擊確認

快速體驗

雲訊息佇列 RocketMQ 版支援在控制快速體驗普通訊息的發送。其他類型訊息的收發可通過SDK進行,具體操作,請參見SDK參考概述

  1. Topic 管理頁面,找到訊息類型普通訊息的目標Topic,在其操作列單擊详情

  2. Topic 详情頁面,單擊快速體驗

  3. 快速體驗的訊息生產和消費面板,按需執行相應操作:

    • 控制台

      輸入訊息內容訊息 Key訊息 Tag,然後單擊確定

    • SDK

      根據不同的SDK,查看對應的程式碼範例,並根據說明完成訊息的發送與接收。

查看儀錶盤

儀錶盤主要展示Topic的生產相關指標以及生產者用戶端相關指標。儀錶盤指標詳情,請參見儀錶盤

  1. Topic 管理頁面,找到目標Topic,在其操作列單擊详情

  2. Topic 详情頁面,單擊仪表盘頁簽。

更多操作

Topic匯入和匯出,請參見Topic匯入/匯出

常見問題

Q:使用阿里雲 CLI 建立 Topic 時報 InternalError 或提示 MessageType 缺失怎麼辦?

在使用阿里雲 CLI 建立 Topic 時,MessageType 參數為必填項且無預設值,不可省略。必須顯式指定訊息類型(如 NORMALFIFODELAY 等),否則會導致建立失敗或報 InternalError 錯誤。請檢查 CLI 命令中是否包含 --MessageType 參數,並確保指定了正確的訊息類型值。

Q:調用 OnsTopicStatus 介面查詢 Topic 時返回 BIZ_RESOURCE_NOT_EXISTS 報錯怎麼辦?

該報錯表示傳入的執行個體 ID 下不存在目標 Topic。請按以下步驟排查:

  1. 核對調用介面時使用的執行個體 ID 和 Topic 名稱是否正確。

  2. 確認目標 Topic 已在指定執行個體中建立並處於正常狀態。

  3. 注意 Topic 不能跨執行個體使用,請確保查詢所用的執行個體 ID 與建立 Topic 時使用的執行個體 ID 一致。

Q:如何查詢 RocketMQ Topic 被刪除的操作記錄及操作者?

可通過阿里雲Action Trail(ActionTrail)控制台查詢 Topic 刪除記錄:

  1. 登入Action Trail(ActionTrail)控制台。

  2. 在事件查詢頁面,搜尋事件名稱 OnsTopicDelete(通過 API 刪除)或 ConsoleTopicDelete(通過控制台刪除),並篩選對應地區。

  3. 查看操作記錄及操作者帳號資訊。

說明

Action Trail日誌最長保留 90 天,超出該期限的操作記錄無法查詢。

Q:同一 FIFO 主題在多重專案中存在生產者,導致訊息類型不匹配報錯怎麼辦?

該錯誤與多專案共存無關,根本原因是 Topic 配置的訊息類型為 FIFO(順序訊息),但用戶端發送時使用了普通訊息(NORMAL)的介面或屬性,導致訊息類型不一致。請按以下步驟排查:

  1. 檢查代碼中訊息的定義,確認使用了 FIFO 訊息專用的發送介面(而非普通訊息介面)。

  2. 確認訊息屬性符合 FIFO 要求,例如正確設定了訊息分組(MessageGroup)。

  3. 確保所有生產者代碼中訊息的發送方式與 Topic 配置的訊息類型(FIFO)保持一致。

相關文檔

Topic的相關操作也可以通過調用API完成: