RabbitMQ路由類型


關於RabbitMQ的Exchange類型

參考地址:《RabbitMQ學習系列(四): 幾種Exchange 模式

github地址:https://github.com/ChenWes/RabbitMQDemo

相關學習筆記:http://note.youdao.com/noteshare?id=7032b8a9e33c80880aa13b36f5d145b7&sub=7C55EC68CCB0442B9872A0345B92A6D2

 

  • 手動測試過,Direct和Fanout兩種路由模式下,Queue都可以有多個接收者,如果有多個接收者監控同一個Queue,那么會輪流將消息發送至接收者
  • Fanout路由模式下,關鍵在於路由,如果將路由與多個Queue進行綁定,則會多個Queue的接收者同時收到消息(同一個Queue多個接收者的情況依然會存在)

 

Direct Exchange:

所有發送到Direct Exchange的消息被轉發到RouteKey中指定的Queue
注意:Direct模式可以使用RabbitMQ自帶的Exchange:default Exchange,所以不需要將Exchange進行任何的綁定(binding)操作,消息傳遞時,RouteKey必須完全匹配才會被隊列接收,否則該消息會被拋棄

 

 


 

Fanout Exchange:

不處理路由鍵,只需要簡單的將隊列綁定到交換機上
發送到交換機的消息都會被轉發到與該交換機綁定的所有隊列上
Fanout交換機轉發消息是最快的

 


 

Topic Exchange:

所有發送到Topic Exchange的消息被轉發到所有關心RouteKey中指定Topic的Queue上
Exchange將RouteKey和某Topic進行模糊匹配,此時隊列需要綁定一個Topic
注意:可以使用通配符進行模糊匹配
符號“#”匹配一個或多個詞
符號“*”匹配不多不少一個詞(只能匹配一個詞)
例如“log.#”能匹配到“log.info.oa”
"log.*"只會匹配到"log.error"

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM