RocketMQ集羣生產環境master節點節點優雅下線

1,現狀描述

由於某些原因,導致rocketmq集羣中某個master節點不能正常服務,需要爲master節點做流量遷移動作,已確保消息不丟失配置策略爲:

    • 異步刷盤

    • 主從異步複製

如果直接下線該master,由於主從異步複製,可能導致部分消息來不及複製到slave造成消息丟失。所以該方案不可行。
另一種方案選擇:關閉該broker的寫入權限,待該broker不再有寫入和消費時,再下線該節點。

2.關閉broker寫權限


2表示只寫權限,4表示只讀權限,6表示讀寫權限

#bin/mqadmin updateBrokerConfig -b broker:port -n nameserver:prot -k brokerPermission -v 4

3.觀察節點流量

#bin/mqadmin clusterList -n nameserver:prot

image.png觀察InTPS和OutTPS,理想情況都爲零時,並不再變化時,則該節點可下線了。
然而,在實際過程中並沒有出現爲零的情況,InTPS和OutTPS總是有值,有時個位數字有時是兩位數字,大部分時間在20多的值。此刻要分析下broker目前的消費狀態。

4.觀察broker消費狀態

#sh bin/mqadmin brokerConsumeStats -b broker:prot -n nameserver:prot >> brokerConsumeStats.tmp

查看brokerConsumeStats.tmp,主要查看#LastTime和#Diff。發現%RETRY%重試類隊列#Diff有很微小(1或者3)的數據,而其他topic均爲0. LastTime時間最新也是發生在%RETRY%隊列中。此時可以讓該節點下線操作。image.png

5.borker讀寫權限恢復

#bin/mqadmin updateBrokerConfig -b broker:port -n nameserver:prot -k brokerPermission -v 6

觀察各節點流量是否正常

#bin/mqadmin clusterList -n nameserver:prot

image.png






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章