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乾貨。
rabbitmqctl
stop