RabbitMQ 的三種類型的交換器
RabbitMQ 使用 Exchange(交換機)和 Queue(隊列)來實現消息隊列。
在 RabbitMQ 中一共有三種交換機類型,每一種交換機類型都有很鮮明的特徵。
基於這三種交換機類型,OpenStack 完成兩種 RPC 的調用方式。首先簡單介紹三種交換機。
①廣播式交換器類型(Fanout)
該類交換器不分析所接收到消息中的 Routing Key,默認將消息轉發到所有與該交換器綁定的隊列中去。
②直接式交換器類型(Direct)
該類交換器需要精確匹配 Routing Key 與 Binding Key,如消息的 Routing Key = Cloud,那麼該條消息只能被轉發至 Binding Key = Cloud 的消息隊列中去。
③主題式交換器(Topic Exchange)
該類交換器通過消息的 Routing Key 與 Binding Key 的模式匹配,將消息轉發至所有符合綁定規則的隊列中。
Binding Key 支持通配符,其中“*”匹配一個詞組,“#”匹配多個詞組(包括零個)。
eg:當生產者發送消息 Routing Key=F.C.E 的時候,這時候只滿足 Queue1,所以會被路由到 Queue 中。
如果 Routing Key=A.C.E 這時候會被同時路由到 Queue1 和 Queue2 中,如果 Routing Key=A.F.B 時,這裏只會發送一條消息到 Queue2 中。
注:以上四張圖片來自博客園,如有侵權,請聯繫作者:https://www.cnblogs.com/dwlsxj/p/RabbitMQ.html。