LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

RabbitMQ最全詳解(圖文全面總結)

admin
2025年6月28日 21:54 本文熱度 534

消息中間件是高并發架構的基石,之前談過了RocketMQ和Kafka,今天接著詳解RabbitMQ消息中間件@mikechen

RabbitMQ

RabbitMQ是一款使用Erlang語言開發的,實現了高級消息隊列協議(AMQP)的開源消息中間件。

AMQP,即Advanced Message Queuing Protocol,高級消息隊列協議是應用層協議的一個開放標準,為面向消息的中間件設計。

Erlang語言,主要用于并發及分布式系統的開發,在電信領域應用廣泛,OTP作為Erlang語言的一部分,包含了很多基于Erlang開發的中間件及工具庫。 

RabbitMQ特點

1.可靠性:RabbitMQ使用一些機制來保證可靠性, 如持久化、傳輸確認及發布確認等。

2.靈活的路由 :在消息進入隊列之前,通過交換器來路由消息。

3.擴展性:多個RabbitMQ節點可以組成一個集群,也可以根據實際業務情況動態地擴展 集群中節點。

4.高可用性:隊列可以在集群中的機器上設置鏡像,使得在部分節點出現問題的情況下隊 列仍然可用。

5.多種協議:RabbitMQ除了原生支持AMQP協議,還支持STOMP, MQTT等多種消息 中間件協議。

6.多語言客戶端:RabbitMQ 幾乎支持所有常用語言,比如 Java、 Python、 Ruby、 PHP、 C#、 JavaScript 等。 

RabbitMQ架構設計

RabbitMQ架構,如下圖所示:

RabbitMQ架構會涉及如下模型:Producer、Consumer、Queue、Exchange、Broker、RoutingKey、BindingKey。

 

RabbitMQ架構模型

1.Producer

消息生產者Producer:主要就是生成消息,通過信道(Channel),把消息發送給交換機(Exchange)。

消息一般可以包含 2 個部分:

  1. 消息體(payload):一般是一個帶有業務邏輯結構的數據,比如:一個 JSON 字符串;

  2. 標簽(Label):用來表述這條消息,比如:一個交換器的名稱和一個路由鍵; 

2.Consumer

這個大家也比較清楚,就是消息消費者,就是接受消息的程序。

消費者監聽RabbitMQ中的(Queue)隊列中的消息,然后去消費。

備注:消息(Message)會一直留在隊列里,直到被消費者(Consumer)消費。 

3.Queue

用于存儲消息,如下圖所示:

RabbitMQ 的生產者生產消息并最終投遞到隊列中,消費者可以從隊列中獲取消息并消費。

RabbitMQ中消息都只能存儲在隊列中,這一點和Kafka這種消息中間件相反。

多個消費者可以訂閱同一個隊列,這時隊列中的消息會被平均分攤給多個消費者進行處理,如下圖所示:

 

4.Exchange

生產者將消息發送到Exchange,由交換器將消息路由到一個或者多個隊列中。

如下圖所示:

這里的交互機會涉及如下四種類型:

  1. 直接Direct;

  2. 扇出Fanout ;

  3. 主題Topic ;

  4. 消息頭Headers;

不同的類型有著不同的路由策略。

5.Broker

可以將一個RabbitMQ Broker看作一臺RabbitMQ服務器,如下圖所示:

上圖展示了消息從生產者存入RabbitMQ Broker,以及消費者從Broker中消費數據的完整過程。

6.Routing Key

生產者將消息發給交換器的時候,一般會指定一個 RoutingKey,用來指定這個消息的路由規則。

如下圖所示:

生產者可以在發送消息給交換器時,通過指定 RoutingKey 來決定消息流向哪里。

7.BindingKey

RabbitMQ 中通過綁定將交換器與隊列關聯起來,在綁定的時候一般會指定一個綁定鍵(BindingKey),這樣 RabbitMQ 就知道如何正確地將消息路由到隊列了。


閱讀原文:原文鏈接


該文章在 2025/7/1 23:57:58 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
麻豆久久久久久久 | 色婷婷六月亚洲婷婷 | 在线激情小视频第一页 | 日韩精品久久人人躁人人噜 | 亚洲欧美一区二区三区久久 | 一本色道久久99一综合 |