docker 安装 Rabbitmq 详解

        在平常的开发工作中,我们经常会使用到 rabbitmq,rabbitmq 主要可以进行应用解耦、异步通信、流量削峰、负载均衡、消息持久化、死信队列等。比如商城系统,下单后,通过消息队列通知库存系统、积分系统、物流系统等。发送短信时通过消息队列异步通知,导入处理大文件时通过消息队列异步处理等。那么 docker 下如何安装 rabbitmq 呢?今天简单来总结下主要步骤。

     1:拉取镜像

        通过命令 docker pull rabbitmq:版本号,拉取镜像,如果不输入则默认拉取最新版本的镜像。

        注意rabbitmq 镜像分为数字版本镜像和带 management  的镜像。带 management 的主要是集成了管理界面和相关插件,管理界面需要运行一个 Web 服务器来提供服务。开发、测试阶段,需要使用管理页面直观的看到消息发送及接受情况,使用 management 可以提高工作效率。数字版本镜像只包含 rabbitmq 的核心功能,不包含管理界面和相关插件,所以其资源占用相对较少。如果对资源占用有严格的要求,且不需要可视化管理页面那就使用数字版本镜像。

        

     2:创建挂载目录

# 数据持久化目录
mkdir -p  /docker/rabbitmq/data:/var/lib/rabbitmq# 日志目录
mkdir -p  /docker/rabbitmq/logs:/var/log/rabbitmq

      3:启动 rabbitmq

      (1):新建 docker-compose.yml 文件

rabbitmq:# 带有管理界面的 rabbitmq 镜像image: rabbitmq:management  container_name: rabbitmqports:# AMQP 协议端口- "5672:5672" # rabbitmq 管理界面端口 - "15672:15672"  volumes:# 数据持久化目录- /usr/local/docker/rabbitmq/data:/var/lib/rabbitmq# 日志目录- /usr/local/docker/rabbitmq/logs:/var/log/rabbitmq environment:# 设置用户名RABBITMQ_DEFAULT_USER: guest# 设置密码RABBITMQ_DEFAULT_PASS: 123456restart: always

      (2):启动 docker compose up rabbitmq

        启动报错,大致意思就是打开log目录没有权限,报错如下: 

        解决方案为给 /docker/rabbitmq/logs 目录添加权限,命令为 chmod  777 /docker/rabbitmq/logs,执行完成后,可以查看 logs 目录的权限,查看命令为 ls -l (小写的L),查看如下:

        

        chmod 777 命令详解:chmod 用于修改文件或者目录访问权限。777 是采用数字的方式设置权限,第一个表示文件或者目录所有者(owner)权限、第二个表示所属组(group)权限、第三个表示其他用户(others)的权限。

        读取权限(r):对应值为4

        写入权限(w):对应值为2

        执行权限(x):对应值为1

        没有权限:对应值为0

        7 代表拥有读取权限(4)、写入权限(2)和执行权限(1),即 4+2+1=7,权限为 rwx,即目录所有者、所属组、其他用户都可以操作该目录中的文件,新增、删除、修改、读取文件。

        重新启动 rabbitmq,启动成功,日志如下:

        

        可以使用 docker ps 查看启动的容器,如下:

     4:进行测试

        访问 ip地址 + 15672 端口,如 127.0.0.1::15672,访问成功,登录页面如下:

        可能遇到的问题,访问不同,那么可能是防火墙端口的问题,可能是 15672 端口防火墙未开导致的,不同的内核版本有不同的对应命令,如果是 Centos 内核版本,查看版本可以用 cat /etc/os-release 命令,可以先查看 15672 端口是否开了防火墙,如果没开,则添加后重启防火墙,相关命令如下:

        查看防火墙开端口:firewall-cmd --zone=public --list-ports
        添加端口:firewall-cmd --zone=public --add-port=15672/tcp --permanent
        重启防火墙:firewall-cmd --reload

        以上为 docker 安装 rabbitmq 的基本步骤,主要是 docker-compose.yml 文件的编写。配置挂载目录,可以防止重启 rabbitmq 的时候,配置丢失等。消息队列可以实现异步通信、应用解耦、流量削峰等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20118.html

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

相关文章

零基础学yolo系列

1.目标检测算法分类 基于深度学习的主流目标检测算法根据有无候选框生成阶段,分为双阶段目标检 测算法和单阶段目标检测算法两类 双阶段检测模型 将检测问题划分为两个阶段,首先产生候选区域,然后对候选区域分类并对目标位置进行精修&#x…

本智慧监考系统

本智慧监考系统共分为4个部分,分别为:展示层、业务层、算法层和数据库。 本系统的展示层基于Vue.js框架和Ant Design Vue UI框架编写。用户通过浏览器访问前端界面来实现与系统的交互。 业务层是基于SpringBoot框架编写的Java后台服务器。该层负责本系…

从开发到部署:EasyRTC嵌入式视频通话SDK如何简化实时音视频通信的集成与应用

嵌入式设备和视频综合管理平台均支持B/S架构。在B/S架构下,传统的视频观看方式依赖于微软的OCX控件,然而OCX控件的使用正面临越来越多的挑战: 首先,用户需要安装浏览器插件、调整浏览器安全级别,并允许ActiveX控件弹出…

如何查看 Linux 服务器的 MAC 地址:深入解析与实践指南

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

RabbitMQ 3.12.2:单节点与集群部署实战指南

前言:在当今的分布式系统架构中,消息队列已经成为不可或缺的组件之一。它不仅能够实现服务之间的解耦,还能有效提升系统的可扩展性和可靠性。RabbitMQ 作为一款功能强大且广泛使用的开源消息中间件,凭借其高可用性、灵活的路由策略…

Ubuntu22.04配置cuda/cudnn/pytorch

Ubuntu22.04配置cuda/cudnn/pytorch 安装cuda官网下载.run文件并且安装/etc/profile中配置cuda环境变量 cudnn安装官网找cuda版本对应的cudnn版本下载复制相应文件到系统文件中 安装pytorch官网找cuda对应版本的pytorchpython代码测试pytorch-GPU版本安装情况 安装cuda 官网下…

动态规划算法篇:枚举的艺术

那么本篇文章就正式进入了动态规划的算法的学习,那么动态规划算法也可谓是算法内容中的一座大山,那么在大厂算法笔试乃至算法比赛中出现的频率也逐渐变高,那么可见学习好动态规划算法的一个重要性,那么对于动态规划最难理解的&…

从入门到精通:Postman 实用指南

Postman 是一款超棒的 API 开发工具,能用来测试、调试和管理 API,大大提升开发效率。下面就给大家详细讲讲它的安装、使用方法,再分享些实用技巧。 一、安装 Postman 你能在 Postman 官网(https://www.postman.com )下…

Android平台基于SmartPlayer实现多实例RTSP|RTMP播放器

在 Android开发中,实现多实例的RTSP或RTMP直播播放器是一个常见的需求,本文将介绍如何利用大牛直播SDK的SmartPlayer模块接口,快速实现Android平台上的多实例播放器。通过合理的架构设计和 API 调用,我们可以轻松地管理多个播放实…

Linux中进程的状态3 进程的优先级1

目录 X(dead) && Z(zombie) 僵尸进程 && 孤儿进程 进程的优先级 如何修改进程的优先级 我们至此还剩两种状态没有查看,X和Z状态。 X(dead) && Z(zombie) X状态是进程死亡状态,Z状态依照这个词可知是进程处于僵死状态&…

基于语音的阿尔茨海默病检测识别

摘要 阿尔茨海默病 (AD) 是一种进行性神经退行性疾病,会严重损害认知功能,导致记忆力减退和其他行为改变。它是全球第七大死因,有数百万人受到影响。早期准确检测 AD 对于改善患者预后和减缓疾病进展至关重要。机器学习…

Ubuntu添加桌面快捷方式

以idea为例 一. 背景 在ubuntu中,很多时候是自己解压的文件并没有桌面快捷方式,需要自己找到对应的目录的执行文件手动打开,很麻烦 而只需要在 /usr/share/applications 中创建自定义的desktop文件就能自动复制到桌面 二. 添加方法 创建desk…

pycharm社区版虚拟环境如何配置、如何验证配置成功

1、无配置直接新建按照以下步骤: 新建——自定义环境——类型确定为虚拟 2、以前设置过的只需要将虚拟环境配置上就行了 选择文件——设置——对应文件下的解释器——选择带.ven的解释器 如何检查安装成功? 看终端开头是否显示.venv

【有啥问啥】DeepSeek 技术原理详解

DeepSeek 技术原理详解 DeepSeek 是一款具有突破性技术的大型语言模型,其背后的技术原理涵盖了多个方面,以下是对其主要技术原理的详细介绍: 架构创新 多头潜在注意力机制(MLA) 传送门链接: DeepSeek V3中的Multi-…

Java通过ollama平台接入DeepSeek

1、配置适配jdk8的依赖 <dependency><groupId>io.github.lnyo-cly</groupId><artifactId>ai4j-spring-boot-stater</artifactId><version>0.7.0</version> </dependency>2、配置bootstrap.yml ai:ollama:api-host: http://loc…

【Ai】使用AnythingLLM访问DeepSeek,界面友好,API调用

本文假设已经安装好Ollama 如果还没安装可以看见这个https://blog.csdn.net/wlddhj/article/details/145418880 AnythingLLM是Mintplex Labs推出的一款功能强大的全栈AI应用程序&#xff1a; 功能特点 支持多种LLM和数据库&#xff1a;支持OpenAI、Azure OpenAI、AWS Bedrock…

猿大师播放器与其他网页播放RTSP方案对比有哪些优势?

1. 超低延迟播放&#xff08;300毫秒级&#xff09; - 基于VLC/FFPLAY引擎直接调用本地硬件解码&#xff0c;无需服务器转码&#xff0c;延迟低至300毫秒&#xff0c;远低于传统转码方案&#xff08;通常1-3秒&#xff09;。在消防、安防等场景中&#xff0c;毫秒级延迟可显著…

Breakout Tool

思科 CML 使用起来还是很麻烦的&#xff0c;很多操作对于习惯了 secure crt 或者 putty 等工具的网络工程师都不友好。 Breakout Tool 提供对远程实验室中虚拟机控制台与图形界面的本地化接入能力&#xff0c;其核心特性如下&#xff1a; Console 访问&#xff1a;基于 Telnet…

c语言易错题(选择)

这里给大家讲一下c语言部分遗留的选择题&#xff0c;用来巩固知识&#xff0c;一共13道题 1 答案解析 A&#xff1a;正确 不同的函数属于不同的作用域&#xff0c;因此不同的函数中定义相同名字的变量不会冲突 B&#xff1a;正确 在C语言中&#xff0c;函数的形参一般都是通过参…

《Python实战进阶》专栏 No2: Flask 中间件与请求钩子的应用

专栏简介 《Python实战进阶》专栏共68集&#xff0c;分为 模块1&#xff1a;Web开发与API设计&#xff08;共10集&#xff09;&#xff1b;模块2&#xff1a;数据处理与分析&#xff08;共10集&#xff09;&#xff1b;模块3&#xff1a;自动化与脚本开发&#xff08;共8集&am…