1. 概述
老話說的好:做人腳踏實地,一步一個腳印,便定能戰勝一切困難,最終取得成功!!!
言歸正傳,之前我們聊了 RabbitMQ 單點服務的安裝,今天我們來聊聊 RabbitMQ 3.9.7 鏡像模式集群的搭建。
RabbitMQ 的鏡像模式集群能夠保證數據100%不丟失,實際工作中用的最多,實現也很簡單,通常由3個節點組成。
2. 場景說明
服務器A IP:192.168.1.22
服務器B IP:192.168.1.8
服務器C IP:192.168.1.144
服務器A hostname:zhuifengren1
服務器B hostname:zhuifengren2
服務器C hostname:zhuifengren3
這三台服務器都已經安裝了 RabbitMQ 3.9.7,並啟動正常。
單點 RabbitMQ 的安裝,可參見我的另一篇文章《RabbitMQ3.9.7在CentOS7中的安裝搭建》。
3. 鏡像模式集群的搭建
3.1 修改三台機器的名稱,並在hosts中進行設置(機器名稱隨意)
# vi /etc/hostname



# vi /etc/hosts

3.2 啟動3台服務器上的 RabbitMQ 服務
# /sbin/service rabbitmq-server start
3.3 在啟動狀態下,將服務器A上的 .erlang.cookie文件 拷貝到 服務器B 和 服務器C 上
# scp /var/lib/rabbitmq/.erlang.cookie 192.168.1.8:/var/lib/rabbitmq/
# scp /var/lib/rabbitmq/.erlang.cookie 192.168.1.144:/var/lib/rabbitmq/
3.4 使用 rabbitmqctl stop 命令停止3台服務器的RabbitMQ服務
# rabbitmqctl stop
注意:這里不能使用之前的 /sbin/service rabbitmq-server stop 命令,停止服務
如果出現無法停止的情況,可嘗試使用 /sbin/service rabbitmq-server stop 命令停止后,再使用 /sbin/service rabbitmq-server start 命令啟動,
然后再使用 rabbitmqctl stop 命令停止。
3.5 使用 rabbitmq-server -detached 命令啟動3台服務器
(有些慢,耐心等待,可以使用 lsof -i:5672 命令查看是否啟動)
# rabbitmq-server -detached
3.6 將從節點加入集群
我們這里將 服務器A 作為主節點,將 服務器B、服務器C 作為從節點
在 服務器B 和 服務器C 執行以下操作:
# rabbitmqctl stop_app
# rabbitmqctl reset
# rabbitmqctl join_cluster rabbit@zhuifengren1
# rabbitmqctl start_app
3.7 配置鏡像模式
在任意節點執行即可。
# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
3.8 查看集群狀態
# rabbitmqctl cluster_status

3.9 控制台效果



3.10 從集群中移除節點
1)在需要移除的節點上執行停止命令
# rabbitmqctl stop_app
2)在其他節點上執行移除節點命令
# rabbitmqctl forget_cluster_node rabbit@zhuifengren2
4. 綜述
今天聊了一下 RabbitMQ 3.9.7 鏡像模式集群的搭建,希望可以對大家的工作有所幫助。
歡迎幫忙點贊、評論、轉發、加關注 :)
關注追風人聊Java,每天更新Java干貨。
