RocketMQ 集群平滑運維
前言
在 RocketMQ 集群的運維實踐中,無論線上 Broker 節(jié)點啟動和關(guān)閉,還是集群的擴縮容,都希望是平滑的,業(yè)務(wù)無感知。正所謂 “隨風(fēng)潛入夜,潤物細(xì)無聲” ,本文以實際發(fā)生的案例竄起系列平滑操作。
優(yōu)雅摘除節(jié)點
自建機房 4 主 4 從、異步刷盤、主從異步復(fù)制。有一天運維同學(xué)遺失其中一個 Master 節(jié)點所有賬戶的密碼,該節(jié)點在集群中運行正常,然不能登陸該節(jié)點機器終究存在安全隱患,所以決定摘除該節(jié)點。
如何平滑地摘除該節(jié)點呢?
直接關(guān)機,有部分未同步到從節(jié)點的數(shù)據(jù)會丟失,顯然不可行。線上安全的指導(dǎo)思路“先摘除流量”,當(dāng)沒有流量流入流出時,對節(jié)點的操作是安全的。
1. 摘除寫入流量
我們可以通過關(guān)閉 Broker 的寫入權(quán)限,來摘除該節(jié)點的寫入流量。RocketMQ 的 broker 節(jié)點有 3 種權(quán)限設(shè)置,brokerPermission=2 表示只寫權(quán)限,brokerPermission=4 表示只讀權(quán)限,brokerPermission=6 表示讀寫權(quán)限。通過 updateBrokerConfig 命令將 Broker 設(shè)置為只讀權(quán)限,執(zhí)行完之后原該 Broker 的寫入流量會分配到集群中的其他節(jié)點,所以摘除前需要評估集群節(jié)點的負(fù)載情況。
bin/mqadmin updateBrokerConfig -b x.x.x.x:10911 -n x.x.x.x:9876 -k brokerPermission -v 4
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option Per
運維
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。