全部產品
Search
文件中心

ApsaraMQ for RocketMQ:領域模型概述

更新時間:Oct 28, 2025

本文為您介紹雲訊息佇列 RocketMQ 版的領域模型。

產品定位

雲訊息佇列 RocketMQ 版是一款典型的分布式架構下的中介軟體產品,使用非同步通訊方式和發布訂閱的訊息傳輸模型。

通訊方式和傳輸模型的具體說明,請參見下文通訊方式介紹訊息傳輸模型介紹

雲訊息佇列 RocketMQ 版產品具備非同步通訊的優勢,系統拓撲簡單、上下遊耦合較弱,主要應用於非同步解耦,流量削峰填穀等情境。

對於同步鏈路,需要即時返回調用結果的情境,建議使用RPC調用方案。

您在進行產品選型時,請明確您的業務情境和主要需求。

訊息佇列RocketMQ版領域模型

領域模型

如上圖所示,雲訊息佇列 RocketMQ 版中訊息的生命週期主要分為訊息生產、訊息儲存、訊息消費這三部分。

生產者生產訊息並發送至雲訊息佇列 RocketMQ 版服務端,訊息被儲存在服務端的主題中,消費者通過訂閱主題消費訊息。

訊息生產

生產者(Producer)雲訊息佇列 RocketMQ 版中用於產生訊息的運行實體,一般整合於業務調用鏈路的上遊。生產者是輕量級匿名無身份的。

訊息儲存

  • 主題(Topic)雲訊息佇列 RocketMQ 版訊息傳輸和儲存的分組容器,主題內部由多個隊列組成,訊息的儲存和水平擴充實際是通過主題內的隊列實現的。

  • 輕量主題(LiteTopic)雲訊息佇列 RocketMQ 版當主題(Topic)的類型為Lite類型時,可以在主題下建立二級資源輕量主題。每個LiteTopic下預設由一個隊列組成。

  • 隊列(MessageQueue)雲訊息佇列 RocketMQ 版訊息傳輸和儲存的實際單元容器,類比於Kafka中的分區。雲訊息佇列 RocketMQ 版通過流式特性的無限隊列結構來儲存訊息,訊息在隊列內具備順序性儲存特徵。

  • 訊息(Message)雲訊息佇列 RocketMQ 版的最小傳輸單元。訊息具備不可變性,在初始化發送和完成儲存後即不可變。

訊息消費

  • 消費者分組(ConsumerGroup)雲訊息佇列 RocketMQ 版發布訂閱模型中定義的獨立的消費身份分組,用於統一管理底層啟動並執行多個消費者(Consumer)。同一個消費組的多個消費者必須保持消費邏輯和配置一致,共同分擔該消費組訂閱的訊息,實現消費能力的水平擴充。

  • 消費者(Consumer)雲訊息佇列 RocketMQ 版消費訊息的運行實體,一般整合在業務調用鏈路的下遊。消費者必須被指定到某一個消費組中。

  • 訂閱關係(Subscription)雲訊息佇列 RocketMQ 版發布訂閱模型中訊息過濾、重試、消費進度的規則配置。訂閱關係以消費組粒度進行管理,消費組通過定義訂閱關係控制指定消費組下的消費者如何?訊息過濾、消費重試及消費進度恢複等。

    雲訊息佇列 RocketMQ 版的訂閱關係除過濾運算式之外都是持久化的,即服務端重啟或請求斷開,訂閱關係依然保留。

通訊方式介紹

分布式系統架構思想下,將複雜系統拆分為多個獨立的子模組,例如微服務模組。此時就需要考慮子模組間的遠程通訊,典型的通訊模式分為以下兩種,一種是同步的RPC遠程調用;一種是基於中介軟體代理的非同步通訊方式。

同步RPC調用模型

同步調用

同步RPC調用模型下,不同系統之間直接進行調用通訊,每個請求直接從調用方發送到被呼叫者,然後要求被呼叫者立即返迴響應結果給調用方,以確定本次調用結果是否成功。

重要

此處的同步並不代表RPC的編程介面方式,RPC也可以有非同步非阻塞調用的編程方式,但本質上仍然是需要在指定時間內得到目標端的直接響應。

非同步通訊模型

非同步呼叫

非同步訊息通訊模式下,各子系統之間無需強耦合直接連接,調用方只需要將請求轉化成非同步事件(訊息)發送給中間代理,發送成功即可認為該非同步鏈路調用完成,剩下的工作中間代理會負責將事件可靠通知到下遊的調用系統,確保任務執行完成。該中間代理一般就是訊息中介軟體。

非同步通訊的優勢如下:

  • 系統拓撲簡單

    由於調用方和被呼叫者統一和中間代理通訊,系統是星型結構,易於維護和管理。

  • 上下遊耦合性弱

    上下遊系統之間弱耦合,結構更靈活,由中間代理負責緩衝和非同步恢複。 上下遊系統間可以獨立升級和變更,不會互相影響。

  • 容量削峰填穀

    基於訊息的中間代理往往具備很強的流量緩衝和整形能力,業務流量高峰到來時不會擊垮下遊。

訊息傳輸模型介紹

主流的訊息中介軟體的傳輸模型主要為點對點模型和發布訂閱模型。

點對點模型

點對點模型

點對點模型也叫隊列模型,具有如下特點:

  • 消費匿名:訊息上下遊溝通的唯一的身份就是隊列,下遊消費者從隊列擷取訊息無法聲明獨立身份。

  • 一對一通訊:基於消費匿名特點,下遊消費者即使有多個,但都沒有自己獨立的身份,因此共用隊列中的訊息,每一條訊息都只會被唯一一個消費者處理。因此點對點模型只能實現一對一通訊。

發布訂閱模型

發布訂閱模型

發布訂閱模型具有如下特點:

  • 消費獨立:相比隊列模型的匿名消費方式,發布訂閱模型中消費方都會具備的身份,一般叫做訂閱組(訂閱關係),不同訂閱組之間相互獨立不會相互影響。

  • 一對多通訊:基於獨立身份的設計,同一個主題內的訊息可以被多個訂閱組處理,每個訂閱組都可以拿到全量訊息。因此發布訂閱模型可以實現一對多通訊。

傳輸模型對比

點對點模型和發布訂閱模型各有優勢,點對點模型更為簡單,而發布訂閱模型的擴充性更高。雲訊息佇列 RocketMQ 版使用的傳輸模型為發布訂閱模型,因此也具有發布訂閱模型的特點。