Rabbitmq集羣部署

集羣主機信息: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集羣就部署好啦

單機版Rabbitmq部署:http://www.javashuo.com/article/p-tfcqshgq-bv.html

相關文章
相關標籤/搜索