理解RabbitMQ的集羣原理可能須要花點功夫,可是配置RabbitMQ的集羣則很是容易。node
若是有防火牆,請提早開放相關端口:bash
1.修改hosts文件cookie
在三個節點的hosts分別加入集羣節點的配置信息:app
# 修改hosts文件 vi /etc/hosts # 加入集羣節點 192.168.0.101 rabbitmq01 192.168.0.102 rabbitmq02 192.168.0.103 rabbitmq03
2.同步erlang.cookie文件spa
在192.168.0.101節點執行:rest
# 將rabbitmq01節點的erlang.cookie同步到rabbitmq02和rabbitmq03 scp /var/lib/rabbitmq/.erlang.cookie rabbitmq02:/var/lib/rabbitmq/.erlang.cookie scp /var/lib/rabbitmq/.erlang.cookie rabbitmq03:/var/lib/rabbitmq/.erlang.cookie
也能夠手動拷貝。code
3.重啓rabbitmq01節點的rabbitmq服務server
在192.168.0.101節點執行:blog
# 重啓rabbitmq服務 systemctl restart rabbitmq-server
4.建立集羣rabbitmq
在192.168.0.102節點執行:
# 中止rabbitmq rabbitmqctl stop_app # 重置節點 rabbitmqctl reset # 加入rabbitmq01 rabbitmqctl join_cluster rabbit@rabbitmq01 # 啓動應用 rabbitmqctl start_app
在192.168.0.103節點執行:
# 中止rabbitmq rabbitmqctl stop_app # 重置節點 rabbitmqctl reset # 加入rabbitmq01 rabbitmqctl join_cluster rabbit@rabbitmq01 # 啓動應用 rabbitmqctl start_app
若是你要加入的節點類型是內存直接,能夠執行:
rabbitmqctl join_cluster --ram rabbit@rabbitmq01
5.查看集羣狀態
# 查看集羣狀態 rabbitmqctl cluster_status
結果:
[root@rabbitmq01 ~]# rabbitmqctl cluster_status Cluster status of node rabbit@rabbitmq01 ... [{nodes,[{disc,[rabbit@rabbitmq01,rabbit@rabbitmq02,rabbit@rabbitmq03]}]}, {running_nodes,[rabbit@rabbitmq03,rabbit@rabbitmq02,rabbit@rabbitmq01]}, {cluster_name,<<"rabbit@rabbitmq01">>}, {partitions,[]}, {alarms,[{rabbit@rabbitmq03,[]}, {rabbit@rabbitmq02,[]}, {rabbit@rabbitmq01,[]}]}]
6.也能夠在控制檯中查看