一、 正常運(yùn)行中集群狀態(tài)(雙機(jī)雙主)以及宕機(jī)狀態(tài)
準(zhǔn)備三臺(tái)機(jī)器192.168.213.145/128/129般婆;192.168.213.129為宕機(jī)恢復(fù)集群所用機(jī)器;
雙主集群:
192.168.213.145:30011
192.168.213.128:30011
正常運(yùn)行狀態(tài):
cd ~/rocketmq4.1/bin/
sh mqadmin clusterList -n 192.168.213.145:30011 查看集群節(jié)點(diǎn)信息
sh mqadmin topicList -n 192.168.213.145:30011 查看Topic信息
sh mqadmin statsAll -n 192.168.213.145:30011 查看24小時(shí)內(nèi)每秒的消息吞吐量挣柬,以及消息生產(chǎn)消費(fèi)總量
宕機(jī)時(shí)狀態(tài):
在broker-a主機(jī)192.168.213.145上進(jìn)行集群查詢钥顽,狀態(tài)異常庇忌;
二舞箍、 部署新的RocketMQ節(jié)點(diǎn)(namesrv和broker節(jié)點(diǎn))
RocketMQ版本以及配置文件保持和原來(lái)的一致(這里以RocketMQ4.1.0為例)
舊配置文件
mqnamesrv.properties
listenPort=30011
broker-a.properties
brokerClusterName=TEST_Cluster
brokerName=broker-a
brokerId=0
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
namesrvAddr=192.168.213.145:30011;192.168.213.128:30011
brokerIP1=192.168.213.145
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=10911
broker-b.properties
brokerClusterName=TEST_Cluster
brokerName=broker-b
brokerId=0
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
namesrvAddr=192.168.213.145:30011;192.168.213.128:30011
brokerIP1=192.168.213.128
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=10911
假如broker-b所在機(jī)器宕機(jī),新的broker-b配置文件broker-b.properties
broker-b.properties
brokerClusterName=TEST_Cluster
brokerName=broker-b
brokerId=0
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
namesrvAddr=192.168.213.145:30011;192.168.213.129:30011
brokerIP1=192.168.213.129
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=10911
最終的broker-a配置文件broker-a.properties
broker-a.properties
brokerClusterName=TEST_Cluster
brokerName=broker-a
brokerId=0
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
namesrvAddr=192.168.213.145:30011;192.168.213.129:30011
brokerIP1=192.168.213.145
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=10911
三皆疹、 數(shù)據(jù)遷移
宕機(jī)節(jié)點(diǎn)數(shù)據(jù)遷移疏橄,進(jìn)行集群恢復(fù)
同步宕機(jī)機(jī)器上數(shù)據(jù)文件(或者磁盤(pán)掛載)至新機(jī)器:
在宕機(jī)機(jī)器(192.168.213.128)上分別執(zhí)行以下同步命令:
rsync -avP ~/ rocketmq4.1/logs docker@192.168.213.129:/home/docker/data/
rsync -avP ~/store docker@192.168.213.129:/home/docker/data/
在192.168.213.129上創(chuàng)建軟鏈指向拷貝而來(lái)的數(shù)據(jù)目錄:
注意:
由于從宕機(jī)機(jī)器同步而來(lái)的store目錄下存在abort文件(由于異常關(guān)閉而未來(lái)得及刪除的文件),所以當(dāng)啟動(dòng)新節(jié)點(diǎn)的時(shí)候會(huì)有一個(gè)校驗(yàn)數(shù)據(jù)的過(guò)程略就。
注意V4.1.0和V3.5.8(以某項(xiàng)目152.14/15為例)在此步驟的區(qū)別:
在宕機(jī)機(jī)器上先后執(zhí)行如下命令:
rsync -avP ~/ rocketmq/logs docker@192.168.213.129:/home/docker/data/
rsync -avP ~/rocketmq/store docker@192.168.213.129:/home/docker/data/
在新節(jié)點(diǎn)機(jī)器上創(chuàng)建數(shù)據(jù)指向軟鏈命令:
cd ~/rocketmq/
ln –s ~/data/store store
ln –s ~/data/logs logs
2捎迫、丟棄宕機(jī)節(jié)點(diǎn)數(shù)據(jù),進(jìn)行集群恢復(fù)
直接進(jìn)入下一步残制,啟動(dòng)提前準(zhǔn)備好的新節(jié)點(diǎn)立砸。
四掖疮、 啟動(dòng)新節(jié)點(diǎn)初茶,檢查集群狀態(tài)
在192.168.213.129上rocketmq的bin目錄下執(zhí)行以下命令啟動(dòng)新的節(jié)點(diǎn):
nohup sh mqnamesrv -c ../conf/mqnamesrv.properties &
nohup sh mqbroker -c ../conf/2m-noslave/broker-b.properties &
在192.168.213.129上執(zhí)行命令,出現(xiàn)如圖為正常浊闪;
sh mqadmin clusterList -n 192.168.213.129:30011
sh mqadmin topicList -n 192.168.213.129:30011
在192.168.213.145上執(zhí)行命令恼布,出現(xiàn)下圖為正常;
sh mqadmin clusterList -n 192.168.213.145:30011
宕機(jī)域名切換至新加入集群節(jié)點(diǎn)所在機(jī)器IP192.168.213.129搁宾,逐個(gè)重啟舊的未宕機(jī)節(jié)點(diǎn)192.168.213.145
sh mqshutdown broker
sh mqshutdown namesrv
修改未宕機(jī)節(jié)點(diǎn)所在機(jī)器192.168.213.145上rocketmq的配置文件
舊環(huán)境配置文件:
把上圖中紅色框線部分修改為新的namesrv服務(wù)地址折汞,如下圖:
重新啟動(dòng)舊的未宕機(jī)節(jié)點(diǎn)192.168.213.145
nohup sh mqnamesrv -c ../conf/mqnamesrv.properties &
檢查集群狀態(tài),以及運(yùn)行情況:
在192.168.213.145:執(zhí)行命令sh mqadmin clusterList -n 192.168.213.145:30011
sh mqadmin statsAll -n 192.168.213.145:30011
在192.168.213.129:執(zhí)行命令sh mqadmin clusterList -n 192.168.213.129:30011
sh mqadmin statsAll -n 192.168.213.129:30011
如上圖盖腿,集群狀態(tài)恢復(fù)正常爽待。