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由多個單片語成,則單詞之間用.來分隔。



相關推薦

RabbitMQ簡介及其使用方法

一 、RabbitMQ簡介RabbitMQ是基於AMQP實現的一個開源訊息元件,主要用於在分散式系統中儲存轉發訊息,由因高效能、高可用以及高擴充套件而出名的 Erlang 寫成。其中,AMQP(Advanced Message Queuing Protocol,即高階訊息佇列

LIBSVM簡介及其使用方法

libsvm 官方網站:Welcome to Chih-Jen Lin's Home Page http://www.csie.ntu.edu.tw/~cjlin/ http://www.csie.ntu.edu.tw/~cjlin/libsvm /index.html#nuandone 可以在此網站下載 相

MVC架構簡介及其測試策略

輸入 mvc 強行 嘗試 部分 img 基本架構 fire 有用 最近在WEB端測試工作中陷入了瓶頸,單純的手動功能測試在沒有成熟的代碼規範之前還是很容易坑的,WEB自動化測試一時半會還沒有什麽進展,所以決定先學習一下網站用的MVC架構,跟著教程寫了一個小網站,大概也找

SQLyog簡介及其功能(附百度雲盤下載地址)

++ 基本 記錄 導出 對數 簡介 sam 接口 管理 一、軟件簡介   SQLyog 是一個快速而簡潔的圖形化管理MYSQL數據庫的工具,它能夠在任何地點有效地管理你的數據庫。SQLyog是業界著名的Webyog公司出品的一款簡潔高效、功能強大的圖形化MySQL數據庫管

JSP九大內置對象及其方法

name line tco exce sco trace 作用範圍 conf pos 內置對象包括 request response pageContext session application out config page exception 1.out (1)cle

常用類及其方法應用

get arrays類 數字 arrays ima form cas per time Math類(計算)、Arrays類(排序等)、BigInteger類(精確整數)、BigDecimal類(精確浮點數) ---------------------------------

JavaScript中的對象及其方法

數量 添加元素 截取 for 字母 -1 多維 java nbsp 1.數組對象: javascript中數組是一種特殊的對象。創建一個新的數組類似於創建一個對象實例,通過new運算符和相應的數組構造函數完成。數組的構造函數是Array(),可以接受多個參數,編寫方法如

OpenStack中的rabbitmq的配置方法

server plugin style lis setting creating 開機 alt .cn OpenStack中的rabbitmq的配置方法 author:headsen chen 2017-10-11 17:24:58

RabbitMQ簡介

異步 rip 屬性 定義 bug 什麽 基礎概念 發生 產生 RabbitMQ簡介 AMQP,即Advanced Message Queuing Protocol,高級消息隊列協議,是應用層協議的一個開放標準,為面向消息的中間件設計。消息中間件主要用於組件之間的解耦,消息的

字符流Writer對象創建子類及其方法

pipe 緩存 writer PE spa AD 清除 nbsp 直接 字符流中輸出數據主要用Writer來完成,輸出使用Reader 父類---Writer 子類---BufferedWriter / CharArrayWriter / FilterWrite

轉載:Linux音頻驅動-OSS和ALSA聲音系統簡介及其比較

sdn stat 邏輯 音量 技術 hone ltr close clear Linux音頻驅動-OSS和ALSA聲音系統簡介及其比較 概述 昨天想在Ubuntu上用一下HTK工具包來繪制語音信號的頻譜圖和提取MFCC的結果,但由於前段時間把Ubuntu升級到13.0

01_Hive簡介及其工作機制

ofo .com 結構化 hdfs href htm hadoop 保存 簡單 1.Hive簡介   Hive是一個基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一個表。並提供類SQL查詢功能, 可以將sql語句轉換為MapReduce任務運行。其優點是

python數據類型:tuple、dict及其方法

asdf 修改 進行 key存在 join int 找到 efault spa 1.tu(對象)對應的tuple(類) 元組是對列表的二次加工,元素不可被修改,不能被增加或者刪除 tu = (111,"alex",(11,22),[(33,44)],True,33,44,)

ES6對象構建及其方法和比較

ssi es5 kill 自定義對象 nbsp let 比較 jin cti let name=‘jin‘; let skill=‘web‘; //ES6允許我們用變量的形式賦值 let obj={name,skill}; console.log(obj); //key

Python 的 time 模塊導入及其方法

imp com 轉換 文章 輸出結果 重要 time模塊 常見 講解 時間模塊很重要,Python 程序能用很多方式處理日期和時間,轉換日期格式是一個常見的功能,講解一下Python 的 time 模塊導入及其方法。 1,time 模塊導入 import time; # 引

python之路 第二篇 數據類型詳解及其方法

字符 引號 print 成員 移除 join att pri str 字符串 #作用:描述名字,性別,國籍,地址等信息#定義:在單引號\雙引號\三引號內,由一串字符組成 name=‘Matthew‘ #優先掌握的操作: #1、按索引取值(正向取+反向取) :只能取 #2

我為什麼要選擇RabbitMQRabbitMQ簡介,各種MQ選型對比

轉載自:https://www.sojson.com/blog/48.html   前言:     MQ 是什麼?佇列是什麼,MQ 我們可以理解為訊息佇列,佇列我們可以理解為管道。以管道的方式做訊息傳遞。 場景:

網路分流器-網路分流器-網路流量監控技術及其方法

戎騰網路分流器作用於網路安全領域網路監控前端, 流量監控主要通過那些手段呢? 今天來講講! 支援48個10G 亦可更換內部子卡,支援4個100G,支援不同鏈路,LAN,GE,WAN,POS等 流量監控的手段有哪些,RMON和SMON的區別是什麼? SMON用於交換式網路,而ROMN用於共享式網路。 為

網絡分流器-網絡分流器-網絡流量監控技術及其方法

smo 互聯網 部分 聚合 -- 優點 mage vlan通信 ces 戎騰網絡分流器作用於網絡安全領域網絡監控前端, 流量監控主要通過那些手段呢? 今天來講講! 支持48個10G 亦可更換內部子卡,支持4個100G,支持不同鏈路,LAN,GE,WAN,POS等 流量監控的

jvm簡介及其記憶體分佈介紹(入門級)

一.jvm執行機制 jvm啟動流程: java虛擬機器啟動的命令是通過java +xxx(類名,這個類中要有main方法)或者javaw啟動的。 執行命令後,系統第一步做的就是裝載配置,會在當前路徑中尋找jvm的config配置檔案。 找到jvm的config