使用Docker部署RabbitMQ

第一步:安裝 RabbitMQ
# 1. 拉取鏡像
docker pull rabbitmq:3.12.0-management# 2. 啟動容器(開放端口 + 數據持久化)
docker run -d \--name=share_rabbitmq \-p 5672:5672 \          # AMQP 協議端口-p 15672:15672 \        # 管理界面端口-v /opt/rabbitmq/data:/var/lib/rabbitmq \  # 數據持久化目錄rabbitmq:3.12.0-management

第二步:安裝延遲隊列插件
1.?下載插件文件
  • 官方地址:rabbitmq_delayed_message_exchange-3.12.0.ez
  • 驗證文件
    ls -l rabbitmq_delayed_message_exchange-3.12.0.ez
    # 預期輸出:-rw-r--r-- 1 user user 48214 Mar 22 03:55 rabbitmq_delayed_message_exchange-3.12.0.ez

2.?復制插件到容器
# 將插件復制到容器內插件目錄
docker cp rabbitmq_delayed_message_exchange-3.12.0.ez share_rabbitmq:/opt/rabbitmq/plugins# 驗證文件是否復制成功
docker exec share_rabbitmq ls /opt/rabbitmq/plugins | grep delay
# 預期輸出:rabbitmq_delayed_message_exchange-3.12.0.ez

3.?啟用插件
# 進入容器
docker exec -it share_rabbitmq /bin/bash# 啟用插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange# 退出容器
exit# 重啟容器使插件生效
docker restart share_rabbitmq

第三步:驗證插件狀態
# 1. 檢查插件列表
docker exec share_rabbitmq rabbitmq-plugins list | grep delay
# 預期輸出:[E*] rabbitmq_delayed_message_exchange# 2. 管理界面驗證
# 訪問 http://服務器IP:15672,使用 guest/guest 登錄
# 進入 Exchanges 頁,創建交換機時選擇類型 x-delayed-message

第四步:錯誤處理(來自歷史問題)
問題1:容器未運行
# 檢查容器狀態
docker ps -a | grep share_rabbitmq# 啟動容器
docker start share_rabbitmq
問題2:插件未啟用
# 強制重新啟用插件
docker exec share_rabbitmq rabbitmq-plugins disable rabbitmq_delayed_message_exchange
docker exec share_rabbitmq rabbitmq-plugins enable rabbitmq_delayed_message_exchange
docker restart share_rabbitmq
問題3:權限不足
# 修改插件文件權限
docker exec share_rabbitmq chmod 644 /opt/rabbitmq/plugins/rabbitmq_delayed_message_exchange-3.12.0.ez
問題4:? Docker iptables 規則缺失

步驟 1:重啟 Docker 服務

sudo systemctl restart docker

作用:強制 Docker 重新初始化網絡規則和鏈。

步驟 2:手動重建 DOCKER 鏈

# 清理舊規則
sudo iptables -t nat -F# 創建 DOCKER 鏈
sudo iptables -t nat -N DOCKER# 綁定鏈到流量入口和出口
sudo iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
sudo iptables -t nat -A OUTPUT -m addrtype --dst-type LOCAL -j DOCKER

關鍵點:確保 nat 表的 PREROUTINGOUTPUT 鏈關聯到 DOCKER 鏈。

步驟 3:加載必需的內核模塊

# 加載網絡橋接和 NAT 模塊
sudo modprobe br_netfilter
sudo modprobe nf_nat

驗證模塊加載

lsmod | grep -E "br_netfilter|nf_nat"

步驟 4:啟動容器

docker start share_rabbitmq

步驟 5:驗證容器狀態

docker ps | grep share_rabbitmq

預期輸出

PlaintextCONTAINER ID IMAGE STATUS PORTS NAMES a1b2c3d4e5f6 rabbitmq:3.12-management Up 2 seconds 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp share_rabbitmq
附:關鍵操作速查表
步驟命令
啟動容器docker run -d --name=share_rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.12.0-management
復制插件docker cp 插件文件 share_rabbitmq:/opt/rabbitmq/plugins
啟用插件docker exec share_rabbitmq rabbitmq-plugins enable rabbitmq_delayed_message_exchange
驗證插件docker exec share_rabbitmq rabbitmq-plugins list | grep delay
強制重啟容器docker restart share_rabbitmq
注意事項
  1. 版本嚴格匹配:插件版本必須與 RabbitMQ 版本完全一致(均為?3.12.x)。
  2. 瀏覽器緩存:若管理界面未顯示?x-delayed-message,請強制刷新(Ctrl+F5)。
  3. 生產環境建議:啟用數據持久化(-v?掛載目錄),避免容器重啟后數據丟失。

通過以上步驟,RabbitMQ 延遲隊列插件應正常工作。如遇其他問題,可運行 docker logs share_rabbitmq 查看日志定位原因。

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

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

相關文章

2.基于多線程的TCP服務器實現

目錄 1. 簡單分析之前的代碼 2. 多線程服務器設計 2.1 C11線程的基本使用 2.2 服務器主體邏輯 3. 錯誤處理的封裝 4. 完整的代碼實現 客戶端代碼(client.cpp) 服務器代碼(server.cpp) 5. 運行方式 在我們預想中&#xff…

Python Web 框架 Django、Flask 和 FastAPI 對比

在探索 Python Web 框架時,Django、Flask 和 FastAPI 無疑是最常被提及的名字。根據我們最新的 Python 開發者調查,這三大框架繼續穩坐后端 Web 開發的熱門寶座。它們均為開源項目,并且與 Python 的最新版本無縫兼容。然而,面對不…

SQL Server數據庫表刪除分區

在 SQL Server 中刪除分區并將表恢復到非分區狀態,需按以下步驟操作: 一、合并所有分區 1. 檢查現有分區結構 首先確認表的分區方案和分區函數: -- 查看分區方案 SELECT * FROM sys.partition_schemes;-- 查看分區函數 SELECT * FROM sys…

信息安全和病毒防護——安全協議關于SSL和TLS協議的補充說明

文章目錄 SSL與TLS的關系SSL與TLS的核心區別SSL/TLS的典型應用安全建議總結SSL與TLS的關系 SSL(Secure Sockets Layer,安全套接層)和TLS(Transport Layer Security,傳輸層安全)是同一技術體系的演進版本,而非完全獨立的協議。其發展歷程如下: SSL 1.0(1994):未公開…

[原創](Modern C++)現代C++的關鍵性概念: 多維數組的下標引用.

[作者] 常用網名: 豬頭三 出生日期: 1981.XX.XX 企鵝交流: 643439947 個人網站: 80x86匯編小站 編程生涯: 2001年~至今[共24年] 職業生涯: 22年 開發語言: C/C、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 開發工具: Visual Studio、Delphi、XCode、C …

從零構建大語言模型全棧開發指南:第二部分:模型架構設計與實現-2.2.3實戰案例:在筆記本電腦上運行輕量級LLM

?? 點擊關注不迷路 ?? 點擊關注不迷路 ?? 點擊關注不迷路 文章大綱 實戰案例:在筆記本電腦上運行輕量級LLM2.2.3 模型架構設計與實現1. 環境與工具準備1.1 硬件要求1.2 軟件棧選擇2. 輕量級模型架構設計2.1 模型參數配置2.2 關鍵技術優化3. 實戰流程3.1 數據準備流程3.2…

工業軟件的破局與重構:從技術依賴到自主創新的未來路徑

工業軟件作為現代工業的“神經與大腦”,不僅是制造業數字化轉型的核心工具,更是國家工業競爭力的戰略制高點。近年來,中國工業軟件市場在政策驅動與技術迭代中迅猛發展,但核心技術受制于人的困境仍待突破。如何實現從“跟跑”到“…

歌曲緩存相關功能

1. 核心組件 MusicCacheManager (音樂緩存管理器) 單例模式:確保全局只有一個實例,方便管理。 private static var instance: MusicCacheManager?static func shared() -> MusicCacheManager {if instance nil {instance MusicCacheManager()}ret…

解決 Ubuntu/Debian 中 `apt-get` 報錯 “無法獲得鎖 /var/lib/dpkg/lock“

問題描述 在 Ubuntu/Debian 系統中運行 sudo apt-get install 或 sudo apt update 時,遇到以下錯誤: E: 無法獲得鎖 /var/lib/dpkg/lock - open (11: 資源暫時不可用) E: 無法鎖定管理目錄(/var/lib/dpkg/),是否有其他進程正占用它&#…

阿里開源的免費數據集成工具——DataX

企業里真實的數據流轉是什么樣子的呢? 左側描述了一個企業真實的樣子,我們總是需要把數據從一個地方搬到另一個地方,最后就是搬來搬去搬成了一張張解不開的網。 右側則表達了使用DataX為中心實現數據的同步。 什么是DataX DataX是一個異構…

26考研——圖_圖的遍歷(6)

408答疑 文章目錄 三、圖的遍歷圖的遍歷概述圖的遍歷算法的重要性圖的遍歷與樹的遍歷的區別圖的遍歷過程中的注意事項避免重復訪問遍歷算法的分類遍歷結果的不唯一性 廣度優先搜索廣度優先搜索(BFS)概述BFS 的特點廣度優先遍歷的過程示例圖遍歷過程 BFS …

前端解決方案:實現網頁截圖并導出PDF功能

前端解決方案:實現網頁截圖并導出PDF功能 在前端開發中,我們經常會遇到需要將網頁內容導出為PDF的需求。本文將以一個準考證預覽和導出的例子,帶你一步步實現這個功能。我們會處理包括跨域圖片、Canvas繪圖、PDF生成等多個技術要點。 一、基…

【MySQL】表操作

表操作 一、創建表 1、語句2、語句介紹3、注意事項4、介紹5、示例 二、查看表結構 1、語句2、介紹3、返回的信息4、示例 三、添加字段 1、語句2、語句介紹3、示例 四、修改 1、語句2、語句介紹3、示例 五、刪除 1、語句2、示例 六、修改表名 1、語句2、語句介紹3、示例 七、刪…

[新聞.AI]國產大模型新突破:阿里開源 Qwen2.5-VL-32B 與 DeepSeek 升級 V3 模型

(本文借助 Deepseek-R1 協助生成) 在2025年3月24日至25日的短短24小時內,中國AI領域迎來兩大重磅開源更新:阿里通義千問團隊發布多模態大模型Qwen2.5-VL-32B-Instruct,而DeepSeek則推出編程能力大幅提升的DeepSeek-V3…

深入剖析C# List<T>的底層實現與性能奧秘

一、動態數組的本質:List的架構設計 在C#的集合類型體系中,List作為最常用的線性數據結構,其核心實現基于動態數組機制。與傳統數組不同,List通過智能的容量管理策略,在保持數組高速隨機訪問優勢的同時,突…

【單元測試】

一、框架 不同的編程語言有不同的測試框架,以下是一些常見的測試框架: 1)Java:JUnit、TestNG2)Python:unittest、pytest3)JavaScript:Jest、Mocha4)C#:NUni…

機器學習——XGBoost

XGBoost(極度梯度提升樹,eXtreme Gradient Boosting)是基于GBDT的優化模型,其最大特性在于對GBDT的損失函數展開到二階導數,使得其梯度提升樹模型更接近其真實損失 其XGBoost分類樹擬合和預測方法的基本思路為: 遍歷所有的樹&…

響應“一機兩用”政策 ,實現政務外網安全

在數字化辦公的浪潮下,企業與政務機構面臨著既要保障數據安全,又要高效訪問互聯網的雙重需求。“一機兩用”成為解決這一難題的關鍵。 政策驅動,需求迫切 隨著《網絡安全法》《數據安全法》等法律法規的相繼出臺,網絡安全防護的要…

【后端】【Django】Django DRF API 單元測試完整方案(基于 `TestCase`)

Django DRF API 單元測試完整方案(基于 TestCase) 一、方案概述 使用 django.test.TestCase 和 rest_framework.test.APIClient 進行 API 單元測試,確保 API 正確性、權限控制、數據返回格式、業務邏輯 等。 二、基本步驟 使用 setUp() 初始…

文生圖語義識別插件使用(controlnet)

1. 插件下載(github) https://github.com/Mikubill/sd-webui-controlnet https://github.com/lllyasviel/ControlNet2. 模型下載(hugging face) https://github.com/Mikubill/sd-webui-controlnet/wiki/Model-download https://huggingface.co/bdsqlsz/qinglong_controlnet-l…