RabbitMQ的使用

AMQP是一種使用廣泛的獨(dú)立于語言的消息協(xié)議,它的全稱是Advanced Message Queuing Protocol,即高級消息隊(duì)列協(xié)議,它定義了一種二進(jìn)制格式的消息流,任何編程語言都可以實(shí)現(xiàn)該協(xié)議。實(shí)際上,Artemis也支持AMQP,但實(shí)際應(yīng)用最廣泛的AMQP服務(wù)器是使用Erlang編寫的RabbitMQ

安裝RabbitMQ

我們先從RabbitMQ的官網(wǎng)下載并安裝RabbitMQ,安裝和啟動RabbitMQ請參考官方文檔。要驗(yàn)證啟動是否成功,可以訪問RabbitMQ的管理后臺http://localhost:15672,如能看到登錄界面表示RabbitMQ啟動成功:

image.png

RabbitMQ后臺管理的默認(rèn)用戶名和口令均為 guest,guest用戶只是被容許從localhost訪問 生產(chǎn)環(huán)境的記得修改新增后臺管理的賬戶跟密碼

RabbitMQ的基本消息類型
1、Hello Wold 簡單模式(普通消息)
生產(chǎn)者-消息隊(duì)列-消費(fèi)者
注意:當(dāng)程序出現(xiàn)異常時(shí),手動進(jìn)行ACK,

2、Work queues 工作隊(duì)列模式 ,在工人之間分配任務(wù)(競爭消費(fèi)者模式)
生產(chǎn)者-消息隊(duì)列-多個(gè)消費(fèi)者
注意:默認(rèn)開啟的是輪詢模式,設(shè)置每個(gè)消費(fèi)者同時(shí)只能處理一條消息,這樣子就快勞多得


image.png

消息隊(duì)列ACK


image.png

3、Publish/Subscribe發(fā)布訂閱模式,一次向多個(gè)消費(fèi)者發(fā)送消息
交換機(jī):RabbitMQ 消息傳遞模型的核心思想是生產(chǎn)者從不直接向隊(duì)列發(fā)送任何消息。實(shí)際上,生產(chǎn)者經(jīng)常甚至根本不知道消息是否會被傳送到任何隊(duì)列。相反,生產(chǎn)者只能將消息發(fā)送到交換機(jī)。交換是一件非常簡單的事情。一方面它接收來自生產(chǎn)者的消息,另一方面將它們推送到隊(duì)列中。交換機(jī)必須確切地知道如何處理它收到的消息。它應(yīng)該附加到特定隊(duì)列嗎?它應(yīng)該附加到許多隊(duì)列中嗎?或者它應(yīng)該被丟棄。其規(guī)則由交換類型定義。


image.png

有幾種可用的交換機(jī)類型:direct、topic、headers 和fanout。

4、Routing 路由模式


image.png

5、Topics 主題模式

6、Publisher Confirms 發(fā)布確認(rèn)模式

注意:交換機(jī)通道持久化,隊(duì)列持久化,消息持久化 保證異常情況下消息還能保存

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容