RabbitMQ消息該如何插隊(duì)

RabbitMQ 消息該如何插隊(duì),相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

創(chuàng)新互聯(lián)公司于2013年開始,先為安仁等服務(wù)建站,安仁等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為安仁企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

消息中間件在各個(gè)大廠都有使用,算是現(xiàn)在面試過程中必問的一個(gè)知識(shí)點(diǎn)了。群里一直同意和諧社會(huì),拒絕插隊(duì)。但是在特殊情況下是可以插隊(duì)的,比如醫(yī)院里的急診等。那么 RabbitMQ 消息該如何插隊(duì)呢? 

這個(gè)問題很簡單,RabbitMQ 有優(yōu)先隊(duì)列。所以,RabbitMQ 消息隊(duì)列優(yōu)先級(jí)就可以用來解決“插隊(duì)”問題。

生產(chǎn)者生成消息打到交換機(jī)里面(如果沒有聲明交換機(jī),會(huì)打到 default exchange 里面),交換機(jī)綁定一個(gè)或多個(gè)隊(duì)列,消息進(jìn)入隊(duì)列里面,消費(fèi)者一直在監(jiān)聽隊(duì)列,發(fā)現(xiàn)隊(duì)列里面有消息就開始消費(fèi),這里就是一個(gè)消息傳遞的過程,queue 是一個(gè)棧隊(duì)列,隊(duì)列是先進(jìn)先出的,就是說消息來了依次排隊(duì),一個(gè)隊(duì)列并不能實(shí)現(xiàn)消息的插隊(duì)和優(yōu)先推送的功能。但是如果說我們的多個(gè)隊(duì)列有不同的優(yōu)先級(jí),不同優(yōu)先級(jí)的消息通過 roatingkey 進(jìn)入不同的隊(duì)列,優(yōu)先級(jí)高的隊(duì)列消息被優(yōu)先消費(fèi),這樣也能形成一個(gè)相對(duì)意義上的優(yōu)先級(jí),所以說這里不是消息的優(yōu)先級(jí)而是隊(duì)列的優(yōu)先級(jí)。

RabbitMQ 的消息是不能插隊(duì)的,但是它提供的有優(yōu)先隊(duì)列。插隊(duì)就是要靠高優(yōu)先級(jí)的隊(duì)列來實(shí)現(xiàn)。

在 RabbitMQ 中,設(shè)置消息的優(yōu)先級(jí)一共有 2 個(gè)步驟:設(shè)置隊(duì)列的 x-max-priority 參數(shù);設(shè)置消息的 Priority 參數(shù)。

RabbitMQ 消息該如何插隊(duì)

就這么簡單,做完這個(gè)之后就可以驗(yàn)證優(yōu)先級(jí)隊(duì)列的作用。當(dāng)然,需要注意的是,在消費(fèi)端速度大于生產(chǎn)端速度,且 broker 中沒有消息堆積的話,對(duì)發(fā)送的消息設(shè)置優(yōu)先級(jí)也沒什么實(shí)際意義,因?yàn)榘l(fā)送端剛發(fā)送完一條消息就被消費(fèi)端消費(fèi)了,那么就相當(dāng)于 broker 至多只有一條消息,那么對(duì)于單條消息來說優(yōu)先級(jí)是沒有什么意義的。

看完上述內(nèi)容,你們掌握RabbitMQ 消息該如何插隊(duì)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

新聞標(biāo)題:RabbitMQ消息該如何插隊(duì)
URL標(biāo)題:http://bm7419.com/article18/iidigp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管搜索引擎優(yōu)化、網(wǎng)站策劃軟件開發(fā)、品牌網(wǎng)站設(shè)計(jì)、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)