环境准备
腾讯云服务器
mq1当作master
- IP:172.19.0.7
- hostname:VM-0-7-centos
mq2
- IP:172.19.0.11
- hostname:VM-0-11-centos
mq3
- IP:172.19.0.12
- hostname:VM-0-12-centos
三台服务器的/etc/hosts文件添加映射
- 172.19.0.7 VM-0-7-centos
- 172.19.0.11 VM-0-11-centos
- 172.19.0.12 VM-0-12-centos
1、搭建erlang集群
统一 erlang.cookie 文件中 cookie 值
必须使集群中也就是rabbitmq2,rabbitmq3这两台机器的.erlang.cookie 文件中 cookie 值一致,且权限为400只读。
该文件为隐藏文件,ll -a命令查看
scp /var/lib/rabbitmq/.erlang.cookie 172.19.0.11:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie 172.19.0.12:/var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
2、重启MQ服务
停止所有rabbitmq
rabbitmqctl stop
停止需要时间,几秒钟,没有停掉的,用kill -9 杀死
确保都停止了,用ps查看
ps -ef |grep rabbit
重启作为master的mq
rabbitmq-server start &
增加&,确保可以后台继续运行
3、mq1操作
停止app
rabbitmqctl stop_app
清除历史数据,否者集群搭建报错,该命令将rabbitmq节点重置还原到最初状态,需要注意的是它还原的是所有配置信息及数据,比如你自己设置的账号和密码也会被清除
rabbitmqctl reset
启动app
rabbitmqctl start_app
4、mq2操作
rabbitmqctl stop_app
清除历史数据,否者集群搭建报错
rabbitmqctl reset
修改/etc/hosts文件,映射mq1所在服务器的hostname和ip,在mq1服务器用ipp addr和hostname查看相关信息
加入集群
注意:
- rabbit@VM-0-7-centos中的rabbit:结点名,可以通过在mq1服务器上的
rabbitmqctl status
命令查看 - VM-0-7-centos:主机名,可以通过在mq1服务器上
hostname
命令查看 - –ram:集群节点类型,分布是ram|disc,默认是disc,
ram:内存节点,所有的数据都存储在内存中。
disc:磁盘节点,所有的数据都存储在磁盘中。
rabbitmqctl join_cluster --ram rabbit@VM-0-7-centos
启动app
rabbitmqctl start_app
5、mq3操作同上
6、验证
查看集群状态
rabbitmqctl status
rabbitmqctl cluster_status
控制台访问
由于执行了rabbitmqctl reset,需要重新设置账号密码,再登陆