全部產品
Search
文件中心

ApsaraMQ for RocketMQ:基本概念

更新時間:Mar 29, 2025

本文主要對雲訊息佇列 RocketMQ 版涉及的專有名詞及術語進行定義和解析,方便您更好地理解相關概念並使用雲訊息佇列 RocketMQ 版

  • Topic

    • 訊息主題,一級訊息類型,通過Topic對訊息進行分類。更多資訊,請參見Topic與Tag最佳實務

  • 訊息(Message)

    • 訊息佇列中資訊傳遞的載體。

  • Message ID

    • 訊息的全域唯一標識,由雲訊息佇列 RocketMQ 版系統自動產生,唯一標識某條訊息。

  • Message Key

    • 訊息的業務標識,由訊息生產者(Producer)設定,唯一標識某個商務邏輯。

  • Tag

    • 訊息標籤,二級訊息類型,用來進一步區分某個Topic下的訊息分類。更多資訊,請參見Topic與Tag最佳實務

  • Producer

    • 訊息生產者,也稱為訊息發行者,負責生產並發送訊息。

  • Producer執行個體

    • Producer的一個對象執行個體,不同的Producer執行個體可以運行在不同進程內或者不同機器上。Producer執行個體安全執行緒,可在同一進程內多線程之間共用。

  • Consumer

    • 訊息消費者,也稱為訊息訂閱者,負責接收並消費訊息。可分為兩類:

      • Push Consumer:訊息由雲訊息佇列 RocketMQ 版推送至Consumer。

      • Pull Consumer:該類Consumer主動從雲訊息佇列 RocketMQ 版拉取訊息。目前僅TCP Java SDK支援該類Consumer。

        重要

        如需使用Pull Consumer,請確保您的雲訊息佇列 RocketMQ 版執行個體為企業鉑金版。

      更多資訊,請參見介面和參數說明訂閱訊息

  • 消費位點

    • 每個Topic會有多個分區,每個分區會統計當前訊息的總條數,這個稱為最大位點MaxOffset;分區的起始位置對應的位置叫做起始位點MinOffset。

      雲訊息佇列 RocketMQ 版的Pull Consumer會按順序依次消費分區內的每條訊息,記錄已經消費了的訊息條數,稱為消費位點ConsumerOffset。剩餘的未消費的條數(也稱為訊息堆積量)= 最大位點MaxOffset-消費位點ConsumerOffset。

  • Consumer執行個體

    • Consumer的一個對象執行個體,不同的Consumer執行個體可以運行在不同進程內或者不同機器上。一個Consumer執行個體內配置線程池消費訊息。

  • Group

    • 一類Producer或Consumer,這類Producer或Consumer通常生產或消費同一類訊息,且訊息發布或訂閱的邏輯一致。

  • Group ID

    • Group的標識。

  • 隊列(Message Queue)

    • 即Topic Partition,物理上的概念。每個Topic包含一個或多個隊列。建立Topic時隊列由系統自動分配,不支援自訂修改。

  • 叢集消費

    • 一個Group ID所標識的所有Consumer平均分攤消費訊息。例如某個Topic有9條訊息,一個Group ID有3個Consumer執行個體,那麼在叢集消費模式下每個執行個體平均分攤,只消費其中的3條訊息。更多資訊,請參見叢集消費和廣播消費

  • 廣播消費

    • 一個Group ID所標識的所有Consumer都會各自消費某條訊息一次。例如某個Topic有9條訊息,一個Group ID有3個Consumer執行個體,那麼在廣播消費模式下每個執行個體都會各自消費9條訊息。更多資訊,請參見叢集消費和廣播消費

  • 定時訊息

    • Producer將訊息發送到雲訊息佇列 RocketMQ 版服務端,但並不期望這條訊息立馬投遞,而是延遲到在目前時間點之後的某一個時間投遞到Consumer進行消費,該訊息即定時訊息。更多資訊,請參見定時和延時訊息

  • 延時訊息

    • Producer將訊息發送到雲訊息佇列 RocketMQ 版服務端,但並不期望這條訊息立馬投遞,而是延遲一定時間後才投遞到Consumer進行消費,該訊息即延時訊息。更多資訊,請參見定時和延時訊息

  • 事務訊息

    • 雲訊息佇列 RocketMQ 版提供類似XA或Open XA的分布事務功能,通過雲訊息佇列 RocketMQ 版的事務訊息能達到分散式交易的最終一致。更多資訊,請參見事務訊息

  • 順序訊息

    • 雲訊息佇列 RocketMQ 版提供的一種按照順序進行發布和消費的訊息類型。更多資訊,請參見順序訊息

  • 分區順序訊息

    • 對於指定的一個Topic,所有訊息根據Sharding Key進行區塊分區。同一個分區內的訊息按照嚴格的FIFO順序進行發布和消費。Sharding Key是順序訊息中用來區分不同分區的關鍵字段,和普通訊息的Message Key是完全不同的概念。更多資訊,請參見順序訊息

  • 訊息堆積

    • Producer已經將訊息發送到雲訊息佇列 RocketMQ 版的服務端,但由於Consumer消費能力有限,未能在短時間內將所有訊息正確消費掉,此時在雲訊息佇列 RocketMQ 版的服務端儲存著未被消費的訊息,該狀態即訊息堆積。

    • 訊息堆積量=處理中訊息量+已就緒訊息量,具體的指標含義,可參考以下說明:隊列訊息狀態

  • 訊息過濾

    • Consumer可以根據訊息標籤(Tag)對訊息進行過濾,確保Consumer最終只接收被過濾後的訊息類型。訊息過濾在雲訊息佇列 RocketMQ 版的服務端完成。更多資訊,請參見訊息過濾

  • 訊息軌跡

    • 在一條訊息從Producer發出到Consumer消費處理過程中,由各個相關節點的時間、地點等資料匯聚而成的完整鏈路資訊。通過訊息軌跡,您能清晰定位訊息從Producer發出,經由雲訊息佇列 RocketMQ 版服務端,投遞給Consumer的完整鏈路,方便定位排查問題。更多資訊,請參見查詢訊息軌跡

  • 重設消費位點

    • 以時間軸為座標,在訊息持久化儲存的時間範圍內(預設3天),重新設定Consumer對已訂閱的Topic的消費進度,設定完成後Consumer將接收設定時間點之後由Producer發送到雲訊息佇列 RocketMQ 版服務端的訊息。更多資訊,請參見重設消費位點

  • 無效信件佇列

    • 無效信件佇列用於處理無法被正常消費的訊息。當一條訊息初次消費失敗,雲訊息佇列 RocketMQ 版會自動進行訊息重試;達到最大重試次數後,若消費依然失敗,則表明Consumer在正常情況下無法正確地消費該訊息。此時,雲訊息佇列 RocketMQ 版不會立刻將訊息丟棄,而是將這條訊息發送到該Consumer對應的特殊隊列中。

      雲訊息佇列 RocketMQ 版將這種正常情況下無法被消費的訊息稱為死信訊息(Dead-Letter Message),將儲存死信訊息的特殊隊列稱為無效信件佇列(Dead-Letter Queue)。

      相關操作,請參見無效信件佇列