真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

RabbitMQ消息中間件技術(shù)精講17高級篇十死信隊列

死信隊列介紹

會昌網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,會昌網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為會昌千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的會昌做網(wǎng)站的公司定做!

本文是《RabbitMQ精講系列》中第十七:RabbitMQ消息中間件技術(shù)精講17 高級篇十 死信隊列

死信隊列:DLX(dead-letter-exchange)

????當一個消息沒有了消費者之后,這個隊列就成了死信隊列。

在RabbitMQ中,死信隊列是相對于exchange的。RabbitMQ的死信隊列:

利用DLX,當消息在一個隊列中變?yōu)樗佬?dead message)之后,它能被重新publish到另一個exchange,這個exchange就是DLX死信隊列了。

在RabbitMQ中,消息如何變成死信的?有以下幾種情況:

1:消息被拒絕

????消息被拒絕又分為:basic.reject和basic.nack兩種

當是這兩種情況下且設(shè)置了requeeu=false。也就是設(shè)置重回隊列為false的情況

2:消息TTL過期

????在上一篇文章中,我們講的TTL消息的時效性。當消息超過了設(shè)置的超時時間情況

3:隊列達到最大長度

????同樣,在上一篇中,我們講到了在發(fā)送消息的時候,設(shè)置消息的最大上的。當發(fā)送消息的數(shù)據(jù)長度超過了設(shè)置的值之后,這種情況也成了死信隊列。

RabbitMQ消息中間件技術(shù)精講17 高級篇十 死信隊列

在來看看rabbitmq死信隊列:

DLX也是一個正常的exchange,和一般的exchange沒有區(qū)別,它能在任何的隊列上被指定,實際上也就是設(shè)置某個隊列的屬性而已;

當這個隊列中有死信時候,rabbitmq就會自動的將這個消息重新發(fā)布到設(shè)置的exchange上去,進而被路由到另一個隊列。

可以監(jiān)聽這個隊列中消息做相應(yīng)的處理,這個特性可以彌補rabbitmq3.0以前支持immediate參數(shù)的功能。

RabbitMQ消息中間件技術(shù)精講17 高級篇十 死信隊列

死信隊列設(shè)置:

1?:設(shè)置死信隊列的exchange和queue,然后進行綁定(這是廢話,任何一個隊列都是這樣的):

Exchange:dlx.exchange

Queue:dlx.queue

Routingkey:#

2?:然后我們進行正常的聲明交換機、隊列、綁定,只不過我們需要在隊列加上一個參數(shù)即可。這個參數(shù)就是:arguments.put(“x-dead-letter-exchange”,”dlx.exchange”).

說明:arguments.put(“x-dad-letter-exchange”,”這里是自己定義的接收死信隊列的exchange”)

這樣消息在過期、requeue、隊列在達到最大長度時,消息就可以直接路由到死信隊列了!

代碼這里就不截圖了,已發(fā)布在git上。

本章節(jié)總結(jié):

RabbitMQ消息中間件技術(shù)精講17 高級篇十 死信隊列


當前標題:RabbitMQ消息中間件技術(shù)精講17高級篇十死信隊列
瀏覽地址:http://weahome.cn/article/jdcjgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部