接着上一篇单机部署的继续进行集群部署。
部署准备
- 3台CentOS 7的虚拟机,主机名分别设置为node-1、node-2、node-3
- HOSTS文件都配置3个的主机名IP映射
- 按照单机部署的方式,每台机器上都进行RabbitMQ的单机部署
普通集群部署
暂定node-1为主节点,node-2,node-3为从节点进行集群部署
- 由于RabbitMQ是依附于erlang进行通信,想要通信必须有相同的.erlang.cookie文件
查找该文件的路径
find / -name *.cookie
将node2,node3下的文件进行重命名,然后利用命令,将node-1下的文件copy到另外的两个节点。
scp /var/lib/rabbitmq/.erlang.cookie 192.168.8.117:/var/lib/rabbitmq/
将三台机器的cookie文件进行权限的赋权
chmod 400 /var/lib/rabbitmq/.erlang.cookie
- 重启服务
重新启动mq,这里需要注意,如果重新启动失败,可以kill掉所有和RabbitMQ相关的进程,然后在通过start命令进行启动
service rabbitmq-server restart
- 从节点设置
rabbitmqctl stop_app
rabbitmqctl reset
## --ram 指定内存节点类型,--disc指定磁盘节点类型
rabbitmqctl join_cluster --ram rabbit@node-2
rabbitmqctl start_app
- 查看状态
任意节点进行状态的查看
rabbitmqctl cluster_status
-
界面查看
镜像集群开启
-
在主节点下创建一个vhost:my-vhost
可以看到exchange的界面
- 主节点下设置策略
rabbitmqctl set_policy -p my-vhost ha "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
3.查看界面效果
-
新增queue
在任意的节点新增queue
其他节点查看
节点的移除
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app