rabbitmq-3.8.9集群

需求

因项目要升级rabbitmq集群,需在测试环境搭建。

环境

系统 IP 软件版本 主机名
centos7.6 10.208.50.27 3.8.9 mq1
centos7.6 10.208.50.28 3.8.9 mq2
centos7.6 10.208.50.35 3.8.9 mq3

 

 

 

 

 

三台机器分别修改主机名和hosts

hostnamectl set-hostname mq1

hostnamectl set-hostname mq2

hostnamectl set-hostname mq3

cat <<EOF>> /etc/hosts
10.208.50.27 mq1
10.208.50.28 mq2
10.208.50.35 mq3
EOF

安装程序

#以下步骤三台都要操作

yum install wget -y

wget http://10.208.39.147/dl/rabbitmq/erlang-23.1.3-1.el7.x86_64.rpm
wget http://10.208.39.147/dl/rabbitmq/rabbitmq-server-3.8.9-1.el7.noarch.rpm
yum localinstall erlang-23.1.3-1.el7.x86_64.rpm rabbitmq-server-3.8.9-1.el7.noarch.rpm -y

配置

# 我这里需要修改 RabbitMQ 的默认数据

mkdir -p /data/rabbitmq/{mnesia,log}chown -R rabbitmq.rabbitmq /data/rabbitmq/

cat <<EOF> /etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia
RABBITMQ_LOG_BASE=/data/rabbitmq/log
EOF

chown -R rabbitmq.rabbitmq /etc/rabbitmq/
systemctl start rabbitmq-server
systemctl status rabbitmq-server
rabbitmq-plugins enable rabbitmq_management

搭建集群

#在mq1操作

scp /var/lib/rabbitmq/.erlang.cookie mq2:/var/lib/rabbitmq

scp /var/lib/rabbitmq/.erlang.cookie mq3:/var/lib/rabbitmq

# mq2、mq3 操作
chmod 400 /var/lib/rabbitmq/.erlang.cookie

#复制cookie后要重启一下服务,不然会报错(看网上其他帖子没重启服务,可能只有我遇到了吧)

systemctl restart rabbitmq-server

rabbitmqctl stop_app

rabbitmqctl reset


# 设置为内存节点
rabbitmqctl join_cluster --ram rabbit@mq1
rabbitmqctl start_app

rabbitmqctl cluster_status

#启动web管理插件,mq1操作

rabbitmq-plugins enable rabbitmq_management
rabbitmqctl add_user admin admin123
rabbitmqctl set_user_tags admin administrator --设置admin为administrator权限

镜像集群

镜像队列机制就是将队列在 N 个节点之间设置主从关系,消息会在 N 个节点之间进行自动同步,且如果其中一个节点不可用,并不会导致消息丢失或服务不可用的情况,提升 MQ 集群的整体高可用性。
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

 

posted @ 2021-01-14 17:13  xiaosafengfei  阅读(206)  评论(0编辑  收藏  举报