| 企服解答
rabbitmq的六種模式:簡單模式;主題模式(topic);訂閱與發布模式(fanout);路由模式(direct);RPC模式;工作隊列。
rabbitmq的六種模式
1、簡單模式
生產者,一個隊列一個或多個消費者,當多個消費者同時監聽一個隊列時,他們并不能同時消費一條消息,而是隨機消費消息,即一個隊列中一條消息,只能被一個消費者消費。
2、主題模式(topic)
生產者,一個交換機(topicExchange),模糊匹配路由規則,多個隊列,多個消費者。
3、訂閱與發布模式(fanout)
生產者,一個交換機(fanoutExchange),沒有路由規則,多個隊列,多個消費者。生產者將消息不是直接發送到隊列,而是發送到X交換機,然后由交換機發送給兩個隊列,兩個消費者各自監聽一個隊列,來消費消息。
4、路由模式(direct)
生產者,一個交換機(directExchange),路由規則,多個隊列,多個消費者。主要根據定義的路由規則決定消息往哪個隊列發送。
5、RPC模式
對于RPC請求,客戶端發送一條帶有兩個屬性的消息:replyTo,設置為僅為請求創建的匿名獨占隊列,和correlationId,設置為每個請求的唯一id值。請求被發送到rpc_queue隊列。RPC工作進程在隊列上等待請求。當一個請求出現時,它執行任務,并使用replyTo字段中的隊列將結果發回客戶機。客戶機在回應消息隊列上等待數據。當消息出現時,它檢查correlationId屬性。如果匹配請求中的值,則向程序返回該響應數據。
6、工作隊列
注釋:默認情況下,RabbitMQ將按順序將每條消息發送給下一個消費者。平均而言,每個消費者將獲得相同數量的消息。這種分發消息的方式稱為循環法。與三個或更多工人一起嘗試。
[免責聲明]
文章標題: rabbitmq的六種模式
文章內容為網站編輯整理發布,僅供學習與參考,不代表本網站贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請及時溝通。發送郵件至36dianping@36kr.com,我們會在3個工作日內處理。