集群架构图
1.修改 3 台机器的主机名称 vim /etc/hostname 分别改为 node0,node1,node2
2.配置各个节点的 hosts 文件,让各个节点都能互相识别对方
vim /etc/hosts
192.168.149.129(第一台主机的ip) node0
192.168.149.130(第二台主机的ip) node1
192.168.149.131(第三台主机的ip) node2
3.以确保各个节点的 cookie 文件使用的是同一个值
在 node0 上执行操作命令
scp /var/lib/rabbitmq/.erlang.cookie root@node1:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/.erlang.cookie
4.启动 RabbitMQ 服务,顺带启动 Erlang 虚拟机和 RbbitMQ 应用服务(在三台节点上分别执行以 下命令)
5.在节点 1 执行
rabbitmqctl stop_app (rabbitmqctl stop 会将 Erlang 虚拟机关闭,rabbitmqctl stop_app 只关闭 RabbitMQ 服务)
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node0
rabbitmqctl start_app(只启动应用服务)
6.在节点 2 执行
rabbitmqctl stop_app (rabbitmqctl stop 会将 Erlang 虚拟机关闭,rabbitmqctl stop_app 只关闭 RabbitMQ 服务)
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app(只启动应用服务)
7.集群状态
rabbitmqctl cluster_status
8.需要重新设置用户
创建账号
rabbitmqctl add_user admin 123
设置用户角色
rabbitmqctl set_user_tags admin administrator
设置用户权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
9.解除集群节点(node1 和 node2 机器分别执行)
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
rabbitmqctl cluster_status
10.在node0 机器上执行
rabbitmqctl forget_cluster_node rabbit@node1