91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-07-06 03:25:13 來源:網絡 閱讀:581 作者:凱哥Java 欄目:編程語言

死信隊列介紹

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

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

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

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

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

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

1:消息被拒絕

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

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

2:消息TTL過期

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

3:隊列達到最大長度

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

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

在來看看rabbitmq死信隊列:

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

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

可以監聽這個隊列中消息做相應的處理,這個特性可以彌補rabbitmq3.0以前支持immediate參數的功能。

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

死信隊列設置:

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

Exchange:dlx.exchange

Queue:dlx.queue

Routingkey:#

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

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

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

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

本章節總結:

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




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邵武市| 安徽省| 桐城市| 巴楚县| 潮安县| 镇坪县| 保山市| 历史| 新源县| 当雄县| 游戏| 谷城县| 长岛县| 互助| 甘泉县| 喀喇沁旗| 太仆寺旗| 新和县| 南陵县| 错那县| 易门县| 江永县| 剑川县| 苍溪县| 拜城县| 长岛县| 福鼎市| 加查县| 卢湾区| 如皋市| 光泽县| 呈贡县| 田东县| 龙门县| 瑞金市| 托克逊县| 哈巴河县| 天水市| 盐池县| 九江县| 清河县|