环境规划
# 例 vm01 为主机名# server1 vm01 192.168.1.10# server2 vm02 192.168.1.11
两台机器分别添加hots
# vim /etc/hosts192.168.1.10 vm01192.168.1.11 vm02
相互通信,cookie 必须保持一致,同步 RabbitMQ 的 cookie 文件:跨服务器拷贝 .erlang.cookie(隐藏文件,使用 ls -all 显示)
# 这里从192.168.1.10 拷贝至192.168.1.11scp /var/lib/rabbitmq/.erlang.cookie 192.168.1.11:/var/lib/rabbitmq/# 重启两台rabbitmq-serversystemctl restart rabbitmq-server
任选一台rabbitmq-server 加入另一台
# 这里在192.168.1.11 上加入192.168.1.10(vm02上操作)# 1. 停止服务rabbitmqctl stop_app# 2. 加入集群rabbitmqctl join_cluster rabbit@vm01# 3. 启动服务rabbitmqctl start_app# 4. 查看节点状态rabbitmqctl cluster_status# 显示如下 为加入集群成功Cluster status of node rabbit@vm02 ...[{nodes,[{disc,[rabbit@vm01,rabbit@vm02]}]},{running_nodes,[rabbit@vm01,rabbit@vm02]},{cluster_name,<<"rabbit@vm01">>},{partitions,[]}]...done.# 此时,RabbitMQ 的集群搭建完毕,但是默认采用的模式为“普通模式”,可靠性不高。# 需要 调整为镜像模式
镜像模式
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态一致。
# 192.168.1.10(vm01)上操作rabbitmqctl set_policy policy_renda "^" '{"ha-mode":"all"}'
设置好镜像模式后,在节点 A 增加了队列后,节点 B 也可以看到新增的队列。
# 简单验证# 在192.168.1.10 创建一个vhost ,在192.168.1.11 上查看[root@vm01 ~]# rabbitmqctl add_vhost testCreating vhost "test" ......done.[root@vm02 ~]# rabbitmqctl list_vhostsListing vhosts .../test...done.
