准备环境
- 准备三台服务器
系统 主机名 IP CentOS7.6 1810 rmq-01 192.168.2.130 CentOS7.6 1810 rmq-02 192.168.2.131 CentOS7.6 1810 rmq-03 192.168.2.132 - 配置各节点的hosts文件( vim /etc/hosts)
192.168.2.130 rmq-01
192.168.2.131 rmq-02
192.168.2.132 rmq-03
安装rabbitmq-server
- 各个节点上都安装rabbitmq-server
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
yum install erlang -y
cat > /etc/yum.repos.d/rabbit-server.repo <<EOF
[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/8/
gpgcheck=0
repo_gpgcheck=0
enabled=1
EOF
yum install rabbitmq-server -y
- 同步中一个节点的cookie到另外两个节点(节点之间通过cookie确定相互是否可通信)
在rmq-01 节点上执行
systemctl start rabbitmq-server.service
systemctl status rabbitmq-server.service
rsync -acvzP /var/lib/rabbitmq/.erlang.cookie 192.168.2.131:/var/lib/rabbitmq/
rsync -acvzP /var/lib/rabbitmq/.erlang.cookie 192.168.2.132:/var/lib/rabbitmq/
- 设置rabbitmq 启动时需要的环境变量(/etc/rabbitmq/rabbitmq-env.conf)
rmq-01 节点
echo "NODENAME=rabbit@rmq-01" >>/etc/rabbitmq/rabbitmq-env.conf
rmq-02 节点
echo "NODENAME=rabbit@rmq-02" >>/etc/rabbitmq/rabbitmq-env.conf
rmq-03 节点
echo "NODENAME=rabbit@rmq-03" >>/etc/rabbitmq/rabbitmq-env.conf
- 各个节点启动rabbitmq_management 插件
rabbitmq-plugins enable rabbitmq_management
配置集群和集群管理
- 把rmq-02 节点加入rmq-01(主节点),此时在rmq-02 节点上操作
systemctl start rabbitmq-server.service
systemctl status rabbitmq-server.service
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rmq-01
rabbitmqctl start_app
rabbitmqctl status
- 把rmq-03 节点加入rmq-01(主节点),此时在rmq-03 节点上操作
systemctl start rabbitmq-server.service
systemctl status rabbitmq-server.service
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rmq-01 #默认磁盘节点类型disc
rabbitmqctl start_app
rabbitmqctl status
- 改变集群节点类型,在需要改变类型节点上操作
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type ram | disc
rabbitmqctl start_app
- 集群删除节点rmq-03,在rmq-03 节点上操作
rabbitmqctl stop_app
rabbitmqctl forget_cluster_node rabbit@rmq-03###此时会报错,忽略即可
rabbitmqctl reset
- 查看集群的状态
rabbitmqctl cluster_status
rabbitmqctl set_cluster_name ha_rmq_cluster #设置集群名字
- 设置集群镜像模式
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"exactly", "ha-params":2, "ha-sync-mode":"automatic","ha-sync-batch-size":300000}'
账号权限管理
rabbitmqctl add_user admin Admin #创建账号并设置密码
rabbitmqctl set_user_tags admin administrator #给账号授权administrator 角色
rabbitmqctl set_permissions -p '/' admin'.*' '.*' '.*' #设置权限
rabbitmqctl delete_user admin #删除账号
rabbitmqctl change_password admin Newpassword #修改用户密码
rabbitmqctl list_users # 查看用户列表