本文将详细介绍如何使用 Docker Compose 安装 RabbitMQ 集群,并进行功能验证。我们将搭建一个包含三个节点的 RabbitMQ 集群,以实现高可用性和负载均衡。
一、准备工作
- 安装 Docker 和 Docker Compose:请确保您的服务器上已经安装了 Docker 和 Docker Compose。如果尚未安装,请参考 Docker 官方文档进行安装。
- 创建工作目录:在服务器上创建一个目录,用于存放 RabbitMQ 的配置文件和 Docker Compose 文件。例如,我们创建一个名为
rabbitmq_cluster
的目录。
二、配置 Docker Compose 文件
进入 rabbitmq_cluster
目录,并创建一个名为 docker-compose.yml
的文件。在该文件中,我们将定义 RabbitMQ 集群的配置。
version: '3'
services:
rabbitmq1:
image: rabbitmq:3-management
hostname: rabbitmq1
ports:
- "5672:5672"
- "15672:15672"
environment:
- RABBITMQ_ERLANG_COOKIE=secret_cookie
- RABBITMQ_NODE_PORT=5672
- RABBITMQ_NODENAME=rabbit@rabbitmq1
volumes:
- ./rabbitmq.config:/etc/rabbitmq/rabbitmq.config
- ./enabled_plugins:/etc/rabbitmq/enabled_plugins
rabbitmq2:
image: rabbitmq:3-management
hostname: rabbitmq2
links:
- rabbitmq1
environment:
- RABBITMQ_ERLANG_COOKIE=secret_cookie
- RABBITMQ_NODE_PORT=5672
- RABBITMQ_NODENAME=rabbit@rabbitmq2
- RABBITMQ_CLUSTERED=true
- RABBITMQ_CLUSTER_WITH=rabbit@rabbitmq1
volumes:
- ./rabbitmq.config:/etc/rabbitmq/rabbitmq.config
- ./enabled_plugins:/etc/rabbitmq/enabled_plugins
rabbitmq3:
image: rabbitmq:3-management
hostname: rabbitmq3
links:
- rabbitmq1
environment:
- RABBITMQ_ERLANG_COOKIE=secret_cookie
- RABBITMQ_NODE_PORT=5672
- RABBITMQ_NODENAME=rabbit@rabbitmq3
- RABBITMQ_CLUSTERED=true
- RABBITMQ_CLUSTER_WITH=rabbit@rabbitmq1
volumes:
- ./rabbitmq.config:/etc/rabbitmq/rabbitmq.config
- ./enabled_plugins:/etc/rabbitmq/enabled_plugins
三、创建 RabbitMQ 配置文件和插件文件
在 rabbitmq_cluster
目录中创建以下两个文件:
rabbitmq.config:此文件用于配置 RabbitMQ 集群。
rabbitmq.config内容如下
[
{rabbit, [
{cluster_nodes, {['rabbit@rabbitmq1', 'rabbit@rabbitmq2', 'rabbit@rabbitmq3'], disc}}
]}
].
enabled_plugins:此文件用于启用 RabbitMQ 插件。
enabled_plugins:内容如下
[rabbitmq_management].
四、运行 Docker Compose 命令启动集群
在 rabbitmq_cluster
目录中运行以下命令启动 RabbitMQ 集群:
docker-compose up -d
五、验证 RabbitMQ 集群状态和功能
等待一段时间,让 RabbitMQ 节点之间完成自动集群。您可以通过访问 RabbitMQ 管理界面来验证集群状态和功能。在浏览器中输入 http://<YOUR_SERVER_IP>:15672
,使用默认用户名 guest
和密码 guest
登录。在“Nodes”选项卡下,您应该能看到三个节点,并且它们的状态都是“running”。下面我们将进行一些功能验证:
- 创建队列:在“Queues”选项卡下,点击“Add a new queue”按钮,创建一个新的队列。输入队列名称并点击“Create”按钮。您应该能看到新创建的队列显示在列表中。这验证了集群的队列创建功能正常。
- 发布消息:在“Publish message”选项卡下,选择刚才创建的队列并输入一条消息内容。点击“Publish message”按钮发布消息。您应该能看到消息成功发布并被消费者接收的提示。这验证了集群的消息发布和消费功能正常。
- 扩展集群节点:您可以尝试添加更多的 RabbitMQ 节点到集群中,以扩展集群的规模和性能。通过编辑
docker-compose.yml
文件并添加新的服务定义,然后重新运行docker-compose up -d
命令即可添加新的节点。这验证了集群的扩展性能力。