分布式消息服務RocketMQ是一款低成本、高可靠、高性能的消息中間件產品,兼容開源RocketMQ客戶端,提供高效可靠的消息傳遞服務,解決分布式應用系統之間的消息數據通信難題,用于系統間的解耦,用戶只需專注業務,無需部署運維,適用于電商、金融、政企等多樣業務場景。
產品示意圖

分布式消息服務RocketMQ發布訂閱基本流程如下:
1、producer生產者連接nameserver,產生數據放入不同的Topic;
2、對于RocketMQ,一個Topic可以分布在各個Broker上,我們可以把一個Topic分布在一個Broker上的子集定義為一個Topic分片;
3、將Topic分片再切分為若干等分,其中的一份就是一個Queue。每個Topic分片等分的Queue的數量可以不同,由用戶在創建Topic時指定;
4、consumer消費者連接nameserver,根據broker分配的Queue來消費數據。
核心組件
分布式消息服務RocketMQ主要由Producer、Broker、Consumer三部分組成,其中Producer負責生產消息,Consumer負責消費消息,Broker負責存儲消息。Broker在實際部署過程中對應1臺或者多臺服務器,每個Broker可以存儲多個Topic的消息,每個Topic的消息也可以分片存儲于不同的Broker。Message Queue用于存儲消息的物理地址,每個Topic中的消息地址存儲于多個Message Queue中。ConsumerGroup由多個Consumer 實例構成。更多信息請參見產品架構。
開源對比
相較于開源自建RocketMQ,分布式消息服務RocketMQ在自動化部署、運維監控、增強能力、延遲消息/定時消息、ACL訪問控制等方面更具優勢。更多信息請參見開源對比。
支持的消息類型
分布式消息服務RocketMQ支持的消息類型包括普通消息、順序消息、事務消息與延時消息。
- 普通消息:RocketMQ中無特性的消息,普通消息主要包含同步消息和異步消息兩種。
- 順序消息:指消費消息的順序要同發送消息的順序一致,在RocketMQ中,主要有兩種有序消息:全局有序消息和局部有序消息(又叫普通有序消息、分區有序消息)。
- 事務消息:提供類似X/Open XA的分布式事務功能來確保業務發送方和MQ消息的最終一致性,其本質是通過半消息(prepare消息和commit消息)的方式把分布式事務放在MQ端來處理。
- 延時消息:生產者將消息發送到消息隊列RocketMQ服務端,設計消費時延,在預設的時間后才可以被消費者消費。
更多信息請參見功能特性。
功能特性
分布式消息服務RocketMQ的功能特性主要體現在以下幾個方面:
訪問接口
支持通過API調用,創建隊列、查詢消息監控指標、查詢消息內容等。
隊列能力
支持多種消息類型,包括普通隊列(高并發場景)、FIFO有序隊列(順序信息場景)、嚴格有序隊列。
消息能力
支持消息過濾、消息復用、消息重試、消息回溯、消息數據主動刪除以及消息廣播等能力。
安全防護
提供云審計進行租戶管理操作的記錄。
運維監控
提供主題、訂閱組、生產者、消費者、隊列的管理;同時支持集群、主題、隊列多維度指標監控。
更多信息請參見功能特性。
應用場景
分布式消息服務RocketMQ適用于電商、金融、政企等多樣業務場景,通常用于業務的分布式系統異步通信、數據同步和交換以及削峰填谷等場景。更多信息請參見應用場景。
使用限制
分布式消息服務RocketMQ對Topic、Group等對象信息進行限制,使用時注意不要超過限制,以免程序出現異常。更多信息請參見使用限制。