文章目录
-
- 环境准备
- 安装docker
- 修改host(每个节点都修改)
- 安装rabbitmq单机
- 安装rabbitmq集群
-
- 创建目录(每个节点)
- 启动
- 加入集群
- 检查集群状态
环境准备
节点名称 | ip地址 |
---|---|
node1 | 192.168.130.20 |
node2 | 192.168.130.19 |
node3 | 192.168.130.21 |
安装docker
略
修改host(每个节点都修改)
第一个名称为主机的名称 第二个是搭建集群用到的名称(–hostname)
192.168.130.20 rq-node1
192.168.130.19 rq-node2
192.168.130.21 rq-node3
安装rabbitmq单机
mkdir -p /root/rabbitm_sg/data
docker run -d --network=host \
--hostname rq-node --name rq-node \
-v /root/rabbitmq_sg/data:/var/lib/rabbitmq \
-p 15673:15672 -p 5673:5672 \
-e RABBITMQ_ERLANG_COOKIE='helloCookie' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin1234 \
rabbitmq:3.7-management
安装rabbitmq集群
创建目录(每个节点)
mkdir -p /root/rabbitmq/data
启动
node1
docker run -d --network=host \
--hostname rq-node1 --name rq-node1 \
-v /root/rabbitmq/data:/var/lib/rabbitmq \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_ERLANG_COOKIE='helloCookie' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin1234 \
rabbitmq:3.7-management
node2
docker run -d --network=host \
--hostname rq-node2 --name rq-node2 \
-v /root/rabbitmq/data:/var/lib/rabbitmq \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_ERLANG_COOKIE='helloCookie' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin1234 \
rabbitmq:3.7-management
node3
docker run -d --network=host \
--hostname rq-node3 --name rq-node3 \
-v /root/rabbitmq/data:/var/lib/rabbitmq \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_ERLANG_COOKIE='helloCookie' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin1234 \
rabbitmq:3.7-management
RABBITMQ_ERLANG_COOKIE 需要保持一致 内容任意(集群同步需要)
加入集群
node1
docker exec -it rq-node1 sh
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
node2
docker exec -it rq-node2 sh
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rq-node1
rabbitmqctl start_app
node3
docker exec -it rq-node3 sh
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rq-node1
rabbitmqctl start_app
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
检查集群状态
进入容器 执行以下命令
rabbitmqctl cluster_status
也可以用浏览器打开某个节点:http://192.168.130.20:15672
输入用户名密码(上面设置的)登录后查看Nodes