關於RabbitMQ的Exchange類型
參考地址:《RabbitMQ學習系列(四): 幾種Exchange 模式》
github地址:https://github.com/ChenWes/RabbitMQDemo
- 手動測試過,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"

