消息中間件rabbitmq(1)

介紹

注:沒有註冊中心,總共只分爲三個角色,product,server,customer。ui

Queue

消息隊列,等同於rocketmq中的topicserver

Exchange

生產者產生的消息並非直接發送給消息隊列Queue的,而是要通過Exchange(交換器),由Exchange再將消息路由到一個或多個Queue,固然這裏還會對不符合路由規則的消息進行丟棄掉,這裏指的是後續要談到的Exchange Type。那麼Exchange是怎樣將消息準確的推送到對應的Queue的呢?那麼這裏的功勞最大的當屬Binding,RabbitMQ是經過Binding將Exchange和Queue連接在一塊兒,這樣Exchange就知道如何將消息準確的推送到Queue中去。簡單示意圖以下所示:blog

主要介紹下Topic的路由規則隊列

topic這個規則就是模糊匹配,能夠經過通配符知足一部分規則就能夠傳送。它的約定是:路由

  1. routing key爲一個句點號「. 」分隔的字符串(咱們將被句點號「. 」分隔開的每一段獨立的字符串稱爲一個單詞),如「stock.usd.nyse」、「nyse.vmw」、「quick.orange.rabbit」
  2. binding key與routing key同樣也是句點號「. 」分隔的字符串
  3. binding key中能夠存在兩種特殊字符「*」與「#」,用於作模糊匹配,其中「*」用於匹配一個單詞,「#」用於匹配多個單詞(能夠是零個)
Exchange規則
類型名稱 類型描述
fanout 把全部發送到該Exchange的消息路由到全部與它綁定的Queue中
direct Routing Key==Binding Key
topic 我這裏本身總結的簡稱模糊匹配
headers Exchange不依賴於routing key與binding key的匹配規則來路由消息,而是根據發送的消息內容中的headers屬性進行匹配。
相關文章
相關標籤/搜索