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