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