【消息隊列】RabbitMQ基本認識

目錄

一、基本概念

1.?生產者(Producer)

2.?消費者(Consumer)

3.?隊列(Queue)

4.?交換器(Exchange)

5.?綁定(Binding)

6.?路由鍵(Routing Key)

7.?消息確認(ACK)

8.?持久化(Durability)

9.?虛擬主機(Virtual Host)

二、認識MQ控制臺及基本操作

1、MQ系統預設的交換機:

2、創建交換機

3、創建隊列

4、將交換機與隊列綁定(路由)?編輯

5、發送消息

6、查看隊列中的消息?編輯

三、交換機類型

1、Fanout交換機

2、Direct交換機

3、Topic交換機

四、數據隔離

1、添加新用戶

2、查看用戶列表

3、切換到新用戶,并創建虛擬主機。

4、回交換機看看


? ? ? ? 大家好,今天給大家分享RabbitMQ。MQ呢可以看作一個中間者,我們給MQ發送一條消息,然后其他服務就可以從MQ獲取到消息并執行相應的業務。這樣的好處就是可以達到異步處理,生產消息的一方只需要把消息發送給MQ即可,無需再關注后續操作,可以繼續執行自己的業務。


一、基本概念

下面一些交換機的概念后面會講,比如路由鍵什么的如果第一次看不懂沒關系

1.?生產者(Producer)

  • 發送消息的應用,將消息發布到 RabbitMQ 的?交換器


2.?消費者(Consumer)

  • 接收消息的應用,從?隊列?中訂閱并處理消息。


3.?隊列(Queue)

  • 存儲消息的緩沖區,消息會被暫存在隊列中,直到被消費者處理。

  • 特性:可聲明為持久化(重啟后保留)、獨占(僅限當前連接)或自動刪除(無消費者時刪除)。


4.?交換器(Exchange)

  • 接收生產者發送的消息,并根據規則(綁定、路由鍵)將消息路由到隊列。

  • 常用類型

    • Direct:精確匹配路由鍵。

    • Fanout:廣播到所有綁定隊列。

    • Topic:基于通配符匹配路由鍵(如?logs.*)。

    • Headers:通過消息頭屬性匹配(不常用)。


5.?綁定(Binding)

  • 連接交換器和隊列的規則,定義消息如何從交換器路由到隊列。


6.?路由鍵(Routing Key)

  • 生產者發送消息時指定的鍵,交換器根據此鍵決定消息路由到哪些隊列。


7.?消息確認(ACK)

  • 手動確認(Manual Acknowledgement):消費者處理完消息后需顯式發送 ACK,RabbitMQ 才會從隊列刪除消息。

  • 自動確認(Auto ACK):消息發送后立即刪除,可能導致消息丟失(不推薦生產環境使用)。


8.?持久化(Durability)

  • 隊列持久化:聲明隊列時設置?durable=true,重啟后隊列保留。

  • 消息持久化:發送消息時設置?delivery_mode=2,確保消息寫入磁盤(需配合持久化隊列生效)。


9.?虛擬主機(Virtual Host)

  • 邏輯隔離單元,類似獨立環境。不同虛擬主機的交換器、隊列等資源互相隔離。



二、認識MQ控制臺及基本操作

1、MQ系統預設的交換機:


2、創建交換機


3、創建隊列


4、將交換機與隊列綁定(路由)

完成:


5、發送消息

想交換機發送消息,交換機會根據它自己的類型,將消息路由發送到與他綁定的隊列中


6、查看隊列中的消息



三、交換機類型

1、Fanout交換機

  • 作用:廣播消息,將消息無條件發送到所有綁定的隊列

  • 特點

    • 完全忽略路由鍵(Routing Key)。

    • 每條消息會被復制到所有關聯隊列。

  • 典型場景

    • 群發通知(如系統廣播)。

    • 日志分發到多個消費者。

    • 事件驅動架構中的多服務同步處理。

一句話:無腦廣播,一人發送,全員隊列接收。


2、Direct交換機

  • 作用精確匹配路由鍵,將消息發送到與路由鍵完全一致的綁定隊列。

  • 特點

    • 消息的路由鍵(Routing Key)必須與隊列的綁定鍵(Binding Key)完全相同

    • 一對一或多對一投遞(如多個隊列綁定相同鍵時,消息會復制到這些隊列)。

  • 典型場景

    • 任務分發(如按任務類型路由到特定隊列)。

    • 訂單系統中按訂單狀態分類處理。

    • 需要嚴格匹配規則的場景(如支付成功/失敗消息分離)。

一句話:按鍵精準投遞,一對一或多對一,嚴格匹配。

示例:在控制臺中創建交換機,并設置綁定關系


3、Topic交換機

  • 作用:基于通配符模式匹配路由鍵,實現靈活的多條件路由

  • 特點

    • 路由鍵支持通配符:

      • *:匹配一個單詞(如?order.*?匹配?order.paid,不匹配?order.paid.email)。

      • #:匹配零或多個單詞(如?order.#?匹配?orderorder.paidorder.paid.email)。

    • 綁定鍵格式為用.分隔的多級路徑(如?user.notification.email)。

  • 典型場景

    • 多維度事件分類(如日志分級?error.*warning.*)。

    • 動態路由(如根據用戶行為類型+地區分發消息?action.purchase.us)。

    • 訂單狀態多級處理(如?order.*.failed?匹配所有失敗類型)。

一句話通配符匹配路由鍵,按層級靈活分發。



四、數據隔離

給不同的項目創建不同的用戶,然后不同的用戶使用不同的虛擬主機,這樣就達成了數據的隔離。

1、添加新用戶


2、查看用戶列表


3、切換到新用戶,并創建虛擬主機。

(注意:創建的虛擬主機直接就屬于當前登錄用戶的)

查看虛擬主機:


4、回交換機看看

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

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

相關文章

uniapp -- 驗證碼倒計時按鈕組件

jia-countdown-verify 驗證碼倒計時按鈕組件 一個用于發送短信驗證碼的倒計時按鈕組件,支持自定義樣式、倒計時時間和文本內容。適用于各種需要驗證碼功能的表單場景。 代碼已經 發布到插件市場 可以自行下載 下載地址 特性 支持自定義按鈕樣式(顏色、…

知識圖譜重構電商搜索:下一代AI搜索引擎的底層邏輯

1. 搜索引擎的進化論 從雅虎目錄式搜索到Google的PageRank算法,搜索引擎經歷了三次技術躍遷。而AI搜索引擎正在掀起第四次革命:在電商場景中,傳統的「關鍵詞匹配」已無法滿足個性化購物需求,MOE搜索等新一代架構開始融合知識圖譜…

深度學習 自然語言處理(RNN) day_02

1. 感知機與神經網絡 1.1 感知機 生物神經元: 1.1.1 感知機的概念 感知機(Perceptron),又稱神經元(Neuron,對生物神經元進行了模仿)是神 經網絡(深度學習)的起源算法&am…

PYTHON訓練營DAY25

BUG與報錯 一、try else try:# 可能會引發異常的代碼 except ExceptionType: # 最好指定具體的異常類型,例如 ZeroDivisionError, FileNotFoundError# 當 try 塊中發生 ExceptionType 類型的異常時執行的代碼 except: # 不推薦:捕獲所有類型的異常&…

LU分解求解線性方程組

L U LU LU分解 前言 L U LU LU分解 由以下定理得以保證: 設 A \boldsymbol{A} A為 n n n階方陣,若其各界階順序主子式都不為 0 0 0,那么它可以 被唯一的上下三角矩陣積分解。 步驟 確定各矩陣形式 A L U \mathbf{A}\mathbf{LU} ALU ( a 1…

Linux——數據庫備份與恢復

一,Mysql數據庫備份概述 1,數據庫備份的重要性 數據災難恢復:數據庫可能會因為各種原因出現故障,如硬件故障、軟件錯誤、誤操作、病毒攻擊、自然災害等。這些情況都可能導致數據丟失或損壞。如果有定期的備份,就可以…

SVM在醫療設備故障維修服務決策中的應用:策略、技術與實踐

SVM在醫療設備故障維修服務決策中的應用:策略、技術與實踐 醫療設備的高可靠性、安全性及嚴格合規性要求,使其故障維修決策具有顯著的特殊性。支持向量機(SVM)憑借小樣本學習、非線性建模及高精度分類能力,可有效解決…

WEB安全--Java安全--CC1利用鏈

一、梳理基本邏輯 WEB后端JVM通過readObject()的反序列化方式接收用戶輸入的數據 用戶編寫惡意代碼并將其序列化為原始數據流 WEB后端JVM接收到序列化后惡意的原始數據并進行反序列化 當調用: ObjectInputStream.readObject() JVM 內部邏輯: → 反…

FlashInfer - 介紹 LLM服務加速庫 地基的一塊石頭

FlashInfer - 介紹 LLM服務加速庫 地基的一塊石頭 flyfish 大型語言模型服務中的注意力機制 大型語言模型服務(LLM Serving)迅速成為重要的工作負載。Transformer中的算子效率——尤其是矩陣乘法(GEMM)、自注意力(S…

反向操作:如何用AI檢測工具優化自己的論文“人味”?

大家好,這里是論文寫手的一線自救指南😤 在AIGC橫行的今天,誰還沒偷偷用過AI寫幾段論文內容?但問題來了:學校越來越會“識AI”了! 有的學校甚至不看重復率,只盯AIGC率報告,一句“AI…

關于單片機的基礎知識(一)

成長路上不孤單😊😊😊😊😊😊 【14后😊///計算機愛好者😊///持續分享所學😊///如有需要歡迎收藏轉發///😊】 今日分享關于單片機基礎知識的相關內容&#xf…

AWS技術助力企業滿足GDPR合規要求

GDPR(通用數據保護條例)作為歐盟嚴格的數據保護法規,給許多企業帶來了合規挑戰。本文將探討如何利用AWS(亞馬遜云服務)的相關技術來滿足GDPR的核心要求,幫助企業實現數據保護合規。 一、GDPR核心要求概覽 GDPR的主要目標是保護歐盟公民的個人數據和隱私權。其核心要求包括: 數…

FFplay 音視頻同步機制解析:以音頻為基準的時間校準與動態幀調整策略

1.?視頻同步基礎 1.2 簡介 看視頻時,要是聲音和畫面不同步,體驗會大打折扣。之所以會出現這種情況,和音視頻數據的處理過程密切相關。音頻和視頻的輸出不在同一個線程,就像兩個工人在不同車間工作,而且不一定會同時…

車載網關--- 職責邊界劃分與功能解耦設計

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 鈍感力的“鈍”,不是木訥、遲鈍,而是直面困境的韌勁和耐力,是面對外界噪音的通透淡然。 生活中有兩種人,一種人格外在意別人的眼光;另一種人無論…

最優化方法Python計算:有約束優化應用——近似線性可分問題支持向量機

二分問題的數據集 { ( x i , y i ) } \{(\boldsymbol{x}_i,y_i)\} {(xi?,yi?)}, i 1 , 2 , ? , m i1,2,\cdots,m i1,2,?,m中,特征數據 { x i } \{\boldsymbol{x}_i\} {xi?}未必能被一塊超平面按其標簽值 y i ∈ { ? 1 , 1 } y_i\in\{-1,1\} yi?∈…

aardio - 將文本生成CSS格式顯示

import win.ui; /*DSG{{*/ var winform win.form(text"aardio form";right759;bottom469) winform.add( button{cls"button";text"Button";left340;top130;right430;bottom180;z3}; edit{cls"edit";text"我是一串文本";lef…

數字IC后端設計實現 | 如何自動刪除Innovus 中冗余的hold buffer?

我們都知道在postCTS階段做optDesign時序優化時需要進行hold violation的fixing。所以這個過程勢必要通過插hold buffer來解決hold violation。這類hold buffer的名字帶有"PHC"的關鍵詞。 select_obj [dbGet top.insts.name PHC] llength [dbGet top.insts.name PH…

c# 倒序方法

在C#中&#xff0c;有幾種方法可以對List進行倒序排列&#xff1a; 1. 使用List的Reverse()方法&#xff08;原地反轉&#xff09; List<int> numbers new List<int> { 1, 2, 3, 4, 5 };numbers.Reverse(); // 直接修改原列表// 結果&#xff1a;5, 4, 3, 2, 1 …

【內網滲透】——S4u2擴展協議提權以及KDC欺騙提權

【內網滲透】——S4u2擴展協議提權以及KDC欺騙提權 文章目錄 【內網滲透】——S4u2擴展協議提權以及KDC欺騙提權[toc]一&#xff1a;Kerberos 委派攻擊原理之 S4U2利用1.1原理1.2兩種擴展協議**S4U2Self (Service for User to Self)****S4U2Proxy (Service for User to Proxy)*…

AD 間距規則與布線規則

1. 打開在線規則檢查 2. 間距規則 一般來說最小間距設為6mil 注意&#xff1a; AD22 也提供類似低版本那樣的、多個間距規則疊加的方法&#xff0c;通過選擇第一個適配對象和第二個適配對象來篩選對象和范圍。 ① Where The First Object Matches &#xff1a;選擇規則第一個…