RabbitMQ-交換機(Exchange)

作者介紹:簡歷上沒有一個精通的運維工程師。請點擊上方的藍色《運維小路》關注我,下面的思維導圖也是預計更新的內容和當前進度(不定時更新)。

圖片

中間件,我給它的定義就是為了實現某系業務功能依賴的軟件,包括如下部分:

Web服務器

代理服務器

ZooKeeper

Kafka

RabbitMQ(本章節)

前面的內容,我們介紹了虛擬主機(vhost),但是它只是一個邏輯概念,它必須配合對應的交換機(Exchange),隊列(Queue),綁定(Binding)才能具體使用,今天我們首先來介紹的是交換機。

交換機(Exchange)

交換機是接收生產者發送消息的組件,它的主要功能是根據特定的規則將消息路由到一個或多個隊列中。可以簡單的理解消息首先會到交換機,然后才會分發出去,這個和傳統的物理交換機實際比較類似。

交換機類型

RabbitMQ 提供了四種主要的交換機類型,每種類型實現了不同的路由算法:

    直連交換機(Direct Exchange):根據消息的路由鍵(routing key)將消息路由到與之綁定的隊列中,綁定鍵(binding key)和路由鍵精確匹配時消息才會被路由。這個也是日常使用最多的交換機類型。

    扇形交換機(Fanout Exchange):將接收到的所有消息廣播到與之綁定的所有隊列中,忽略路由鍵。

    主題交換機(Topic Exchange):通過消息的路由鍵和綁定鍵的模式匹配來決定消息的路由。綁定鍵可以使用*(匹配一個單詞)和#(匹配零個或多個單詞)通配符。

    頭交換機(Headers Exchange):根據消息的頭部信息而非路由鍵來進行消息路由,綁定規則通過消息頭中的鍵值對來定義。

    交換機屬性

    名稱:交換機的唯一標識符,在 vhost 內必須唯一。

    持久性(Durable):設置為 true 時,交換機會在 RabbitMQ 服務器重啟后仍然存在。

    自動刪除(Auto-delete):當所有與之綁定的隊列都解除綁定時,交換機將被自動刪除。

    內部(Internal):如果設置為 true,則該交換機不能直接接收生產者的消息,只能用于交換機之間的綁定。可以簡單理解它只接收其他交換機發過來的信息。

    默認交換機介紹

    每創建一個虛擬主機(vhost),都會默認創建下面的交換機。

    圖片

    1.所有交換機都基于虛擬主機(vhost),這里默認都是在根(/)下面。

    2.系統預設了部分交換機,其中第一個是沒有指定交換機的的信息會被這個默認交換機收取。

    3.就是前面指定的交換機類型。

    4.“D”代表持久化(重啟了還在)“I” 代表不對外

    創建交換機

    圖片

    這里實際上就是前面哪些參數,前面提到過交換機具有自動刪除就在這里配置,還有是否是內部交換機。Alternate exchange (備用交換機)我們后期講解死信隊列的時候來說。

    創建交換機的時候,選擇的虛擬主機必須要有對應的賬號權限才可以,比如下圖這樣的權限,我如果給/test01 虛擬主機(vhost)創建交換機則會拒絕。

    圖片

    后面的操作,我們盡量使用頁面來完成。

    下圖的ceph115就是交換機(Exchange),位于虛擬主機(vhost)/test 下,交換機類型是使用最多的直連交換機(Direct Exchange)。

    圖片

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

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

    相關文章

    分類預測 | MATLAB實現DBO-SVM蜣螂算法優化支持向量機分類預測

    分類預測 | MATLAB實現DBO-SVM蜣螂算法優化支持向量機分類預測 目錄 分類預測 | MATLAB實現DBO-SVM蜣螂算法優化支持向量機分類預測 分類效果 基本介紹 算法步驟 參數設定 運行環境 應用場景 程序設計 參考資料 分類效果 基本介紹 該MATLAB代碼實現了基于蜣螂優化算法(DBO)優…

    變頻器實習DAY15

    目錄變頻器實習DAY15一、工作內容柔性平臺常規測試柔性平臺STO測試自己犯的一個特別離譜的錯STO的功能了解為什么STO的故障叫做基極已封鎖二、學習內容2.1 火線接斷路器 vs. 接地/懸空的區別小內容分點附學習參考網址歡迎大家有問題評論交流 (* ^ ω ^)變頻器實習DAY15 STO 板…

    一文學會c++list

    文章目錄list簡介list接口迭代器失效🚩模擬實現list簡介 1,list是可以在常數時間復雜度任何位置隨意插入的序列式容器,可以雙向迭代 2,底層是雙向鏈表結構,每個節點都是獨立的,通過前后指針鏈接 3&#xf…

    數據集分享 | 智慧農業實戰數據集精選

    【導讀】 在智慧農業的發展浪潮下,AI視覺算法正逐步滲透進作物生長監控、病蟲害檢測、采摘成熟評估等細分任務。相較于工業或城市場景,農業視覺更具挑戰性:自然環境復雜、目標形態多變、時空尺度差異大。 為實現精準農業管理,一…

    CCFRec-人大高瓴-KDD2025-序列推薦中充分融合協同信息與語義信息

    文章目錄1. 背景與問題2. 方法2.1 多視圖 sid2.2 Code-Guided Semantic Fusion核心創新:常規操作:2.3 Enhanced Representation Learning via Code Masking2.3.1 Masked Code Modeling (MCM)2.3.2 Masked Sequence Alignment (MSA)2.4 復雜度分析2.4.1 訓…

    Python深入 Tkinter 模塊

    目錄 一、為什么要寫 Tkinter 二、最小可運行示例:Hello World 不是終點,而是起點 三、布局三板斧:pack、grid、place 四、事件與回調:讓按鈕“響”起來 五、實戰案例:秒表 文件批量重命名器 六、樣式進階&…

    LeetCode 面試經典 150_數組/字符串_刪除有序數組中的重復項(3_26_C++_簡單)

    LeetCode 面試經典 150_刪除有序數組中的重復項(3_26_C_簡單)題目描述:輸入輸出樣例:題解:解題思路:思路一(雙指針):代碼實現代碼實現(思路一(雙指…

    架構篇(一):告別MVC/MVP,為何“組件化”是現代前端的唯一答案?

    架構篇(一):告別MVC/MVP,為何“組件化”是現代前端的唯一答案? 引子:一個困擾前端工程師的“幽靈” 在上一章《序章:拋棄UI,我們來構建一個“看不見”的前端應用》中,我們從零開始構建了一個純…

    數組內存學習

    一、內存簡介:1.內存分為5塊:a.棧(Stack)主要運行方法,方法的運行都會進入棧內存運行,云南行完畢之后,需要“彈棧”,為了騰空間。b.堆(Heap)保存的是對象&…

    驗證 GitHub Pages 的自定義域(Windows)

    驗證 GitHub Pages 的自定義域 您可以通過驗證您的域來提高自定義域的安全性并避免接管攻擊。 誰可以使用此功能? GitHub Pages 在公共存儲庫中提供 GitHub Free 和 GitHub Free for organizations,在公共和私有存儲庫中提供 GitHub Pro、GitHub Team、GitHub Enterprise Cl…

    數字化轉型 - 企業數字化建設的幾點思考

    關于企業數字化建設的幾點思考工業軟件領軍人才的培訓課中,如上的一個PPT,給人以許多反思。一是看企業成功的數字化案例時,也許只看到別人面上的東西,可能還有面下很多看不到的東西支撐著,因此可能只看到或學到別人的皮…

    深入解析Java內存模型:原理與并發優化實踐

    深入解析Java內存模型:原理與并發優化實踐 技術背景與應用場景 隨著多核處理器的普及,Java并發編程已成為后端系統提升吞吐量與響應性能的必備手段。然而,在多線程環境下,不同線程對共享變量的可見性、指令重排以及內存屏障控制都…

    《設計模式之禪》筆記摘錄 - 9.責任鏈模式

    責任鏈模式的定義責任鏈模式定義如下:Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it.…

    05-ES6

    數據解構SetES6 提供了新的數據結構 Set。它類似于數組,但是成員的值都是唯一的,沒有重復的值Set 本身是一個構造函數,用來生成 Set 數據結構//set集合,成員是唯一的,添加過程中會替換相同的元素。這里相同的標準是const s new S…

    正則表達式 \b:單詞邊界

    下面舉例說明 \b 用法。\b(?:https?://)(\S)\b各部分功能:\b:單詞邊界,確保匹配的 URL 是獨立的單詞,不會與其他字符粘連。(?:https?://):非捕獲組,匹配 http:// 或 https://(s? 表示 s 可…

    從8h到40min的極致并行優化:Spark小數據集UDTF處理的深度實踐與原理剖析

    在大數據領域,Spark以其卓越的并行處理能力著稱。但面對小數據集的極致并行需求時,默認優化策略往往成為瓶頸。本文將深入剖析如何通過精準控制分區策略,將僅170條數據的表拆分成170個獨立Task并行執行,實現100%的并行度&#xff…

    JAVA算法題練習day1

    開始前: 選擇leetcode-hot100。要求每日1道,并且需要親自二刷昨天的題目(每一種解法),要做解題筆記并發布CSDN,做完立刻二刷。做題時間為每日12:50起,不拖延,這是學習成…

    【Word Press進階】自定義區塊的行為與樣式

    前兩篇 【Word Press基礎】創建自定義區塊【Word Press基礎】創建一個動態的自定義區塊 說明白了怎么創建一個簡單的靜態區塊。但實在是太丑了。這里再進行一個優化,讓咱們的區塊好看又好用。 一個合格的區塊應當有著好看的外表,完整的功能&#xff0…

    Pygame模塊化實戰:火星救援游戲開發指南

    Pygame模塊化實戰:火星救援游戲開發指南用Python打造太空探險游戲,掌握模塊化開發核心技巧一、火星救援:模塊化開發的完美場景??想象這樣的場景??: 你是一名宇航員,被困在火星表面,需要收集資源、修復飛…

    三維圖像識別中OpenCV、PCL和Open3D結合的主要技術概念、部分示例

    文章目錄1. 三維點云基礎概念點云(Point Cloud)深度圖像(Depth Image)體素(Voxel)2. 點云預處理技術去噪濾波(Noise Filtering)降采樣(Downsampling)3. 特征提取與描述法向量估計(Normal Estimation)關鍵點檢測(Keypoint Detection)特征描述子(Feature Descriptor)4. 點云配準(…