RabbitMQ 入门系列(11)— RabbitMQ 常用的工作模式(simple模式、work模式、publish/subscribe模式、routing模式、topic模式)
1. simple 模式
simple 模式是最簡單最常用的模式
2. work 模式
work 模式有多個消費者
- 消息產生者將消息放入隊列。生產者系統不需知道哪一個任務執行系統在空閑,直接將任務扔到消息隊列中,空閑的系統自動爭搶。
- 消費者 A,消費者 B,當然可以更多,同時監聽同一個隊列,消費者共同爭搶當前的消息隊列內容,誰先拿到誰負責消費消息。
缺點:高并發情況下,會產生某一個消息被多個消費者共同消費。
應用場景:發紅包。
3. publish/subscribe 模式
publish/subscribe 模式 消息被路由投遞到多個隊列,一個消息被多個消費者獲取。
- X 代表交換機 rabbitMQ 內部組件,消息產生者將消息放入交換機,交換機發布訂閱把消息發送到所有消息隊列中。
- 消費者監聽隊列,對應消息隊列的消費者拿到消息進行消費。
相關場景:郵件群發、群聊天。
4. routing 模式
routing 模式 一個消息被多個消費者獲取,并且消息的目標隊列可被生產者指定。
生產者將消息發送到交換機并指定路由 key,隊列綁定到交換機,并設定好路由規則。消費者從匹配上路由 key 的隊列里面獲取到推送的消息,即 Exchange 的 direct 類型,和 topic 類型的區別是:topic 可以模糊匹配路由 key 值。
業務場景:統一門戶和子系統交互,每個子系統對應不同的業務處理,通過路由 key 分發不同的消息到對應子系統隊列,完成消息消費。
5. topic 模式
主題交換機通過對消息的路由鍵和隊列到交換機的綁定模式之間的匹配,將消息路由給一個或多個隊列。
我們把消息投遞到 topic 交換機的時候一般需要指定一系列由點號連接單詞的字符串的 routingKey,同時我們在綁定消息隊列和交換機的時候也需要指定一系列由點號連接單詞的字符串的 routingKey。
topic 模式,一個消息被多個消費者獲取,消息的目標 queue 可用 BindKey 以通配符
*可以(只能)匹配一個單詞#可以匹配多個單詞(或者零個)
的方式指定。
注意:與路由模式的區別就是路由 key 可以是通配符,模糊匹配。交換機類型為 topic。
*.orange.* 的路由規則只能匹配由3個單詞組成,并且中間的單詞是 orange
*.*.rabbit 的路由規則只能匹配由3個單詞組成,并且最后的單詞是 rabbit
lazy.# 的路由規則沒有詞數限制,但是要求首單詞必須是 lazy
總結
以上是生活随笔為你收集整理的RabbitMQ 入门系列(11)— RabbitMQ 常用的工作模式(simple模式、work模式、publish/subscribe模式、routing模式、topic模式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022-2028年中国香薰行业市场研究
- 下一篇: 2022-2028年中国女式西装行业研究