1. 程式人生 > >RabbitMQ簡介及其使用方法

RabbitMQ簡介及其使用方法

一 、RabbitMQ簡介

RabbitMQ是基於AMQP實現的一個開源訊息元件,主要用於在分散式系統中儲存轉發訊息,由因高效能、高可用以及高擴充套件而出名的 Erlang 寫成。其中,AMQP(Advanced Message Queuing Protocol,即高階訊息佇列協議),是一個非同步訊息傳遞所使用的應用層協議規範,為面向訊息的中介軟體設計。RabbiMQ是EDA事件驅動架構的核心,也是CQRS同步資料的關鍵。

二、RabbitMQ特點

高可靠:RabbitMQ 提供了多種多樣的特性讓你在可靠性和效能之間做出權衡,包括持久化、傳送應答、釋出確認以及高可用性。

高可用佇列:支援跨機器叢集,支援佇列安全映象備份,訊息的生產者與消費者不論哪一方出現問題,均不會影響訊息的正常發出與接收。

靈活的路由:所有的訊息都會通過路由器轉發到各個訊息佇列中,RabbitMQ內建了幾個常用的路由器,並且可以通過路由器的組合以及自定義路由器外掛來完成複雜的路由功能。

支援多客戶端:對主流開發語言(如:Python、Ruby、.NET、Java、C、PHP、ActionScript等)都有客戶端實現。

叢集:本地網路內的多個Server可以聚合在一起,共同組成一個邏輯上的broker。

擴充套件性:支援負載均衡,動態增減伺服器簡單方便。

許可權管理:靈活的使用者角色許可權管理,Virtual Host是許可權控制的最小粒度。

外掛系統:支援各種豐富的外掛擴充套件,同時也支援自定義外掛,其中最常用的外掛是web管理工具rabbitmq_management。

三、RabbitMQ工作原理簡介

訊息從傳送端到接收端的流轉過程即RabbitMQ的訊息工作機制。請見圖1。


四、RabbitMQ的基本用法

共有6種基本用法:單對單、單對多、釋出訂閱模式、按路由規則傳送接收、主題、RPC(即遠端儲存呼叫)。我們將介紹單對單、單對多和主題的用法。

1、單對單:單傳送、單接收,請見圖2。

2、單對多:一個傳送端,多個接收端,如分散式的任務派發,請見圖3。

3、主題:Exchange Type為topic,傳送訊息時指定交換機及Routing Key,消費者的訊息佇列繫結到該交換機以及被監聽訊息的Key實現訊息的訂閱,訂閱後則可接收訊息。只有消費者將佇列繫結到該交換機且指定的Routing Key符合匹配規則時才能收到訊息。其中Routing Key可以設定成萬用字元,如:*或#(*表示匹配Routing Key中的任何一個規則,#表示能收到任何訊息);如果Routing Key由多個單片語成,則單詞之間用.來分隔。



相關推薦

no