1.机器准备
准备三台机器,这里我使用的是三台ec2
- 172.31.58.42 rabbitmq1
- 172.31.57.84 rabbitmq2
- 172.31.53.148 rabbitmq3
2.安装docker
三台机器分别执行:
yum install -y docker
3.拉取镜像并运行
- 拉取镜像
docker pull rabbitmq:3.7.7-management
- 三台机器分别运行
docker run -d --hostname rabbitmq1 --add-host=rabbitmq2:172.31.57.84 --add-host=rabbitmq3:172.31.53.148 --restart=unless-stopped --name rabbitmq1 --net host -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest -e RABBITMQ_ERLANG_COOKIE='rabbit_mq' -v /data/rabbitmq/data:/var/lib/rabbitmq rabbitmq:3.7.7-management
docker run -d --hostname rabbitmq2 --add-host=rabbitmq1:172.31.58.42 --add-host=rabbitmq3:172.31.53.148 --restart=unless-stopped --name rabbitmq2 --net host -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest -e RABBITMQ_ERLANG_COOKIE='rabbit_mq' -v /data/rabbitmq/data:/var/lib/rabbitmq rabbitmq:3.7.7-management
docker run -d --hostname rabbitmq3 --add-host=rabbitmq1:172.31.58.42 --add-host=rabbitmq2:172.31.57.84 --restart=unless-stopped --name rabbitmq3 --net host -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest -e RABBITMQ_ERLANG_COOKIE='rabbit_mq' -v /data/rabbitmq/data:/var/lib/rabbitmq rabbitmq:3.7.7-management
注意:节点间通过认证Erlang-cookie进行通信,因此三个rabbitmq必须使用相同的Erlang-cookie。
- 启动完成后分别三台查看三台机器的容器是否成功运行
这里我们随机选择一台
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c4a27913b420 rabbitmq:3.7.7-management "docker-entrypoint.s…" 4 days ago Up 4 days rabbitmq1
4.加入集群
后续步骤可参考
使用Docker构建RabbitMQ高可用负载均衡集群
注意:参考作者haproxy搭建时,请使用三台机器的IP。