1. 准备3台 centos服务器 192.168.233.128 192.168.233.130 192.168.233.131
防火墙放开 集群端口, 这里一并把所有rabbitmq用到的端口都放开
firewall-cmd --zone=public --add-port=4369/tcp --permanent
firewall-cmd --zone=public --add-port=5671-5672/tcp --permanent
firewall-cmd --zone=public --add-port=25672/tcp --permanent
firewall-cmd --zone=public --add-port=35672-35682/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --zone=public --add-port=61613-61614/tcp --permanent
firewall-cmd --zone=public --add-port=1883/tcp --permanent
firewall-cmd --zone=public --add-port=8883/tcp --permanent
firewall-cmd --zone=public --add-port=15674-15675/tcp --permanent
firewall-cmd --reload
2. 修改host映射 修改 /etc/hosts 文件 ,方便3台机器访问
添加如下 ,添加后重启 3台机器
192.168.233.128 rabbitmq1
192.168.233.130 rabbitmq2
192.168.233.131 rabbitmq3
3. 修改cookie文件, 统一成一个key , [每个erlang程序都一个cookie]
这个cookie 可以在 rabbitmq的日志中 查找到
如图 cookie 文件就在 这个 home dir 目录中
cd /var/lib/rabbitmq
ls -a --这个是查找目录下所有文件. cookie文件默认是隐藏的
用这个 .erlang.cookie文件中的 key 替换掉 rabbitmq 2,3 中的key ,使 3 台服务器的 .erlang.cookie中的内容一致
4. 集群搭建 参考官网 https://www.rabbitmq.com/clustering.html
根据官网介绍: 我们把rabbitmq2 加入到 rabbitmq1的集群中
在 rabbitmq2 上 停止 rabbitmq
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmq1
rabbitmqctl start_app
查看 集群状态
rabbitmqctl cluster_status
发现 nodes节点已经变成2个了, 同理 把rabbitmq3加入 rabbitmq1集群中
5. 集群搭建完成后, 添加rabbitmq用户
rabbitmqctl add_user test test //添加用户,后面两个参数分别是用户名和密码,我这都用test了。
rabbitmqctl set_permissions -p / test ".*" ".*" ".*" //添加权限
rabbitmqctl set_user_tags test administrator //修改用户角色
然后登录 ui页面 http://192.168.233.128:15672/#/
发现三个 info中 都是disc 都是磁盘节点
如果想 把节3点改成 内存节点 , 参考官网 http://www.rabbitmq.com/clustering.html
在 rabbitmq3 上执行
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app
可以看到 info中 disc变成RAM了
其他集群命令如: 从集群删除 某节点, 参考官网 都有
原文:https://www.cnblogs.com/xtxtx/p/9077892.html