集群部署步驟
0 前期準(zhǔn)備
集群中的所有節(jié)點(diǎn)安裝部署好了rabbitmq,并且所有的配置保持一致,例如配置 /etc/rabbitmq/rabbitmq.config
1 集群部署
例如要對(duì) node1 / node2 / node3 三個(gè)rabbitmq服務(wù)器搭建集群,其中node1為首節(jié)點(diǎn)
- 在三個(gè)節(jié)點(diǎn)服務(wù)器上的
/etc/hosts文件的內(nèi)容進(jìn)行添加如下內(nèi)容,將三個(gè)節(jié)點(diǎn)的服務(wù)器IP,創(chuàng)建名稱
192.168.1.1 node1
192.168.1.2 node2
192.168.1.3 node3
- node1節(jié)點(diǎn)的rabbitmq進(jìn)程可以拉起來(lái)
rabbitmq-server -detached,還有rabbitmq-management,但是其他節(jié)點(diǎn)就不要拉起來(lái)了,然后將node1的文件/var/lib/rabbitmq/.erlang.cookie內(nèi)容復(fù)制替換到node2、node3的該文件中,只有保證每個(gè)節(jié)點(diǎn)的該文件內(nèi)容一致,才能保證集群之間的認(rèn)證是正常,可以互相聯(lián)通- 由于文件
/var/lib/rabbitmq/.erlang.cookie的屬性默認(rèn)是 400 ,所以在修改文件內(nèi)容時(shí),需要執(zhí)行如下命令:
- 由于文件
chmod 777 /var/lib/rabbitmq/.erlang.cookie
vi /var/lib/rabbitmq/.erlang.cookie # 修改內(nèi)容
chmod 400 /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
- 除了node1以外的所有節(jié)點(diǎn),拉起rabbitmq進(jìn)程,命令如下;
rabbitmq-server -detached
# node2作為disk節(jié)點(diǎn)
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbitmq@node1
rabbitmqctl start_app
# node3作為ram節(jié)點(diǎn)
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbitmq@node1
rabbitmqctl start_app
2 檢查集群
集群部署注意事項(xiàng)
-
啟動(dòng)app之前和之后的狀態(tài)對(duì)比
image.png - 在部署集群時(shí),如果集群中的首節(jié)點(diǎn)存在的用戶,在之后的節(jié)點(diǎn)上沒(méi)有該用戶時(shí),集群是不會(huì)存在該用戶的,需要重新創(chuàng)建,新創(chuàng)建的用戶在集群所有節(jié)點(diǎn)上都可以查看到
-
集群的所有節(jié)點(diǎn)需要都打開(kāi) rabbitmq_management,才可以在web上查看到節(jié)點(diǎn)的狀態(tài)信息。并且查看的地址,必須是集群的首節(jié)點(diǎn),例如集群的首節(jié)點(diǎn)是node1,然后node2加入了node1,那么兩節(jié)點(diǎn)都打開(kāi)了 rabbitmq_management 之后,需要通過(guò) node1節(jié)點(diǎn)來(lái)查看集群的狀態(tài)
image.png

