Centos7 RabbitMq搭建镜像队列集群
文章主要是针对三节点进行搭建
一、更改三台服务器名称
hostnamectl --static set-hostname mq-1 hostnamectl --static set-hostname mq-2 hostnamectl --static set-hostname mq-3
二、创建rabbitmq账号并设置密码(账号:rabbitmq 密码:rabbitmq@1234)
groupadd rabbitmq useradd -g rabbitmq rabbitmq echo rabbitmq:rabbitmq@1234|chpasswd
三、查看
echo 'rabbitmq ALL=(ALL)NOPASSWD:ALL' >> /etc/sudoers sed -i 's/Defaults requiretty/#Defaults requiretty/g' /etc/sudoers cat /etc/sudoers
四、下载四个依赖文件
#socat wget http://www.rpmfind.net/linux/centos/7.9.2009/o s/x86_64/Packages/socat-1.7.3.2-2.el7.x86_64.rpm #epel wget https://mirrors.tuna.tsinghua.edu.cn/epel/7/x8 6_64/Packages/e/epel-release-7-13.noarch.rpm #erland wget https://github.com/rabbitmq/erlang-rpm/release s/download/v23.2.1/erlang-23.2.1-1.el7.x86_64.rpm #rabbitmq
链接:https://pan.baidu.com/s/1pRqDJv4SuNllpBex8DFJ3w 提取码:ib8e 复制这段内容后打开百度网盘手机App,操作更方便哦
五、安装
yum -y install socat-1.7.3.2-2.el7.x86_64.rpm yum -y install epel-release-7-13.noarch.rpm yum -y install erlang-23.2.1-1.el7.x86_64.rpm rpm -ivh rabbitmq-server-3.8.9-1.el7.noarch.rpm
六、同步.erlang.cookie文件
删除mq-2和mq-3节点的.cookie文件然后分别从mq-1节点拷贝
cd /home/rabbitmq ll -a rm -f .erlang.cookie scp .erlang.cookie root@192.168.223.135:/home/rabbitmq/ #从mq-1节点直接拷贝
对mq-1,mq-2节点进行赋权限
chown rabbitmq:rabbitmq /home/rabbitmq/.erlang.cookie
chmod 600 /home/rabbitmq/.erlang.cookie
七、创建脚本
cat <<EOF> /home/rabbitmq/startRabbitmq.sh #!/bin/bash systemctl start rabbitmq-server EOF cat <<EOF> /home/rabbitmq/stopRabbitmq.sh #!/bin/bash systemctl stop rabbitmq-server EOF cat <<EOF> /home/rabbitmq/statusRabbitmq.sh #!/bin/bash systemctl status rabbitmq-server rabbitmqctl cluster_status EOF
八、以节点mq-1为基准创建集群,在mq-2,mq-3节点执行一下命令
rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@mq-1 rabbitmqctl start_app
1.查看节点mq-2,mq-3状态
rabbitmqctl cluster_status
2.更改编码集
vi /etc/profile
3.最后一行添加
export LC_ALL=en_US.UTF-8
4.立即生效
source /etc/profile
5.分别关闭防火墙
- 暂时关闭防火墙
systemctl stop firewalld
service iptables stop
- 永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
剔除故障节点并重置节点(遇到问题使用),在节点1中执行,剔除集群中的两个节点
rabbitmqctl -n rabbit@mq-1 forget_cluster_node rabbit@mq-2
先停止再执行
rm -rf /home/rabbitmq/mnesia
九、在节点mq-1中启动管理插件
rabbitmq-plugins enable rabbitmq_management
十、设置账号密码
rabbitmqctl add_user admin admin rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" rabbitmqctl set_user_tags admin administrator
十一、设置镜像队列
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
rabbitmqctl list_policies
十二、对防火墙开放指定端口(开放15672,5672端口)
防火墙状态:systemctl status firewalld.service Active: inactive (dead)/active(running) 开放指定端口(15672):firewall-cmd --add-port=15672/tcp --permanent 重新加载防火墙:firewall-cmd --reload