使用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.rhkb.cn/news/39198.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用selenium+ChromeDriver豆瓣电影 肖申克的救赎 短评爬取(pycharm 爬虫)

一、豆瓣电影 肖申克的救赎 短评url=https://movie.douban.com/subject/1292052/comments 二、基本知识点讲解 1. Selenium 的基本使用 Selenium 是一个用于自动化浏览器操作的库,常用于网页测试和爬虫。代码中使用了以下 Selenium 的核心功能: webdriver.Chrome: 启动 Chr…

万象更新(一)VTK 坐标轴、相机方向坐标轴、立方体坐标轴

VTK 坐标轴、相机方向坐标轴、立方体坐标轴 1. 坐标轴、相机方向坐标轴、立方体坐标轴2. 坐标轴3. 相机方向坐标轴4. 立方体坐标轴 1. 坐标轴、相机方向坐标轴、立方体坐标轴 在 VTK(Visualization Toolkit)中,与坐标轴相关的组件主要包括 坐…

【Golang】go语言上下文context

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

ROS2与OpenAI Gym集成指南:从安装到自定义环境与强化学习训练

1.理解 ROS2 和 OpenAI Gym 的基本概念 ROS2(Robot Operating System 2):是一个用于机器人软件开发的框架。它提供了一系列的工具、库和通信机制,方便开发者构建复杂的机器人应用程序。例如,ROS2 可以处理机器人不同组…

基于Spring Boot的乡村养老服务管理系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

### Java二维字符矩阵输入解析:正确读取由0和1组成的矩阵

在解决LeetCode等编程平台上的算法问题时,正确处理输入数据是解题的第一步。本文以Java语言为例,详细讲解如何正确读取由0和1组成的二维字符矩阵,并解决输入过程中可能遇到的换行符问题。 --- #### **问题背景** 题目要求从输入中读取一个二…

SEO监控看板搭建:基于Data Studio的实时数据可视化

在当今数字化营销的时代,SEO(搜索引擎优化)已经成为企业获取流量、提升品牌曝光的重要手段。然而,SEO的效果往往需要通过数据来评估和优化。为了更高效地监控SEO表现,许多企业开始使用数据可视化工具来搭建SEO监控看板…

模糊数学 | 模型 / 集合 / 关系 / 矩阵

注:本文为来自 “模糊数学 | 模型及其应用” 相关文章合辑。 略作重排。 如有内容异常,请看原文。 模糊数学模型:隶属函数、模糊集合的表示方法、模糊关系、模糊矩阵 wamg 潇潇 于 2019-05-06 22:35:21 发布 1.1 模糊数学简介 1965 年&a…

如何根据目标网站调整Python爬虫的延迟时间?

一、为什么需要调整爬虫的延迟时间? 1. 反爬虫机制的挑战 大多数网站(尤其是电商平台如淘宝)都部署了反爬虫机制,用于检测异常的访问行为。如果爬虫的请求频率过高,可能会触发以下反制措施: IP封禁&…

【嵌入式学习2】内存管理

## C语言编译过程 预处理:宏定义展开、头文件展开、条件编译,这里并不会检查语法,将#include #define这些头文件内容插入到源码中 gcc -E main.c -o main.i 编译:检查语法,将预处理后文件编译生成汇编文件&#xff…

案例分享|树莓派媒体播放器,重构商场广告的“黄金三秒”

研究显示,与传统户外广告相比,数字户外广告在消费者心中的记忆率提高了17%,而动态户外广告更是能提升16%的销售业绩,整体广告效率提升了17%。这一显著优势,使得越来越多资源和技术流入数字广告行业。 户外裸眼3D广告 无…

WindowsPE文件格式入门02.选项头其它和节表

https://www.bpsend.net/thread-444-1-1.html 选项头 IMAGE_OPTIONAL_HEADER:以供操作系统加载PE文件使用,32位必选。 重要字段: DWORD AddressOfEntryPoint; 入口点 DWORD ImageBase 建议模块地址…

【Arm+Qt+Opencv】基于人脸识别考勤系统实战

1.编译时问题汇总 windows下编译opencv-4.5.4 opencv-4.5.4编译 问题1:配套使用opencv-4.5.4,opencv_contrib-4.5.4,cmake3.22.3问题会少一点 问题2:在windows下哪里执行该命令 解决: 问题3:在对应cmake中搜索不到要修改的配置…

Linux与HTTP中的Cookie和Session

HTTP中的Cookie和Session 本篇介绍 前面几篇已经基本介绍了HTTP协议的大部分内容,但是前面提到了一点「HTTP是无连接、无状态的协议」,那么到底有什么无连接以及什么是无状态。基于这两个问题,随后解释什么是Cookie和Session,以…

【Tauri2】001——安装及运行

前言 笔者其实不想写教程,写教程很麻烦。 但是网上关于Tauri2的教程,要么不全,要么是Tauri1的,真的太少了,虽然有官网,还是太少了。 问Ai,也感觉比较离谱,有很多时候,…

【DFS】羌笛何须怨杨柳,春风不度玉门关 - 4. 二叉树中的深搜

本篇博客给大家带来的是二叉树深度优先搜索的解法技巧,在后面的文章中题目会涉及到回溯和剪枝,遇到了一并讲清楚. 🐎文章专栏: DFS 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的…

操作系统导论——第13章 抽象:地址空间

一、早期系统 从内存来看,早期的机器并没有提供多少抽象给用户。基本上,机器的物理内存如图13.1所示 操作系统曾经是一组函数(实际上是一个库),在内存中(在本例中,从物理地址0开始)&…

网络爬虫-2:基础与理论

一.同步加载与异步加载 1.1同步加载定义: 页面所有内容一起加载出来,当某一个数据加载有问题,整个页面就不会加载出来(如HiFiNi音乐网站),所以又叫阻塞模式 1.2爬取步骤: 看netword->document 2.1异步加载定义: 数据是分开加载的,当某一份数据有异常时,不影响其他数据…

【Docker系列五】Docker Compose 简介

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

本地安装deepseek大模型,并使用 python 调用

首先进入 ollama 官网 https://ollama.com/点击下载 下载完成后所有都是下一步,就可以 点击搜索 Models : https://ollama.com/search然后点击下载: 选择后复制: ollama run deepseek-r1:32b例如: 让它安装完成后&#xff1…