RabbitMQ-交換機類型,及綁定

交換機的類型

Direct exchange(直連交換機) 完全根據key進行投遞

單個綁定:

多個綁定: 消息會被同時路由到隊列Q1和隊列Q2

 

Fanout exchange(扇型交換機)  不需要key,它採取廣播模式,一個消息進來時,投遞到與該交換機綁定的所有隊列

Topic exchange(主題交換機) 對key進行模式匹配後進行投遞,符號”#”匹配一個或多個詞,符號”*”匹配正好一個詞。例如”abc.#”匹配”abc.def.ghi”,”abc.*”只匹配”abc.def”

Headers exchange(頭交換機)

默認存在的交換機

Dead Letter Exchange(死信交換機)

 

 

些場景都輪流的將消息投遞給客戶端

 

 

RabbitMQ默認定義一些交換機
在RabbitMQ默認定義一些交換機,主要如下:

默認交換機
默認交換機(default exchange)實際上是一個由RabbitMQ預先聲明好的名字爲空字符串的直連交換機(direct exchange)。它有一個特殊的屬性使得它對於簡單應用特別有用處:那就是每個新建隊列(queue)都會自動綁定到默認交換機上,綁定的路由鍵(routing key)名稱與隊列名稱相同。如:當你聲明瞭一個名爲”hello”的隊列,RabbitMQ會自動將其綁定到默認交換機上,綁定(binding)的路由鍵名稱也是爲”hello”。因此,當攜帶着名爲”hello”的路由鍵的消息被髮送到默認交換機的時候,此消息會被默認交換機路由至名爲”hello”的隊列中。即默認交換機看起來貌似能夠直接將消息投遞給隊列,如同我們之前文章裏看到一例子。
 

Dead Letter Exchange(死信交換機)
在默認情況,如果消息在投遞到交換機時,交換機發現此消息沒有匹配的隊列,則這個消息將被悄悄丟棄。爲了解決這個問題,RabbitMQ中有一種交換機叫死信交換機。當消費者不能處理接收到的消息時,將這個消息重新發布到另外一個隊列中,等待重試或者人工干預。這個過程中的exchange和queue就是所謂的”Dead Letter Exchange 和 Queue”

交換機的屬性


除交換機類型外,在聲明交換機時還可以附帶許多其他的屬性,其中最重要的幾個分別是:

Name:交換機名稱
Durability:是否持久化。如果持久性,則RabbitMQ重啓後,交換機還存在
Auto-delete:當所有與之綁定的消息隊列都完成了對此交換機的使用後,刪掉它
Arguments:擴展參數

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