集羣主機信息:node
主機IP | 主機名 |
---|---|
10.0.0.101(做爲主節點) | node1 |
10.0.0.102 | node2 |
10.0.0.103 | node3 |
一、按照上一篇博客《單機版Rabbitmq部署 》,裏面的安裝步驟在三臺虛擬機上都一樣操做,先安裝好單機版rabbitmq服務器
二、三臺機器的/etc/hosts都加入下面的內容:
10.0.0.101 node1
10.0.0.102 node2
10.0.0.103 node2cookie
三、中止掉三臺的服務,修改兩臺備節點node2和node3機器上的rabbitmq的cookie文件內容,改爲和node1同樣的內容:app
1)修改從節點node2上面 .erlang.cookie 文件權限ide
[root@node2 ~]# cd /var/lib/rabbitmq/ #注意,.erlang.cookie通常狀況下是在這個位置,可是在部署有一套特殊環境的時候遇到.erlang.cookie是在/root下面,有一些機器在erlang的安裝目錄下面還有一個.erlang.cookie文件。所以在這裏找不到文件的時候,find命令搜索一下 [root@node2 rabbitmq]# chmod 755 .erlang.cookie #由於/var/lib/rabbitmq/.erlang.cookie 只讀文件,所以在修改以前須要將文件權限改爲可讀寫的權限,能夠暫時改爲755
2)刪除node2節點.erlang.cookie文件內容,將node1節點的.erlang.cookie內容填進去。node3節點也相同操做code
3)而後分別查看主節點node1和從節點node2和node3上面.erlang.cookie文件的內容,已經變成了同樣server
[root@node1 ~]# cat /var/lib/rabbitmq/.erlang.cookie ABBMUFNDBMXKVEFSPVAY [root@node2 ~]# cat /var/lib/rabbitmq/.erlang.cookie ABBMUFNDBMXKVEFSPVAY [root@node3 ~]# cat /var/lib/rabbitmq/.erlang.cookie ABBMUFNDBMXKVEFSPVAY
而後修改從節點node2和node3cookie文件權限blog
[root@node2 ~]#chmod 400 /var/lib/rabbitmq/.erlang.cookie #必定要改爲400再啓動,不然啓動的時候會報錯的!!!) [root@node3 ~]#chmod 400 /var/lib/rabbitmq/.erlang.cookie
四、從新啓動兩個從節點服務:
node1主節點不須要重啓。
萬一主節點node1須要重啓,啓動方式也和原來的方式同樣,由於cookie文件沒有變化,而且須要訪問、登陸rabbitmq
[root@node1 rabbitmq]# service rabbitmq-server start Starting rabbitmq-server (via systemctl): [ 肯定 ]
node2和node3用 rabbitmq-server -detached命令啓動,由於修改了原來的cookie文件,使用service rabbitmq-server start啓動,會報錯,沒法啓動:進程
先kill掉從節點node2和node3節點的rabbitmq服務進程,再分別從新啓動:
啓動node2節點:
[root@node2 rabbitmq]# rabbitmq-server -detached Warning: PID file not written; -detached was passed.
啓動node3節點:
[root@node3 rabbitmq]# rabbitmq-server -detached Warning: PID file not written; -detached was passed.
五、配置三臺服務器的主從集羣——node1做爲主節點,那麼在node2和node3上面都執行下面的命令:
#rabbitmqctl stop_app #rabbitmqctl reset #rabbitmqctl join_cluster rabbit@node1 # rabbit@node1裏面的node1是主節點的主機名,注意修改 #rabbitmqctl start_app
注意:若是三臺主機的防火牆必須開啓,那麼在執行這幾個步驟以前就要確認主機之間的1567二、567二、1567四、4369和25672端口是否互通,不然這幾個步驟會失敗,報錯找不到主節點
六、在node2和node3上配置好以後,再在主節點node1上面查看狀態,出現下面的狀態就是已經好了
[root@node1 rabbitmq]# rabbitmqctl cluster_status Cluster status of node rabbit@node1 [{nodes,[{disc,[rabbit@node1,rabbit@node2,rabbit@node3]}]}, {running_nodes,[rabbit@node3,rabbit@node2,rabbit@node1]}, {cluster_name,<<"rabbit@node1">>}, {partitions,[]}, {alarms,[{rabbit@node3,[]},{rabbit@node2,[]},{rabbit@node1,[]}]}]
七、頁碼訪問檢測,訪問主節點頁面http://10.0.0.101:15672/#/ 可以在界面看到三個節點
到這裏,Rabbitmq集羣就部署好啦
單機版Rabbitmq部署:http://www.javashuo.com/article/p-tfcqshgq-bv.html