小編給大家分享一下MQ消息隊列中間件RabbitMQ怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
MQ消息隊列中間件—RabbitMQ
消息中間件主要用于組件之間的解耦,消息的發(fā)送者無需知道消息使用者的存在,反之亦然。
1、Message Quene是應用程序對應用程序的通信方法。異步RPC的主要手段之一。不需要直接調用彼此來通信。
2、RabbitMQ(開源消息代理)是實現(xiàn)AMQP(應用層開放標準advanced message queuing protocal提供統(tǒng)一消息服務)協(xié)議的MQ產(chǎn)品。
3、消息的生產(chǎn)者Producer--->消息隊列----->消息的消費者
4、 安裝RabbitMQ:windows計算機名用英文,關閉安全軟件:
1)Erlang環(huán)境(編程語言):opt_win64_17.3.exe
http://www.erlang.org/download/otp_win64_17.3.exe
2)按照RabbitMQ服務:rabbitmq-server-3.4.1.exe
5、安裝完測試:打開rabbitMQ command prompt
輸入rabbitmq-plugins enable rabbitmq_management啟動后臺服務軟件,瀏覽器輸入127.0.0.1:15672 ,用戶名/密碼:guest/guest
6、overview:顯示消息隊列,節(jié)點,路徑,端口(AMQP端口5672,集群端口25672,web管理端口15672)
connections:
channels:數(shù)據(jù)通道(持久化的隊列在管理頁面可以看到有個“D”,durable為true)
exchanges:交換機,類型,可以添加交換機。
點擊Exchange的Name可進入到Exchange的詳情頁面,在里面將Exchange與Queue進行Binding。
測試: 點進交換器之后有一欄是Publish message,發(fā)送成功后切換到Queues查看是否收到消息,點擊ls隊列進去查看,展開Get message選項,點擊GetMessage(s)就能得到消息了。
測試: https://blog.csdn.net/qq_41097820/article/details/88793329
quenes:隊列
Message
Ready: 隊列中等待消費的消息
Unacked:隊列中等待被確認的消息(此時消息已到達消費者,但是未被確認)
Total:隊列中消息總數(shù)
admin:添加用戶等,Tags指角色;添加virtual host(關聯(lián)到用戶access,起隔離作用,每個vhost本質上就是一個mini版的rabbitmq服務器,擁有自己的隊列、交換機、綁定和權限機制)。
7、MQ中的最小對象:消息=消息描述符+用戶數(shù)據(jù),隊列定義的長度制約消息的長度。隊列:先進先出FIFO,對遠程隊列的訪問需要使用”通道“。包含關系:消息<隊列<隊列管理器,三者組合唯一確定一個消息。
8、通道:應用在隊列管理器與隊列管理器之間的,單向的點對點的通信連接:
單一方向;
通常成對使用;
如果要在 隊列管理器與隊列管理器之間實現(xiàn)消息傳輸,必須在兩個隊列管理器上都要定義相應的通道。
9、RabbitMQ中生產(chǎn)者將消息發(fā)送到Exchange(交換器),由Exchange將消息路由到一個或多個Queue中(或者丟棄)。RabbitMQ中通過Binding將Exchange與Queue關聯(lián)起來,這樣RabbitMQ就知道如何正確地將消息路由到指定的Queue了。
10、對于rabbitmq來說,一個broker可以看成一個rabbitmq服務節(jié)點,,或者服務實例。也可以將一個broker看做一臺rabbitmq服務器
11、rabbitmq有一個大內存閾值,可以通過配置來實現(xiàn)。當接收的消息達到大閾值時,rabbitmq不會再接收消息,并進入阻塞狀態(tài)。rabbitmq有一個內存換頁閾值,當達到換頁閾值時,將當前內存內的消息放入到磁盤內,而此時會區(qū)分持久化消息和非持久化消息。持久化消息因為在接收到消息后就已經(jīng)存入磁盤,所以在換頁時不會重復存入磁盤。此時只會將非持久化消息存入到磁盤內。
12、當內存使用超過配置的閾值或者磁盤剩余空間低于配置的閾值時,rabbitmq會出現(xiàn)告警。此時會暫時阻塞客戶端連接(顯示blocked),并停止接收客戶端發(fā)來的消息,以避免服務器崩潰,客戶端與服務端的心跳檢測也會失效。
13、發(fā)送可靠性:確保消息成功發(fā)送到broker
At most once:最多一次,消息可能會丟失,但不會重復傳輸
At least once:最少一次,消息不會丟失,但可能重復傳輸
Exactly once:恰好一次,保證每條消息都被傳輸?shù)絙roker且僅傳輸一次
RabbitMQ支持:At most once和At least once
14、abbitMQ的六種工作模式:
1、Work queues
2、Publish/subscribe
3、Routing
4、Topics
5、Header 模式
6、RPC
15、Exchange Types有 fanout、direct、topic、headers這四種類型:
fanout類型:廣播模式,Exchange路由規(guī)則非常簡單,它會把所有發(fā)送到該Exchange的消息路由到所有與它綁定的Queue中。
direct類型: Exchange路由規(guī)則也很簡單,它會把消息路由到那些binding key與routing key完全匹配的Queue中,binding key == routing key。
topic message類型:binding key like routing key, 其中routing key中可以帶 * 和 # 來做模糊匹配, “*”用于匹配一個單詞,“#”用于0~N個單詞.
headers類型: Exchange不依賴于routing key與binding key的匹配規(guī)則來路由消息,而是根據(jù)發(fā)送的消息內容中的headers屬性進行匹配。
以上是“MQ消息隊列中間件RabbitMQ怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道!
分享題目:MQ消息隊列中間件RabbitMQ怎么用-創(chuàng)新互聯(lián)
文章鏈接:http://chinadenli.net/article44/ehoee.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、靜態(tài)網(wǎng)站、小程序開發(fā)、搜索引擎優(yōu)化、外貿網(wǎng)站建設、建站公司
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)