上一篇介紹了如何安裝RabbitMQ,下面介紹如何搭建RabbitMQ集群境蜕。
- 使用上篇?jiǎng)?chuàng)建的虛擬機(jī)復(fù)制新的虛擬rabbitmq3
設(shè)置新的文件名:centos_rabbitmq_3
選擇“完全復(fù)制”
- 配置centos_rabbitmq_3的網(wǎng)絡(luò)模式习贫,使虛擬機(jī)之間能夠通信。如下圖所示,打開(kāi)virtual box的個(gè)人偏好設(shè)置茫陆,在網(wǎng)絡(luò)選項(xiàng)中,添加“僅主機(jī)(host-only)網(wǎng)絡(luò)選項(xiàng)“擎析。
接著設(shè)置centos_rabbitmq_3的網(wǎng)絡(luò)選項(xiàng)簿盅,添加第2個(gè)網(wǎng)卡。如下圖
- 啟動(dòng)rabbitmq3虛擬機(jī)揍魂,如下圖所示桨醋,由于是根據(jù)虛擬機(jī)rabbitmq2的復(fù)制,因此主機(jī)名相同现斋。
修改主機(jī)名喜最,使用命令
vi /etc/hostname
重啟虛擬機(jī)(命令:reboot),可以看到下圖庄蹋,主機(jī)名已改瞬内。
- 查看主機(jī)rabbitmq3的局域網(wǎng)ip,使用命令
ip address
如果發(fā)現(xiàn)局域網(wǎng)IP與其它其它虛擬機(jī)相同,則關(guān)閉虛擬機(jī)限书,修改rabbitmq3的網(wǎng)卡2下配置的mac地址虫蝶,如下圖:
- 執(zhí)行rabbitmq狀態(tài),執(zhí)行命令:rabbitmqctl status倦西。如下圖:
由于rabbitmq3是復(fù)制的能真,因此rabbitmq節(jié)點(diǎn)的配置還是rabbitmq2虛擬機(jī)上的配置。由于配置與機(jī)器主機(jī)名不一致,導(dǎo)致啟動(dòng)失敗粉铐。因此使用如下方式修改節(jié)點(diǎn)名稱疼约,在/etc/rabbitmq文件夾下,修改rabbitmq-env.conf文件(如果沒(méi)有蝙泼,則創(chuàng)建此文件)忆谓,如下圖:
文件內(nèi)容是:NODENAME=rabbit3@rabbitmq3
重啟虛擬機(jī),再次執(zhí)行:rabbitmqctl status,檢查消息節(jié)點(diǎn)是否正常踱承,如下圖:
-
修改虛擬機(jī)的hosts文件倡缠,保證虛擬機(jī)之間能夠通過(guò)機(jī)器名訪問(wèn),如下圖:
- 檢查防火墻配置茎活,保證rabbitmq集群使用的端口都能正常訪問(wèn)昙沦。執(zhí)行如下命令查看防火墻配置:view /etc/sysconfig/iptables
如果沒(méi)有此文件,則可以使用如下命令安裝防火墻:
yum install iptables
yum install iptables-server
如果配置文件有修改载荔,則修改完成后執(zhí)行如下命令:
systemctl restart iptables
8.檢查rabbitmq3當(dāng)前節(jié)點(diǎn)的集群狀態(tài)盾饮,執(zhí)行如下命令:
rabbitmqctl cluster_status
結(jié)果如下圖:
9.停止rabbitmq3的消息節(jié)點(diǎn),并重置配置懒熙。執(zhí)行如下命令:
rabbitmqctl stop_app
rabbitmqctl reset
10.在rabbitmq3虛擬機(jī)上丘损,執(zhí)行如下命令把消息節(jié)點(diǎn)加入rabbitmq1的集群。
rabbitmqctl join_cluster rabbit1@rabbitmq1
結(jié)果如下圖:
11.在rabbitmq3虛擬機(jī)上工扎,執(zhí)行如下命令檢查集群狀態(tài):
rabbitmqctl cluster_status
結(jié)果如下圖:
- 在主磁盤節(jié)點(diǎn)rabbitmq1虛擬機(jī)上徘钥,執(zhí)行如下命令檢查集群狀態(tài)
rabbitmqctl cluster_status
結(jié)果如下圖:
至此,一個(gè)簡(jiǎn)單的rabbitmq集群搭建完成肢娘。在產(chǎn)線環(huán)境環(huán)境下呈础,需要做很多其它節(jié)點(diǎn)配置項(xiàng)。
[在平時(shí)使用啟動(dòng)虛擬機(jī)集群時(shí)經(jīng)常出現(xiàn)rabbitmq節(jié)點(diǎn)無(wú)法啟動(dòng)橱健,可以使用如下命令重啟當(dāng)前rabbitmq節(jié)點(diǎn):
systemctl restart rabbitmq-server.service
]