MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

如何通过Docker搭建一套RabbitMQ的测试环境?

2024-12-11 13:29 huorong 精选文章 5 ℃ 0 评论

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

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言