RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用

RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用

凱哥java 凱哥java
Exchange 交換機及直連交換機簡單使用
Exchange的定義:
接收消息,並根據路由鍵轉發消息所綁定的隊列。
RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用
交換機屬性:
Name:交換機名稱
Type:交換機類型 direct、topic、fanout、headers
Durability:是否須要持久化,true爲持久化
Auto Delete:當最後一個綁定到exchange上的隊列刪除後,自定刪除該exchange
Internal:當前exchange是否用於rabbitmq內部使用,默認爲false
RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用
RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用
交換機類型詳解:java

Direct Exchange-直連交換機:
全部發送到Direct Exchange的消息被轉發到routeKey中指定的queue.
注意:Direct模式能夠使用RabbitMq自帶的Exchange(default Exchange),因此不須要將Exchange進行任何綁定(binding)操做,消息傳遞時,RouteKey必須徹底匹配纔會被隊列接收,不然該消息會被拋棄掉的。
官網這麼描述Default Exchange的:
RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用
Direct exchange示意圖:
RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用
咱們能夠看到,每個routing_key都指向一個消費者。
咱們來看看代碼:
生產者代碼:
RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用
在生產者代碼中,咱們添加了交換機名稱及routingkey這兩個信息。
接着咱們來看看消費者代碼:
RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用
在消費者端代碼中,咱們一樣添加了exchangeName及routingkey同時還添加了隊列名稱及exhanggeType屬性。
啓動後,在瀏覽器中查看:
RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用
查看exchange:
RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用
發現已經綁定的:To指向的時
Queue:
RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用
點擊查看queue:
RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用
發現已經綁定了test_direct_exchange了。
運行結果:
RabbitMQ學習系列教程四:Exchange 交換機及直連交換機簡單使用
本節總結:
Direct Exchange類型的,簡稱直連方式。其實rabbitmq默認的就是此種方式。使用此種方式要求很簡單:
若是指定了exchangeName則會在指定exchangeName上查找指定routingkey的。
在生產者中,設置channel屬性時添加路由名稱及key;
在消費者中,一樣在channel設置屬性的時,須要交換機名稱及key保持也生產者一致。就能夠正常接收消息了。
下節預告:在下節課中咱們將講解topic exchange瀏覽器

相關文章
相關標籤/搜索