RabbitMQ(六)镜像模式部署

一、服务器信息
1、服务器IP地址:10.30.20.80,10.30.20.90,10.30.20.125
2、集群信息:三个节点
3、rabbitmq部署版本:3.7.16
二、部署
1、配置文件

cat>/data/rabbitmq.conf<<EOF
loopback_users.guest = false
listeners.tcp.default = 5672
default_pass = 12345678
default_user = root
management.listener.port = 15672
management.listener.ssl = false
cluster_partition_handling=pause_minority 
EOF
参数:cluster_partition_handling=pause_minority
出现网络分区时,少数派中的节点在分区发生时会自动关闭,当分区结束时又会启动。
这里的关闭是指RabbitMQ application关闭,而Erlang VM并不关闭,这个类似于执行了rabbitmqctl stop_app命令。
处于关闭的节点会每秒检测一次是否可连通到剩余集群中,如果可以则启动自身的应用,相当于执行rabbitmqctl start_app命令
2、配置host

cat>>/etc/hosts<<EOF

10.30.20.80  test-dev-10-30-20-80
10.30.20.90  test-dev-10-30-20-90
10.30.20.125  test-dev-10-30-20-125
EOF

systemctl enable docker
systemctl start docker
3、在所有节点启动rabbitmq服务
docker run --name rabbitmq-3.7.16 \
-v /data/rabbitmq:/var/lib/rabbitmq \
-v /data/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf \
-e RABBITMQ_ERLANG_COOKIE="NLZZddHKCFBWQZEXasSVWXGD" \
--network=host -d rabbitmq:3.7.16-management
4、组建集群
在节点10.30.20.90和10.30.20.125
docker exec 容器ID  rabbitmqctl stop_app
docker exec 容器ID  rabbitmqctl join_cluster rabbit@test-dev-10-30-20-80
docker exec 容器ID  rabbitmqctl start_app
5、配置同步策略
在任意一个节点执行同步策略
docker exec 容器ID rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}' --apply-to all
6、配置监控用户
rabbitmqctl add_user monitoring monitoring
rabbitmqctl set_user_tags monitoring monitoring
rabbitmqctl set_permissions -p / monitoring ".*" ".*" ".*"

 

posted @ 2020-11-26 18:07  guoxianqi  阅读(428)  评论(0编辑  收藏  举报