当前位置: 首页 > news >正文

docker安装消息队列mq中的rabbit服务

在现代化的分布式系统中,消息队列(Message Queue, MQ)已经成为了一种不可或缺的组件。RabbitMQ作为一款高性能、开源的消息队列软件,因其高可用性、可扩展性和易用性而广受欢迎。本文将详细介绍如何在Docker环境中安装RabbitMQ服务,帮助读者轻松搭建起一个消息队列系统。

ad34c825cb1f4d958f616d41d3593d03.png

一、Docker环境准备

在开始之前,请确保你的计算机已经安装了Docker环境。你可以通过运行docker --version命令来检查Docker的版本信息。如果还没有安装Docker,请前往Docker官网下载并安装适合你操作系统的版本。ddddafa43fa141ac99aef11253780fa7.png

二、拉取RabbitMQ镜像

Docker Hub是一个开源的容器镜像库,上面存储了海量的容器镜像。我们可以通过Docker Hub来拉取RabbitMQ的镜像。在命令行终端中执行以下命令:

 

bash复制代码

docker pull rabbitmq:3-management

 

这里我们选择的是带有管理插件的RabbitMQ 3.x版本的镜像。如果你需要其他版本的RabbitMQ,可以在rabbitmq:后面跟上版本号,例如rabbitmq:3.8.9-management

三、创建并运行RabbitMQ容器

拉取完镜像后,我们可以使用Docker命令来创建并运行一个RabbitMQ容器。执行以下命令:

 

36b719e411de4c9b8d4c569ef948b168.pngbash复制代码 

docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

 

这条命令的含义是:

  • -d:表示在后台运行容器。
  • --name rabbitmq:给容器指定一个名称(这里为rabbitmq),方便后续管理。
  • -p 5672:5672:将宿主机的5672端口映射到容器的5672端口,用于客户端与RabbitMQ服务器之间的通信。
  • -p 15672:15672:将宿主机的15672端口映射到容器的15672端口,用于访问RabbitMQ的管理界面。8e45ea6852664f76a27986664c3a5505.gif

安装PHPamqp扩展和依赖以及开启php.ini中的mq配置

0b4db372eebc4249b7bdb389be088c73.png

27d329585c8d4a138bcd42a212232906.gif

5c2e3703e5c54736bc46e31e215c2dbd.png851ce8b9d9624f00b1a33b8e1b5cf9b4.gif

持久化docker中的mq中设置的信息,防止每次重启docker,新建的账号,交换机,通道丢失

7f73b6862fb04d35a77d521119237ff6.gif49becce16fa54925b32cb17f55517627.gif

四、访问RabbitMQ管理界面

RabbitMQ启动后,我们可以通过浏览器访问其管理界面来查看和管理RabbitMQ服务器。在浏览器中输入http://127.0.0.1:15672/(如果你是在远程服务器上运行的RabbitMQ,请将localhost替换为服务器的IP地址),然后输入默认的登录账号和密码(guest/guest)即可登录。

在管理界面中,你可以查看RabbitMQ的队列、交换机、绑定等信息,还可以进行各种操作,如创建队列、发送消息等。

3d2ae3a1b0064933b0bbcf901248ed31.png

五、常见问题及解决方案

  1. Stats in management UI are disabled on this node

    如果在管理界面中看到这个提示,说明管理插件的统计功能被禁用了。你可以通过修改RabbitMQ的配置文件来启用它。具体方法可以参考RabbitMQ的官方文档。

  2. 062406b371744d76af9df68413795330.png

  3. 端口冲突

    如果你发现无法访问RabbitMQ的管理界面,可能是端口冲突导致的。请检查宿主机上是否有其他服务占用了15672端口,并尝试更换一个未被占用的端口。

  4. 权限问题

    RabbitMQ默认使用guest账号作为管理员账号,但该账号只能在localhost上登录。如果你需要在远程机器上登录RabbitMQ的管理界面,需要创建一个新的账号并赋予相应的权限。

  5. 3d83cfc2002f410390e64c7f4b55f917.png

六、总结

本文详细介绍了如何在Docker环境中安装RabbitMQ服务,包括Docker环境准备、拉取RabbitMQ镜像、创建并运行RabbitMQ容器、访问RabbitMQ管理界面以及常见问题及解决方案。通过本文的学习,读者可以轻松地搭建起一个基于Docker的消息队列系统,为分布式系统的开发提供有力的支持。

 

相关文章:

  • python操作数据库,django操作数据库
  • 【Vue】自学笔记(四)
  • 有没有硅基生命?AGI在哪里?
  • 【面试干货】ArrayList、Vector、LinkedList的存储性能和特性比较
  • 类android设备reset过程
  • C++语法08 数据类型之间的强制转换
  • FlinkCDC 3.1.0 支持 Flink 1.18.0 版本选择
  • B树与B+树与Mysql innodb的B+树和其相关索引
  • 厂里资讯之总体架构介绍以及环境搭建
  • PostgreSQL基础(十四):PostgreSQL的数据迁移
  • IT入门知识博客文章大纲(0/10)
  • Windows 11部署FunASR离线语音识别系统
  • iOS接入Flutter
  • 带侧边栏布局:带导航的网页
  • Cask ‘oraclexxx‘ is unavailable: No Cask with this name exists.
  • 【译】理解JavaScript:new 关键字
  • 30秒的PHP代码片段(1)数组 - Array
  • Fastjson的基本使用方法大全
  • Gradle 5.0 正式版发布
  • happypack两次报错的问题
  • PAT A1017 优先队列
  • PHP 7 修改了什么呢 -- 2
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Redash本地开发环境搭建
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • tab.js分享及浏览器兼容性问题汇总
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Vim Clutch | 面向脚踏板编程……
  • Xmanager 远程桌面 CentOS 7
  • 动态规划入门(以爬楼梯为例)
  • 分布式任务队列Celery
  • 字符串匹配基础上
  • 国内开源镜像站点
  • #QT(串口助手-界面)
  • $.ajax中的eval及dataType
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (Ruby)Ubuntu12.04安装Rails环境
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (轉)JSON.stringify 语法实例讲解
  • **PHP二维数组遍历时同时赋值
  • .NET : 在VS2008中计算代码度量值
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET 通过系统影子账户实现权限维持
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .net6 core Worker Service项目,使用Exchange Web Services (EWS) 分页获取电子邮件收件箱列表,邮件信息字段
  • .NET大文件上传知识整理
  • /bin、/sbin、/usr/bin、/usr/sbin
  • @RequestParam详解
  • @SpringBootConfiguration重复加载报错