RabbitMQ隊列和交換機的相關知識點

1、關於交換機和隊列的autodelete屬性

交換機的autodelete屬性作用:當屬性值設置爲true,那麼當所有的隊列斷開於交換機的綁定,那麼交換機會自動刪除

隊列的autodelete屬性作用:自動刪除隊列和普通隊列在使用上沒有什麼區別,唯一的區別是,當所有的相關消費者斷開連接時,隊列將會被刪除


2、關於隊列的exclusive屬性

排它隊列,意味着隊列只能被一個消費者使用

 

3、自動過期隊列 x-expires屬性

沒有消費者在消費隊列,會被從RabbitMQ中被刪除。就算此時有消息進入隊列,也會被刪除。

 

4、隊列消息自動過期

就是爲每個隊列設置消息的超時時間。只要給隊列設置x-message-ttl 參數,就設定了該隊列所有消息的存活時間,時間單位是毫秒。如果聲明隊列時指定了死信交換器,則過期消息會成爲死信消息

 

5、永久隊列

持久化隊列和非持久化隊列的區別是,持久化隊列會被保存在磁盤中,固定並持久的存儲,當Rabbit服務重啓後,該隊列會保持原來的狀態在RabbitMQ中被管理,而非持久化隊列不會被保存在磁盤中,Rabbit服務重啓後隊列就會消失。可以將交換機和隊列的autodelete設置爲false,且durable設置爲true

注意:調用channel的BasicPublish將IBasicProperties屬性中的DeliveryMode設置爲持久化(2),並設置mandatory設爲true,並監聽BasicReturn事件,防止發送端丟失消息的情況,

這樣能保證消息持久化和隊列持久化同時發生作用,且交換機也需要設置持久化,防止發送方的Producer無法發送消息.且同時設置隊列和交換機的autodelete爲false,防止交換機和隊列被意外刪除的情況出現.

需要注意的時交換機的持久化不會影響隊列的持久化

隊列參數列表

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章