RabbitMQ的交換機

一、三種交換機模式

核心區別對比??

??特性????廣播模式(Fanout)????路由模式(Direct)????主題模式(Topic)??
??路由規則??無條件復制到所有綁定隊列精確匹配?Routing Key通配符匹配?Routing Key*/#
??消息分發??1:N(所有消費者收到相同消息)1:1 或 1:N(相同 Key 的隊列)M:N(靈活匹配多個隊列)
??典型應用場景??系統通知、多服務數據同步任務分發、精確路由(如支付處理)分類事件(如日志分級、新聞訂閱)
??Exchange 類型??Fanout Exchange(RabbitMQ)Direct ExchangeTopic Exchange
??Routing Key??忽略必須完全匹配支持通配符(如?news.*

??2. 詳細說明??

??(1) 廣播模式(Fanout)??
  • ??核心邏輯??:
    消息發送到?Fanout Exchange?后,會??無條件復制到所有綁定的隊列??,消費者訂閱不同隊列時會收到相同消息。
  • ??示例場景??:
    • 系統公告:一條消息需同時觸發郵件、短信、日志服務。
    • 數據同步:訂單創建后廣播給庫存、物流、分析服務。
  • ??特點??:
    • 簡單粗暴,無過濾邏輯。
    • 性能開銷較大(消息全量復制)。
??(2) 路由模式(Direct)??
  • ??核心邏輯??:
    消息通過精確的?Routing Key?匹配到指定隊列,只有綁定相同 Key 的消費者能收到消息。
  • ??示例場景??:
    • 支付處理:routing_key=payment.success?僅路由到支付服務隊列。
    • 任務分發:多個 worker 競爭消費同一隊列(工作隊列模式)。
  • ??特點??:
    • 精準控制消息接收方。
    • 靈活性較低(需提前定義 Key)。
??(3) 主題模式(Topic)??
  • ??核心邏輯??:
    通過通配符(*?匹配一個單詞,#?匹配多級)動態匹配?Routing Key,實現靈活的路由。
  • ??示例場景??:
    • 日志分級:log.error?路由到告警服務,log.info?路由到存儲服務。
    • 新聞訂閱:用戶訂閱?news.sports?或?news.weather
  • ??特點??:
    • 兼顧廣播的覆蓋范圍和路由的精確性。
    • 適合多維度、分層級的消息分類。

??3. 不同消息隊列的實現??

??MQ 類型????廣播模式????路由模式????主題模式??
??RabbitMQ??Fanout ExchangeDirect ExchangeTopic Exchange
??Kafka??多個 Consumer Group 獨立消費單 Partition 或 Key 路由Topic + 通配符訂閱
??RocketMQ??廣播消費(Broadcasting)Tag 過濾(精確匹配)Tag 過濾(通配符支持)

??4. 如何選擇???

  • ??需要無條件廣播??? → ??Fanout??(如全量數據同步)。
  • ??需要精確路由??? → ??Direct??(如支付結果處理)。
  • ??需要動態分類??? → ??Topic??(如日志分級、多維度事件)。

5.java代碼實現(生產者)

??總結??

  • ??廣播模式??:簡單粗暴,適合全覆蓋場景。
  • ??路由模式??:精準控制,適合點對點或任務分發。
  • ??主題模式??:靈活匹配,適合復雜分類和訂閱需求。

二、RabbitMQ對應的工作模式

??1. 簡單模式(Simple)??

  • ??對應機制??:
    • 交換機類型??:默認使用??默認交換機("",無名交換機)??,類型為direct
    • ??特點??:生產者直接將消息發送到隊列(通過默認交換機綁定隊列),消費者從隊列中讀取消息。
    • ??關系??:無需顯式聲明交換機,消息通過隊列名直接路由(routing_key?= 隊列名)。

??2. 工作隊列模式(Work Queue)??

  • ??對應機制??:
    • 交換機類型??:同樣使用??默認交換機??(direct)。
    • ??特點??:多個消費者共享一個隊列,消息以輪詢(Round-Robin)或公平分發的方式分配給消費者。
    • ??關系??:與簡單模式類似,但通過多個消費者實現負載均衡。交換機類型不直接影響分發邏輯(由隊列自身管理)。

??3. 發布/訂閱模式(Pub/Sub)??

  • ??對應機制??:
    • 交換機類型??:必須使用??fanout交換機??。
    • ??特點??:消息會被廣播到所有綁定的隊列(每個隊列的消費者都會收到相同消息)。
    • ??關系??:fanout交換機忽略routing_key,直接將消息復制到所有綁定的隊列,實現廣播。

??4. 路由模式(Routing)??

  • ??對應機制??:?
    • 交換機類型??:必須使用??direct交換機??。
    • ??特點??:消息根據routing_key精確匹配隊列,只有匹配的隊列會接收消息。
    • ??關系??:direct交換機通過routing_key的完全匹配決定消息路由,適合定向分發。

??5. 通配符模式(Topics)??

  • ??對應機制??:
    • 交換機類型??:必須使用??topic交換機??。
    • ??特點??:消息根據routing_key的模式匹配(支持通配符*#)分發到隊列。
    • ??關系??:topic交換機通過靈活的路由規則實現部分匹配,適合多維度條件路由。

??三、總結對應關系??

??模式名稱????對應Exchange類型????Routing Key規則????分發邏輯??
簡單模式(無,直連隊列)隊列名作為隱式Key1:1點對點
工作隊列模式Direct(隱式)隊列名作為隱式Key1:N競爭消費
發布/訂閱模式Fanout忽略1:N廣播
路由模式Direct精確匹配1:1或1:N(相同Key)
通配符模式Topic*#通配符M:N動態匹配

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/904527.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904527.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904527.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

(2025,AR,NAR,GAN,Diffusion,模型對比,數據集,評估指標,性能對比)文本到圖像的生成和編輯:綜述

【本文為我在去年完成的綜述,因某些原因未能及時投稿,但本文仍能為想要全面了解文本到圖像的生成和編輯的學習者提供可靠的參考。目前本文已投稿 ACM Computing Surveys。 完整內容可在如下鏈接獲取,或在 Q 群群文件獲取。 中文版為論文初稿&…

MCU怎么運行深度學習模型

Gitee倉庫 git clone https://gitee.com/banana-peel-x/freedom-learn.git項目場景: 解決面試時遺留的問題,面試官提了兩個問題:1.單片機能跑深度學習的模型嗎? 2.為什么FreeRTOS要采用SVC去觸發第一個任務,只用Pend…

多模態學習(一)——從 Image-Text Pair 到 Instruction-Following 格式

前言 在多模態任務中(例如圖像問答、圖像描述等),為了使用指令微調(Instruction Tuning)提升多模態大模型的能力,我們需要構建成千上萬條**指令跟隨(instruction-following)**格式的…

MySQL基礎關鍵_011_視圖

目 錄 一、說明 二、操作 1.創建視圖 2.創建可替換視圖 3.修改視圖 4.刪除視圖 5.對視圖內容的增、刪、改 (1)增 (2)改 (3)刪 一、說明 只能將 DQL 語句創建為視圖;作用: …

『深夜_MySQL』數據庫操作 字符集與檢驗規則

2.庫的操作 2.1 創建數據庫 語法: CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification]….]create_spcification:[DEFAULT] CHARACTER SET charset_nam[DEFAULT] COLLATE collation_name說明: 大寫的表示關鍵字 …

Spark jdbc寫入崖山等國產數據庫失敗問題

隨著互聯網、信息產業的大發展、以及地緣政治的變化,網絡安全風險日益增長,網絡安全關乎國家安全。因此很多的企業,開始了國產替代的腳步,從服務器芯片,操作系統,到數據庫,中間件,逐步實現信息技術自主可控,規避外部技術制裁和風險。 就數據庫而言,目前很多的國產數據…

數字化轉型-4A架構之應用架構

系列文章 數字化轉型-4A架構(業務架構、應用架構、數據架構、技術架構)數字化轉型-4A架構之業務架構 前言 應用架構AA(Application Architecture)是規劃支撐業務的核心系統與功能模塊,實現端到端協同。 一、什么是應…

格雷狼優化算法`GWO 通過模擬和優化一個信號處理問題來最大化特定頻率下的功率

這段代碼是一個Python程序,它使用了多個科學計算庫,包括`random`、`numpy`、`matplotlib.pyplot`、`scipy.signal`和`scipy.signal.windows`。程序的主要目的是通過模擬和優化一個信號處理問題來最大化特定頻率下的功率。 4. **定義類`class_model`**: - 這個類包含了信號…

中級網絡工程師知識點1

1.1000BASE-CX:銅纜,最大傳輸距離為25米 1000BASE-LX:傳輸距離可達3000米 1000BASE-ZX:超過10km 2.RSA加密算法的安全性依賴于大整數分解問題的困難性 3.網絡信息系統的可靠性測度包括有效性,康毀性,生存性 4.VLAN技術所依據的協議是IEEE802.1q IEEE802.15標準是針…

2025年五一數學建模A題【支路車流量推測】原創論文講解

大家好呀,從發布賽題一直到現在,總算完成了2025年五一數學建模A題【支路車流量推測】完整的成品論文。 給大家看一下目錄吧: 摘 要: 一、問題重述 二.問題分析 2.1問題一 2.2問題二 2.3問題三 2.4問題四 2.5 …

性能優化實踐:渲染性能優化

性能優化實踐:渲染性能優化 在Flutter應用開發中,渲染性能直接影響用戶體驗。本文將從渲染流程分析入手,深入探討Flutter渲染性能優化的關鍵技術和最佳實踐。 一、Flutter渲染流程解析 1.1 渲染流水線 Flutter的渲染流水線主要包含以下幾…

linux基礎學習--linux磁盤與文件管理系統

linux磁盤與文件管理系統 1.認識linux系統 1.1 磁盤組成與分區的復習 首先了解磁盤的物理組成,主要有: 圓形的碟片(主要記錄數據的部分)。機械手臂,與在機械手臂上的磁頭(可擦寫碟片上的內容)。主軸馬達,可以轉動碟片,讓機械手臂的磁頭在碟片上讀寫數據。 數據存儲…

DIFY教程第五彈:科研論文翻譯與SEO翻譯應用

科研論文翻譯 我可以在工作流案例中結合聊天大模型來實現翻譯工具的功能,具體的設計如下 在開始節點中接收一個輸入信息 content 然后在 LLM 模型中我們需要配置一個 CHAT 模型,這里選擇了 DeepSeek-R1 64K 的聊天模型,注意需要在這里設置下…

【Redis】哨兵機制和集群

🔥個人主頁: 中草藥 🔥專欄:【中間件】企業級中間件剖析 一、哨兵機制 Redis的主從復制模式下,一旦主節點由于故障不能提供服務,需要人工的進行主從切換,同時需要大量的客戶端需要被通知切換到…

注意力機制(Attention)

1. 注意力認知和應用 AM: Attention Mechanism,注意力機制。 根據眼球注視的方向,采集顯著特征部位數據: 注意力示意圖: 注意力機制是一種讓模型根據任務需求動態地關注輸入數據中重要部分的機制。通過注意力機制&…

解鎖 AI 生產力:Google 四大免費工具全面解析20250507

🚀 解鎖 AI 生產力:Google 四大免費工具全面解析 在人工智能迅猛發展的今天,Google 推出的多款免費工具正在悄然改變我們的學習、工作和創作方式。本文將深入解析四款代表性產品:NotebookLM、Google AI Studio、Google Colab 和 …

知識圖譜:AI大腦中的“超級地圖”如何煉成?

人類看到“蘋果”一詞,會瞬間聯想到“iPhone”“喬布斯”“牛頓”,甚至“維生素C”——這種思維跳躍的背后,是大腦將概念連結成網的能力。而AI要模仿這種能力,需要一張動態的“數字地圖”來存儲和鏈接知識,這就是?知識…

Win11 24H2首個熱補丁下周推送!更新無需重啟

快科技5月7 日消息,微軟宣布,Windows 11 24H2的首個熱補丁更新將于下周通過Patch Tuesday發布,將為管理員帶來更高效的安全更新部署方式,同時減少設備停機時間。 為幫助IT管理員順利過渡到熱補丁模式,微軟還提供了豐富…

【Python類(Class)完全指南】面向對象編程入門

目錄 🌟 前言🧩 技術背景與價值🚧 當前技術痛點🛠? 解決方案概述👥 目標讀者說明 📚 一、技術原理剖析🎨 核心概念圖解💡 核心作用講解 💻 二、實戰演示🛠?…

全自動輿情監控系統實現方案

想要通過代碼實現全自動的全網輿情監控,還要用代理來輔助。全自動的話,可能是指從數據抓取、處理到分析都不需要人工干預。全網輿情監控意味著要覆蓋多個平臺,比如新聞網站、社交媒體、論壇等等。代理的使用可能是為了繞過反爬蟲機制&#xf…