网站首页 > 精选文章 / 正文
RabbitMQ是一款功能强大的消息队列中间件,被用在分布式系统中用来进行多个系统之间的消息交换操作,为了更好的学些RabbitMQ的相关操作,我们需要构建对应的RabbitMQ的环境,但是对于初学者来讲,按照官网上的那一套方案去搭建RabbitMQ的环境有点复杂,与此同时,我们使用RabbitMQ主要还是学习编程语言的使用,所以这里笔者建议通过Docker来搭建RabbitMQ的测试环境。
前置条件
在开始RabbitMQ的环境搭建之前,首先需要确保在服务器环境上安装了Docker以及Docker Compose,如果没有可以参考笔者之前的博客如何安装Docker。
安装完成之后,接下来我们就来看看如何在通过Docker安装RabbitMQ的测试环境。
拉取RabbitMQ镜像
首先,我们需要从Docker Hub拉取RabbitMQ官方镜像,如下所示。
docker pull rabbitmq:3-management
这个官方的镜像包含了Rabbit MQ的核心功能以及他内置的一个管理页面,相比于自己安装的话,要方便很多,尤其在测试环境中通过这种方式可以减少很多的工作量。
启动RabbitMQ容器
获取完成镜像之后,我们就可以创建一个简单的测试容器来启动Rabbit MQ。如下所示。
docker run -d --name rabbitmq-test \
-p 5672:5672 \
-p 15672:15672 \
rabbitmq:3-management
- --name rabbitmq-test:为容器指定一个名称。
- -p 5672:5672:映射 RabbitMQ 的 AMQP 协议默认端口。
- -p 15672:15672:映射管理界面默认端口。
- rabbitmq:3-management:使用带管理界面的镜像。
执行完成之后,我们可以通过下面的命令来检查容器的运行状态。
docker ps
如果一切运行正常,就可以在http://localhost:15672地址上访问到对应的Rabbit MQ管理界面,然后AMQP应该在localhost:5672接口上启动监听。通过http://localhost:15672使用guest用户名密码登录之后,我们就可以看到RabbitMQ 的控制面板,包括队列、交换器、绑定、连接等信息。
通过Docker Compose配置RabbitMQ
当然为了方便对Rabbit MQ进行管理,我们可以通过Docker Compose来定义一套RabbitMQ的服务,我们可以创建一个docker-compose.yml文件,在文件中添加如下的内容,用来进行Rabbit MQ的管理。
version: '3.8'
services:
rabbitmq:
image: rabbitmq:3-management
container_name: rabbitmq-test
ports:
- "5672:5672"
- "15672:15672"
volumes:
- rabbitmq_data:/var/lib/rabbitmq
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin123
volumes:
rabbitmq_data:
- ports:暴露 AMQP 和管理界面的端口。
- volumes:将 RabbitMQ 数据持久化到本地,避免容器重启后数据丢失。
- environment:配置默认用户名和密码。
启动服务
我们可以通过如下的命令来启动Rabbit MQ的服务。
docker-compose up -d
然后通过如下的命令来查看容器运行的状态。
docker-compose ps
管理界面访问方式和前面一样,但用户名和密码已更改为admin和admin123。
测试RabbitMQ功能
RabbitMQ采用的是AMQP协议,我们可以通过Python的pika、Java的spring-rabbit来进行连接的测试工作。下面我们就来通过一个Python的示例来测试RabbitMQ是否创建正常。
import pika
# 连接到 RabbitMQ
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 创建队列
channel.queue_declare(queue='test_queue')
# 发送消息
channel.basic_publish(exchange='',
routing_key='test_queue',
body='Hello, RabbitMQ!')
print(" [x] Sent 'Hello, RabbitMQ!'")
# 关闭连接
connection.close()
运行以上代码后,可以在管理界面的队列中看到test_queue 收到了消息。说明整个的环境已经搭建正常了。
清理环境
完成相关的测试学习之后,我们可以通过如下的命令来删除容器
docker-compose down
如果在项目中没有用到Docker Compose,我们可以通过手动的方式来停止并且删除容器。
docker stop rabbitmq-test
docker rm rabbitmq-test
总结
通过上面的操作,我们就实现了使用Docker部署Rabbit MQ的测试环境的操作,并且配置了数据管理页面以及数据持久化服务操作,不管是通过Docker还是通过Docker Compose,都可以快速的启动并且使用这个RabbitMQ,如果想要进一步的学习RabbitMQ的其他的例如消息路由、TTL 设置、死信队列等操作,我们可以通过Docker部署更多的节点来实现模拟集群的测试。这种方式对于初学者比较友好,有兴趣的读者可以深入进行研究,遇到什么问题可以在评论区留言讨论。
Tags:rabbitmq management
猜你喜欢
- 2024-12-11 九步安装Rabbitmq集群
- 2024-12-11 SpringBoot 整合 RabbitMQ 实践
- 2024-12-11 Docker-Compose一键搭建MySQL,Redis,RabbitMQ,Kafka开发环境
- 2024-12-11 RabbitMQ安装并配置
- 2024-12-11 Rabbitmq 集群
- 2024-12-11 手把手教你搭建 RabbitMQ 集群
- 2024-12-11 超详细的RabbitMQ入门,看这篇就够了
- 2024-12-11 快速上手 RabbitMQ:使用 Docker 轻松搭建消息队列系统
- 2024-12-11 你都工作两年半了,还不会RabbitMQ?
- 2024-12-11 RabbitMQ CLI 管理工具 rabbitmqadmin(管理和监控)