RabbitMQ学习(一) 多服务器下RabbitMQ集群搭建
参考资料:
感谢博主:https://blog.csdn.net/qq_28364999/article/details/80939577#comments
1. 集群搭建
1.1 准备工作:
(1)安装docker
https://blog.csdn.net/yangkang1122/article/details/88706470
(2)获取RabbitMQ镜像
docker search rabbitmq
docker pull docker.io/rabbitmq:3.6.15-management
2.集群搭建:
(1)主机、容器、端口信息如下
hostname 容器名 IP PORT
node1 rabbit1 192.168.100.163 4369、5671、5672、15671、15672、25672
node2 rabbit2 192.168.100.179 4369、5671、5672、15671、15672、25672
node3 rabbit3 192.168.100.172 4369、5671、5672、15671、15672、25672
(2)在各个主机根目录下建立目录用于存储rabbitmq容器数据
mkdir /data/rabbitmq
chmod 775 -R /data/rabbitmq
(3)在第一台主机上创建容器rabbit1
docker run -d --hostname node1 \
--add-host="node1":192.168.100.163 \
--add-host="node2":192.168.100.179 \
--add-host="node3":192.168.100.172 \
--name rabbit1 \
-p "4369:4369" \
-p "5671:5671" \
-p "5672:5672" \
-p "15671:15671" \
-p "15672:15672" \
-p "25672:25672" \
-v /data/rabbitmq:/var/lib/rabbitmq:z \
-e RABBITMQ_DEFAULT_USER=user01 \
-e RABBITMQ_DEFAULT_PASS=password01 \
-e RABBITMQ_ERLANG_COOKIE='secret cookie here' \
docker.io/rabbitmq:3.6.15-management
(4)在其余两台主机上创建容器rabbitmq2、rabbitmq3:
docker run -d --hostname node2 \
--add-host="node1":192.168.100.163 \
--add-host="node2":192.168.100.179 \
--add-host="node3":192.168.100.172 \
--name rabbit2 \
-p "4369:4369" \
-p "5671:5671" \
-p "5672:5672" \
-p "15671:15671" \
-p "15672:15672" \
-p "25672:25672" \
-v /data/rabbitmq:/var/lib/rabbitmq:z \
-e RABBITMQ_DEFAULT_USER=user01 \
-e RABBITMQ_DEFAULT_PASS=password01 \
-e RABBITMQ_ERLANG_COOKIE='secret cookie here' \
docker.io/rabbitmq:3.6.15-management
docker run -d --hostname node3 \
--add-host="node1":192.168.100.163 \
--add-host="node2":192.168.100.179 \
--add-host="node3":192.168.100.172 \
--name rabbit3 \
-p "4369:4369" \
-p "5671:5671" \
-p "5672:5672" \
-p "15671:15671" \
-p "15672:15672" \
-p "25672:25672" \
-v /data/rabbitmq:/var/lib/rabbitmq:z \
-e RABBITMQ_DEFAULT_USER=user01 \
-e RABBITMQ_DEFAULT_PASS=password01 \
-e RABBITMQ_ERLANG_COOKIE='secret cookie here' \
docker.io/rabbitmq:3.6.15-management
(5)创建集群
进入容器rabbit1并用户user01设置为管理员
docker exec –it rabbit1 bash
rabbitmqctl set_user_tags user01 administrator
进入其他两个节点,将其加入集群
docker exec –it rabbit2 bash
或者
docker exec –it rabbit3 bash
以磁盘节点方式加入,@后为主机名,不含域名:
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app
以内存节点方式加入:
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@node1
rabbitmqctl start_app
至此,RabbitMQ集群已创建完成,可以用命令rabbitmqctl cluster_status查看集群状态信息.