注:沒有註冊中心,總共只分爲三個角色,product,server,customer。ui
消息隊列,等同於rocketmq中的topicserver
生產者產生的消息並非直接發送給消息隊列Queue的,而是要通過Exchange(交換器),由Exchange再將消息路由到一個或多個Queue,固然這裏還會對不符合路由規則的消息進行丟棄掉,這裏指的是後續要談到的Exchange Type。那麼Exchange是怎樣將消息準確的推送到對應的Queue的呢?那麼這裏的功勞最大的當屬Binding,RabbitMQ是經過Binding將Exchange和Queue連接在一塊兒,這樣Exchange就知道如何將消息準確的推送到Queue中去。簡單示意圖以下所示:blog
主要介紹下Topic的路由規則隊列
topic這個規則就是模糊匹配,能夠經過通配符知足一部分規則就能夠傳送。它的約定是:路由
類型名稱 | 類型描述 |
fanout | 把全部發送到該Exchange的消息路由到全部與它綁定的Queue中 |
direct | Routing Key==Binding Key |
topic | 我這裏本身總結的簡稱模糊匹配 |
headers | Exchange不依賴於routing key與binding key的匹配規則來路由消息,而是根據發送的消息內容中的headers屬性進行匹配。 |