分布式消息服務RabbitMQ是基于高可用、分布式集群技術,完全兼容RabbitMQ開源社區,支持消息路由、事務消息、優先級隊列、延遲隊列、死信隊列、鏡像隊列等功能的消息云服務。用戶可開箱即用,無需部署免運維,從而實現快速上云。
產品示意圖

分布式消息服務RabbitMQ發布訂閱基本流程如下:
1、生產者生產的消息,通過TCP連接的信道首先發布到指定的交換機上;
2、交換機通過路由鍵(RoutingKey)的匹配,選擇對應的隊列進行投遞;
3、消費者訂閱隊列,消費隊列的消息。
核心概念
對照產品示意圖,分布式消息服務RabbitMQ的核心概念如下:
- Producer:消息生產者,即消息的發布方, 生產者生產的消息,首先發布到指定的交換機上,交換機通過路由鍵(RoutingKey)的匹配,選擇對應的隊列進行投遞。消費者訂閱隊列,消費隊列的消息。
- Connection:客戶端與Broker間的TCP連接。
- Channel:信道,每個連接采用多路復用,包含多個信道。producer與Broker間采用信道傳遞數據。
- Broker:RabbitMQ服務節點,集群由多個節點組成。
- Vhost:虛擬機,一個節點下包含多個vhost,vhost間的exchange,queue相互隔離。就好比一臺物理機上(Broker)部署多臺虛擬機(vhost),虛擬機采用不同的用戶名密碼登錄,實現多租戶。
- Exchange:交換機,消息首先會傳遞到交換機,由交換機匹配路由鍵(RoutingKey)決定投遞到哪個queue。
- Queue:隊列,存儲消息的數據結構。類比小區的快遞柜。
- Binding:綁定,交換機與隊列間通過路由鍵(RoutingKey)進行綁定起來。
- Consumer,消費者,即消息的接受方。
更多信息請參見名詞解釋。
開源對比
相較于開源自建RabbitMQ,分布式消息服務RabbitMQ在低成本運維、堆積性、可觀測性、集群可用性、安全保證、操作日志、OpenApi訪問等方面更具優勢。
| 對比項 | 開源自建 | 分布式消息服務RabbitMQ版 |
|---|---|---|
| 低成本運維 | 需要專業人員資源規劃、部署、運維 | 一鍵開通,全托管。提供多種規格,按需使用,支持一鍵式節點數、磁盤存儲空間和節點規格擴容。 |
| 堆積性 | 抗堆積性差,容易引發內存問題導致宕機 | 提供云原生引擎類型,支持海量消息堆積不受影響 |
| 可觀測性 | 通過Management UI能夠獲取豐富的指標,但需要自建指標存儲及展示的系統 | 提供監控告警能力,指標豐富,維度可精確到Vhost、Exchange和Queue,便于您快速發現和定位問題 |
| 集群可用性 | 需配套解決集群多節點負載均衡設置 | 集群內置負載均衡,支持跨AZ部署 |
| 安全保證 | 需要自行進行安全加固 | VPC隔離,支持SSL通道加密 |
| 操作日志 | 無,需要自己開發 | 可追溯租戶管理操作的記錄 |
| OpenApi訪問 | 無,需要自己開發 | 提供簡單的實例管理RESTFul API,使用門檻低 |
功能特性
分布式消息服務RabbitMQ的功能特性主要體現在以下幾個方面:
- 訪問接口
支持通過API調用,提供交換器、隊列增刪查改等管控工作。管理控制臺上進行的操作用于對交換器、隊列、用戶、策略等增刪查改等管控工作。
- 隊列能力
(1)優先級隊列:相比低優先級的消息,要優先投遞給消費者進行處理。
(2)延遲隊列:延時消息,實現秒級精準定時;簡單易用,在代碼上只需一個參數設置即可完成,解決開源 RabbitMQ 無延時隊列的痛點。
(3)死信隊列:支持被拒絕消息、TTL 過期消息、隊列達到最大長度(消息隊列 AMQP 隊列長度無上限)等 3 種類型消息自動進入死信隊列的能力,確保消息不丟失。
- 消息能力
(1)廣播消息:在同一個消費組內對所有消費者投遞相同消息。
(2)事務消息:支持事務消息,可用于分布式應用 。
(3)定時消息:支持消息延遲發送。解決開源 RabbitMQ 無延時隊列的痛點。
- 安全防護
可追溯租戶管理操作的記錄。 起源于金融系統,支持權限控制和SSL協議。
- 運維監控
提供集群、交換器、隊列的管理;集群、信道、連接、交換器、隊列多維度指標監控。
更多信息請參見功能特性。
應用場景
分布式消息服務RabbitMQ適用于電子商務、金融服務、電信、物流和供應鏈管理、社交媒體、游戲開發、科學和研究領域等行業,通常用于業務的應用解耦、錯峰流控與流量削峰、異步通信等場景。更多信息請參見應用場景。
使用限制
分布式消息服務RabbitMQ對連接數、通道數等信息進行限制,使用時注意不要超過限制,以免程序出現異常。更多信息請參見使用限制。