Docker安装RabbitMQ

本文详细介绍了如何在Docker中安装RabbitMQ,包括拉取镜像、启动容器、启用管理插件,并提供了遇到问题的解决办法。此外,还介绍了RabbitMQ的基本概念,如交换机、队列、路由键、消息生产和消费等,以及如何创建交换机、队列和进行消息的发布与接收。

第一步:拉取镜像

docker pull rabbitmq

第二步:查看拉取镜像

docker images

第三步:创建并启动rabbitmq容器

docker run -d --name rabbitmg -p 5671:5671 -p 5672:5672 -p4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management

4369,25672 (Erlang发现&集群端口)
5672,5671(AMQP端口)
15672(web管理后台端口)
61613,61614(STOMP协议端口)
1883,8883(MQTT协议端口)
https://wwwrabbitmq.com/networking.html

第四步:进入容器交互页面

docker exec -it rabbitmq1 /bin/bash

第五步:在进入容器得交互页面下载插件

rabbitmq-plugins enable rabbitmq_management

第六步:浏览器访问

 http://IP:15672

用户名:guest

密码:guest

注意:如果进入页面,运行出现一下错误

 解决方案:

docker exec -it rabbitmq /bin/bash

进入目录:cd /etc/rabbitmq/conf.d/

执行命令: echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf

退出容器 exit

重启rabbitmq docker restart rabbitmq

如果重启报错,可执行一下命令

docker ps 查询出rabbitmq的container id,然后docker restart container id

 

RabbitMQ测试使用

基本概念:

一、交换机Exchanges

有四种类型,分别是direct,fanout,topic,headers

direct:完全匹配

fanout:广播

topic:规则匹配

headers:

二、队列Queue

存储消息的队列

三、路由键router-key

交换机与队列关联的核心参数

四、消息生产者pusher
消息生产者,主要负责生产消息

五、消息消费者customer

消息消费者,主要负责消费消息

六、Connection

通道,客户端与服务器建立的唯一连接,一个客户端和服务器只有一个唯一连接,类似告诉公路

七、通道channel

通道内的多个连接,类似于一条告诉公路的多条通道

使用

一、创建一个交换机,命名为mydirect

 二、创建队列,命名为myqueue

三、将队列和通道绑定

 四、消息发布

 五、消息接收

 

 

### 如何使用 Docker 安装 RabbitMQ 的最佳实践 #### 创建挂载目录 为了确保数据持久化以及便于管理配置文件,在宿主机上创建专用的挂载目录是非常重要的。例如,可以在 Linux 系统中执行以下命令来创建并授权一个专门用于 RabbitMQ 数据存储的目录[^2]。 ```bash sudo mkdir -p /usr/local/docker/rabbitmq && sudo chmod 777 /usr/local/docker/rabbitmq ``` 此操作不仅提供了安全的数据保存路径,还允许容器内的 RabbitMQ 进程能够正常读写这些数据。 #### 部署单机版 RabbitMQ 启动 RabbitMQ 容器可以通过 `docker run` 命令完成。下面是一个典型的运行命令示例: ```bash docker run -d \ --name rabbitmq-server \ -p 5672:5672 \ -p 15672:15672 \ -v /usr/local/docker/rabbitmq/data:/var/lib/rabbitmq \ -v /usr/local/docker/rabbitmq/log:/var/log/rabbitmq \ rabbitmq:management ``` 上述命令中的参数解释如下: - `-d`: 后台模式运行容器。 - `--name rabbitmq-server`: 设置容器名称为 `rabbitmq-server`。 - `-p 5672:5672`: 将 RabbitMQ 默认消息端口映射到本地。 - `-p 15672:15672`: 映射 Web 管理界面端口至本机。 - `-v ...`: 使用之前创建的挂载目录分别绑定日志和数据卷[^1]。 #### 初始化与重置 RabbitMQ 节点 如果需要初始化或者重新配置某个 RabbitMQ 实例,则可通过进入容器内部执行相关命令实现。比如停止应用、清除状态再重启服务等操作可按如下方式处理[^3]: ```bash docker exec -it myrabbit1 bash rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl start_app exit ``` #### 构建高可用集群环境 对于生产环境中构建多节点组成的 RabbitMQ 高可用集群来说,除了单独部署多个实例外还需要让它们彼此之间形成协作关系。假设已经存在名为 `myrabbit1` 和 `myrabbit2` 的两个节点,那么新增加第三个节点 (`myrabbit3`) 加入该集群的具体方法如下所示[^4]: ```bash docker exec -it myrabbit3 bash rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster --ram rabbit@rabbit1 rabbitmqctl start_app exit ``` 以上步骤展示了从基础安装到高级集群搭建整个过程中涉及的关键环节和技术要点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值