docker安装rabbitMQ

本文详细介绍RabbitMQ的基本概念、适用场景,包括安装docker镜像、配置MQ服务,以及死信队列和发布-订阅模型的应用。重点讲解了异步处理和松耦合架构在项目中的实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. rabbitMQ介绍

RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。

2. MQ介绍 

MQ是一个互联网架构中常见的解耦利器。
什么时候不使用MQ?
上游实时关注执行结果
什么时候使用MQ?
1)数据驱动的任务依赖,多个任务需要轮流执行,轮流订阅上一个任务。
2)上游不关心多下游执行结果,上游执行完发送到MQ,多下游订阅MQ。
3)异步返回执行时间长

 1、死信队列多了一个过期的机制,到期会自动去尝试消费,通过死信交换机做匹配,选择想要的消费失败的消息。
消息中间件是在消息传输过程中保存消息的容器。队列的主要目的是提供路由并保证消息的传递。
特点:
1异步处理模式
2多个应用程序调用关系为松耦合关系
传递模型:
1、点多点模型PTP
每个消息只用一个消费者
发送者和接收者没有时间依赖
接受者确认消息接受和处理成功
2、发布-订阅模型Pub/Sub
一对多关系,通过订阅主题,发布者建立一个订阅,订阅者保持持续的活动状态以接收消息。
每个消息可以有多个订阅者
客户端只有订阅后才能接收到消息,有时间依赖。
持久订阅 订阅关系建立后,消息不会消失,不管订阅者是否都在线
非持久订阅 订阅者为了接受消息,必须一直在线
 

 3、安装步骤:

1.使用docker查询rabbitmq的镜像

# docker search rabbitmq

2.安装镜像

安装name为rabbitmq的这里是直接安装最新的,如果需要安装其他版本在rabbitmq后面跟上版本号即可

# docker pull rabbitmq

 3.运行mq:

需要注意的是-p 5673:5672 解释:-p 外网端口:docker的内部端口 ,你们可以改成自己的外网端口号,我这里映射的外网端口是5673那么程序连接端口就是用5673

#docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5673:5672 rabbitmq

 通过docker ps -a 查看部署的mq容器id,在通过 docker exec -it 容器id /bin/bssh 进入容器内部在
运行:rabbitmq-plugins enable rabbitmq_management

说明: 有些用docker exec -it 容器id /bin/bash 执行这个命令会报如下错:

那你可以把脚本类型 /bin/bash,尝试换为 /bin/sh 试一下

 分享:Docker安装Rabbitmq超详细教程_Hi梅的博客-优快云博客_docker rabbitmq

### 如何使用 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 ``` 以上步骤展示了从基础安装到高级集群搭建整个过程中涉及的关键环节和技术要点。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值