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 ".*" ".*" ".*"