本機搭建RabbitMQ

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

目錄

一、下載安裝包,搭建過程

二、重要概念介紹

三、創建用戶

方式一:命令行

方式二:管理后臺

3.1 創建用戶

3.2 分配權限

3.3 提升用戶為管理員

3.4 驗證

四、創建exchange和queue

五、測試驗證發送和消費功能

5.1 發送消息

5.2 消費消息

5.3 從管理臺進行驗證

?編輯

六、測試獲取消息內容

總結


提示:以下是本篇文章正文內容,下面案例可供參考

一、下載安裝包,搭建過程

這篇文章里說的非常的詳細了,Windows系統的直接按步驟操作,沒什么難度

一文詳解Windows安裝配置RabbitMQ教程及RabbitMQ常用命令及解決Erlang Could not be detected.you must install Erlang before_windows rabbitmq-CSDN博客

二、重要概念介紹

Exchange(交換機)

作用:Exchange是消息的路由器。生產者將消息發送給exchange,而不是直接發送給隊列。exchange根據預定義的規則(稱為binding)來決定哪些消息應該路由到哪個隊列

類型:Exchange有多種類型,如direct(直接交換機)、fanout(廣播交換機)、topic(主題交換機)和headers(基于消息頭的交換機),每種類型的exchange有不同的路由策略

配置:Exchange需要預先聲明,指定其類型和任何其他相關配置

Queue(隊列)

作用:Queue是消息的實際存儲區域,它是消息的臨時容器。隊列中的消息被消費者消費,或者在隊列滿時被丟棄(如果配置了限制)

特性:隊列可以是持久的,意味著即使RabbitMQ服務器重啟,隊列也會保留。隊列也可以是非持久的,服務器重啟后隊列將消失

消費:消費者從隊列中獲取消息,可以是同步的(一次性獲取一條消息并確認)或異步的(批量獲取或流式消費)

Channel(信道)

作用:Channel是客戶端和服務器之間的邏輯連接,用于發送和接收消息。它允許在單個TCP連接上創建多個獨立的并行通道,提高了效率

資源管理:創建和銷毀TCP連接是昂貴的操作,因此通常會復用一個TCP連接并創建多個channel來處理不同的任務

并發:在一個應用程序中,通常會為每個任務或線程創建一個單獨的channel,以保持操作的隔離

三、創建用戶

通常我們安裝、啟動RabbitMQ成功之后,系統默認用戶guest/guest,該用戶的權限比較大,日常使用過程中需要根據需要創建不同權限的用戶

創建用戶有兩種方式:

方式一:命令行

這里password是你為admin用戶設置的密碼

rabbitmqctl add_user admin password

接下來,你需要提升用戶權限,使其具有管理權限

rabbitmqctl set_user_tags admin administrator

分配vhost權限

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

這三個通配符參數".*"分別代表配置(conf),寫(write)和讀(read)權限,.*表示所有權限。
如果你想更具體地控制權限,可以將通配符替換為具體的權限字符串

方式二:管理后臺

3.1 創建用戶

在左側菜單中,點擊“Users”

點擊右上角的“Add user”按鈕

輸入用戶名(例如admin)和密碼

點擊“Add”按鈕

3.2 分配權限

在用戶列表中,找到剛創建的admin用戶,點擊它的名稱

在用戶詳情頁面,選擇“Permissions”選項卡

選擇要分配權限的vhost(通常是/)

在“Configure permissions”、“Write permissions”和“Read permissions”字段中,輸入通配符.*來授予所有權限,或者輸入特定的權限字符串

點擊“Set Permissions”按鈕

3.3 提升用戶為管理員

返回到用戶列表,再次點擊admin用戶

在用戶詳情頁面,滾動到“User tags”部分

勾選“administrator”復選框

點擊“Update”按鈕

3.4 驗證

退出當前的guest用戶,然后使用新創建的admin用戶和密碼登錄。現在,admin用戶應該有權限創建exchange和其他管理操作

注意:不要試圖創建amq.test這種exchange,即使你設置了權限,也會提示沒有權限

四、創建exchange和queue

使用admin賬戶登入,然后切換到exchange,建議在管理臺操作,簡單快捷

然后再切換到queue

?

第三步,將exchange和queue綁定

?

至此,前期準備工作完成

五、測試驗證發送和消費功能

5.1 發送消息

此處我用了一個簡單的python腳本,相較springboot集成rabbitmq進行驗證,有快捷簡單的優點

# 導入pika庫,它提供了與RabbitMQ交互的接口
import pika
# 創建一個到RabbitMQ服務器的阻塞式連接,'localhost'應替換為實際的服務器地址
connections = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
# 獲取一個通道(channel),它是與RabbitMQ進行通信的實體
channel = connections.channel()
# 聲明一個名為'my_direct_exchange'的exchange,類型為'direct'
# direct exchange是最基礎的類型,消息會根據routing key精確匹配到queue
channel.exchange_declare(exchange='test-mq', exchange_type='direct', durable=True)
# 定義要發送的消息,這里是一個簡單的字符串'Hello, World!'
message = 'Hello, world'
# 發布消息到exchange,指定exchange名稱、routing key和消息體
# routing key將決定消息如何路由到queue
channel.basic_publish(exchange='test-mq', routing_key='test-queue-1', body=message)
# 關閉連接,釋放資源
connections.close()

5.2 消費消息

import pikadef callback(ch, method, properties, body):# 這個回調函數會在接收到消息時被調用print(body)# 在這里處理消息,比如處理業務邏輯ch.basic_ack(delivery_tag=method.delivery_tag)connections = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connections.channel()
# 聲明一個隊列(如果不存在,會自動創建)
channel.queue_declare(queue='test-queue-1', durable=True)
# 定義消息消費行為
channel.basic_consume(queue='test-queue-1', on_message_callback=callback, auto_ack=False)
# 開始消費消息
channel.start_consuming()

5.3 從管理臺進行驗證

每隔10秒會刷新,上圖列出來的是消息待消費消息總數,下圖列出來的是每個時間段發送消息的數量

六、測試獲取消息內容

至此,RabbitMQ的搭建及使用就完成了。


總結

在小小的公司里面,挖呀挖呀挖!

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

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

相關文章

2024/5/15 英語每日一段

Many pet owners are now turning to pet insurance policies to avoid higher vet bills should something bad happen unexpectedly. But Carlson said that preventive veterinary care—like vaccination, parasite control and weight management—is "the best way …

工作高效記事軟件是什么 好用的高效記事軟件

陽光斜灑在辦公桌上,我埋頭于一堆雜亂的文件中,頭腦里充斥著各種待辦事項。電話鈴聲突然響起,是老板打來的,提醒我下午三點有個重要會議。掛斷電話后,我趕緊拿起筆想在便簽上記下,卻發現桌面已經被各種便簽…

詳解NodeJS事件循環

官網:node官網-事件循環 瀏覽器中的事件循環是由HTML規范來定義,之后由各瀏覽器廠商實現的,而node中的事件循環的定義與實現均由libuv引擎完成。 node使用chrome v8引擎作為js解釋器,v8引擎分析代碼后,主線程立即執行…

立創EDA繪制PCB電路板

1、繪制好原理圖后,點擊設計---原理圖轉PCB,生成PCB文件 2、將元器件拖入電路板方框內,擺放布局并使用工具欄布線、放置過孔及絲印 3、然后頂層和底層鋪銅 4、后面就可以生成制板文件發送嘉立創制板了。

Redis 本機無法訪問

問題 我在服務器上有兩個 Redis 實例,服務端口號分別是 6379 和 6380,Redis 服務器地址假設為 10.0.0.12。其中 6379 這個實例不需要密碼即可訪問,6380 需要密碼訪問。 在正常使用幾天后,本機突然無法訪問 6379 這個實例&#x…

springboot 定時任務解決方案

Scheduled (springboot 自帶的 注解) 基于注解Scheduled默認為單線程,開啟多個任務時,任務的執行時機會受上一個任務執行時間的影響。 EnableScheduling注解: 在配置類上使用,開啟計劃任務的支持(類上)。…

羊大師,羊奶真不錯

羊大師,羊奶真不錯 在眾多乳制品中,羊奶以其獨特的營養價值和美味口感贏得了人們的青睞。今天,小編羊大師想與大家分享羊奶的種種優點,讓我們一同領略它的魅力。 羊奶的營養價值極高。它含有豐富的蛋白質、脂肪、礦物質和維生素&…

無獨立顯卡如何安裝Pytorch

以前我是直接在colab中使用pytorch,非常方便,今天折騰了一上午,終于搞定了pytorh的安裝和環境設置,分享下我的安裝流程,遇到的問題和解決方案。 1. 用pip安裝Pytorch 打開cmd窗口(按win R)&a…

端午佳節,品嘗食家巷傳統面點與黃米粽子禮盒

端午佳節,品嘗食家巷傳統面點與黃米粽子禮盒 在這個端午節來臨之際,食家巷傾情推出一款別具特色的端午禮盒,將甘肅的傳統面點與地方特色黃米粽子完美融合,為您帶來一場美味與傳統的邂逅。 這款禮盒以甘肅傳統面點一窩絲、油餅和烤…

Android使用SQLite數據庫no such table 問題

sqlite找不到表的問題,大多出現在模擬器里,因為db文件沒找到,導致報錯,為了避免此問題,增加了數據庫文件是否存在的判斷,就可以完美解決此類問題。如果能幫到您,麻煩點個贊。 可以直接看這個方…

電子郵箱怎么注冊?電子郵箱注冊教程,只需要三步

電子郵箱在我們工作和生活中都是必不可少的溝通工具。電子郵箱怎么注冊?電子郵箱的注冊步驟是怎么樣的?本文將從電子郵箱注冊前的準備資料介紹,到具體電子郵箱注冊的三個步驟進行詳細講解。 一、電子郵箱注冊前的準備 電子郵箱是一個具有唯…

概率密度函數pdf的某種解釋與洞察

1.一個想法實驗 我在想一個數,姑且稱之為X,介于0和10之間(含0和10)。如果我不告訴你別的,你會想象X = 0的概率是多少?X = 4?假設我對任何特定的數字都沒有偏好,你會想象十一個整數0,1,2,.….,10也是一樣。因為所有的概率加起來必須是1,所以邏輯上的結論是給11個選項…

Python上下文管理器with塊及@contextmanager的用法

上下文管理器和with塊 上下文管理器對象存在的目的是為了管理with塊,就像迭代器的存在是為了管理for循環一樣 with 語句存在的意義是對一些常用的 try/finally 結構予以簡化。這種結構能夠保障一段代碼在運行完成后實施某項操作,就算該段代碼因為 return 語句、異常或者 sy…

聯豐策略炒股官網分析地產鏈條中的家電,一個不能再忽視的板塊

查查配“上漲放量,盤整縮量”是近期市場的一個重要特征,這說明空頭衰竭、新的做多力量或正在蓄力。昨天我們也以調查問卷的方式與大家進行了討論,對于市場未來將會如何演繹?近一半投票認為“牛在路上,逢低加倉”。與此同時,當前市場中,多條主線還在發力,比如地產鏈條中的家電,…

Python項目——基于回合制的RPG游戲設計與實現

基于回合制的RPG游戲設計與實現 項目概述 《魔法冒險》是一款基于回合制戰斗的角色扮演游戲。玩家將創建一個角色,探索世界,戰斗敵人,收集物品并提升等級。 項目設計報告 一、引言 本項目的目標是實現一個基于回合制戰斗的 RPG 游戲&…

買了個彩票,哈哈哈哈哈。

買了個彩票-雙色球,發現挺有意思的。 索性把雙色球的所有期的中獎號碼的數據都爬了下來,03至今,21年了。txt文本,6.5MB大小。 大家有啥好的建議,分析一下數據呢。

劉邦痛恨的叛徒雍齒,為何后來還被封了侯?

雍齒,原是沛縣的世族出身,家庭往上追溯幾代,也曾經顯赫過。 雖然比不上先祖世代為楚將的項梁、項羽,但雍齒這個沒落的世族后代,身上多多少少也還講究點貴族遺風。 戰國時期,以秦國的軍功爵制為代表&#…

亞馬遜等平臺有哪些風控因素,如何真正做好自養號測評

很多測評人都知道亞馬遜風控是非常嚴的,想要做好亞馬遜測評需要解決很多風控問題,但是往往很多測評工作室技術不夠,或者根本不了解風控點,以為只要IP或者指紋瀏覽器就可以做,這是非常錯誤的,也導致了很多隱…

SpringBoot(三)之打包方式

SpringBoot(三)之打包方式 Spring Boot 提供了幾種常見的打包方式,具體取決于你的項目需求和偏好: JAR(可執行的JAR文件): 這是 Spring Boot 的默認打包方式。它將項目的所有依賴打包到一個可…