更新時間:2020-11-09 15:45:52 來源:動力節(jié)點 瀏覽1247次
RabbitMQ是實現(xiàn)了高級消息隊列協(xié)議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件)。RabbitMQ服務(wù)器是用Erlang語言編寫的,而集群和故障轉(zhuǎn)移是構(gòu)建在開放電信平臺框架上的。所有主要的編程語言均有與代理接口通訊的客戶端庫。
動力節(jié)點Java培訓(xùn)的RabbitMQ視頻教程,本課程將講授RabbitMQ的環(huán)境搭建、消息的發(fā)送與接收、消息確認、與SpringBoot集成等,讓大家快速掌握RabbitMQ技術(shù),以適應(yīng)項目開發(fā)的需要;
課程學(xué)習(xí)目錄
1.RabbitMQ:什么是消息隊列
2.RabbitMQ:為什么使用消息隊列
3.RabbitMQ:RabbitMQ的特點
4.RabbitMQ:安裝RabbitMQ
5.RabbitMQ:啟動和關(guān)閉服務(wù)
6.RabbitMQ:插件添加
7.RabbitMQ:用戶管理
8.RabbitMQ:權(quán)限分配
9.RabbitMQ:vhost
10.RabbitMQ:AMQP協(xié)議機制
11.RabbitMQ:消息路由交換機類型
12.RabbitMQ:Direct類型交換機
13.RabbitMQ:Fanout類型交換機
14.RabbitMQ:Topic類型交換機
15.RabbitMQ:消息發(fā)送
16.RabbitMQ:消息發(fā)送測試
17.RabbitMQ:消息接收
18.RabbitMQ:消息接收測試
19.RabbitMQ:交換機-direct-消息接收
20.RabbitMQ:交換機-direct-消息發(fā)送
21.RabbitMQ:交換機-fanout-消息接收
22.RabbitMQ:交換機-fanout-消息發(fā)送
完整目錄可以關(guān)注動力節(jié)點Java視頻教程
基礎(chǔ)概念
講解基礎(chǔ)概念的前面,我們先來整體構(gòu)造一個結(jié)構(gòu)圖,這樣會方便們更好地去理解RabbitMQ的基本原理。
通過上面這張應(yīng)用相結(jié)合的結(jié)構(gòu)圖既能夠清晰的看清楚整體的send Message到Receive Message的一個大致的流程。當(dāng)然上面有很多名詞都相比還沒有介紹到,不要著急接下來我們就開始對其進行詳細的講解。
Queue
Queue(隊列)RabbitMQ的作用是存儲消息,隊列的特性是先進先出。上圖可以清晰地看到Client A和Client B是生產(chǎn)者,生產(chǎn)者生產(chǎn)消息最終被送到RabbitMQ的內(nèi)部對象Queue中去,而消費者則是從Queue隊列中取出數(shù)據(jù)。可以簡化成表示為:
生產(chǎn)者Send Message“A”被傳送到Queue中,消費者發(fā)現(xiàn)消息隊列Queue中有訂閱的消息,就會將這條消息A讀取出來進行一些列的業(yè)務(wù)操作。這里只是一個消費正對應(yīng)一個隊列Queue,也可以多個消費者訂閱同一個隊列Queue,當(dāng)然這里就會將Queue里面的消息平分給其他的消費者,但是會存在一個一個問題就是如果每個消息的處理時間不同,就會導(dǎo)致某些消費者一直在忙碌中,而有的消費者處理完了消息后一直處于空閑狀態(tài),因為前面已經(jīng)提及到了Queue會平分這些消息給相應(yīng)的消費者。這里我們就可以使用prefetchCount來限制每次發(fā)送給消費者消息的個數(shù)。詳情見下圖所示:
這里的prefetchCount=1是指每次從Queue中發(fā)送一條消息來。等消費者處理完這條消息后Queue會再發(fā)送一條消息給消費者。
Exchange
我們在開篇的時候就留了一個坑,就是那個應(yīng)用結(jié)構(gòu)圖里面,消費者Client A和消費者Client B是如何知道我發(fā)送的消息是給Queue1還是給Queue2,有沒有過這個問題,那么我們就來解開這個面紗,看看到底是個什么構(gòu)造。首先明確一點就是生產(chǎn)者產(chǎn)生的消息并不是直接發(fā)送給消息隊列Queue的,而是要經(jīng)過Exchange(交換器),由Exchange再將消息路由到一個或多個Queue,當(dāng)然這里還會對不符合路由規(guī)則的消息進行丟棄掉,這里指的是后續(xù)要談到的Exchange Type。那么Exchange是怎樣將消息準確的推送到對應(yīng)的Queue的呢?那么這里的功勞最大的當(dāng)屬Binding,RabbitMQ是通過Binding將Exchange和Queue鏈接在一起,這樣Exchange就知道如何將消息準確的推送到Queue中去。簡單示意圖如下所示:
以上就是對“Rabbitmq視頻教程,極速掌握知識”的介紹,希望對大家有所幫助,還想學(xué)習(xí)更多關(guān)于Java的課程,可以關(guān)注動力節(jié)點官網(wǎng)Java視頻教程,免費下載學(xué)習(xí)。
初級 202925
初級 203221
初級 202629
初級 203743