RocketMQ:高可用機制

RocketMQ分布式集群是通過Broker節(jié)點的Master和Slave配合達(dá)到高可用性的桃犬。

Master和Slave的區(qū)別:在Broker的配置文件中,參數(shù) brokerId的值為0表明這個Broker是Master鲫凶,大于0表明這個Broker是 Slave,同時brokerRole參數(shù)也會說明這個Broker是Master還是Slave。

Master角色的Broker支持讀和寫,Slave角色的Broker僅支持讀陌选,也就是Producer只能和Master角色的Broker連接寫入消息;Consumer可以連接 Master角色的Broker,也可以連接Slave角色的Broker來讀取消息咨油。

PS:Master和Slave的職責(zé)沒什么好說的您炉,實際上所有的產(chǎn)品,Master一般都支持讀和寫役电,而Slave只支持讀赚爵。比如我們在《Redis:主從復(fù)制》和《Redis:集群》中提到的Redis主節(jié)點和Redis從節(jié)點其實也是這樣的職責(zé)劃分。

1. 消息消費高可用

在Consumer的配置文件中法瑟,并不需要設(shè)置是從Master讀還是從Slave 讀冀膝,當(dāng)Master不可用或者繁忙的時候,Consumer會被自動切換到從Slave 讀瓢谢。有了自動切換Consumer這種機制畸写,當(dāng)一個Master角色的機器出現(xiàn)故障后,Consumer仍然可以從Slave讀取消息氓扛,不影響Consumer程序枯芬。這就達(dá)到了消費端的高可用性。

2. 消息發(fā)送高可用

在創(chuàng)建Topic的時候采郎,把Topic的多個Message Queue創(chuàng)建在多個Broker組上(相同Broker名稱千所,不同 brokerId的機器組成一個Broker組),這樣當(dāng)一個Broker組的Master不可用后蒜埋,其他組的Master仍然可用淫痰,Producer仍然可以發(fā)送消息。 RocketMQ目前還不支持把Slave自動轉(zhuǎn)成Master整份,如果機器資源不足待错, 需要把Slave轉(zhuǎn)成Master,則要手動停止Slave角色的Broker烈评,更改配置文 件火俄,用新的配置文件啟動Broker。

3. 消息主從復(fù)制

如果一個Broker組有Master和Slave讲冠,消息需要從Master復(fù)制到Slave上瓜客,有同步和異步兩種復(fù)制方式。

3.1 同步復(fù)制

同步復(fù)制方式是等Master和Slave均寫成功后才反饋給客戶端寫成功狀態(tài)竿开。

在同步復(fù)制方式下谱仪,如果Master出故障, Slave上有全部的備份數(shù)據(jù)否彩,容易恢復(fù)疯攒,但是同步復(fù)制會增大數(shù)據(jù)寫入 延遲,降低系統(tǒng)吞吐量列荔。

3.2 異步復(fù)制

異步復(fù)制方式是只要Master寫成功即可反饋給客戶端寫成功狀態(tài)卸例。

在異步復(fù)制方式下称杨,系統(tǒng)擁有較低的延遲和較高的吞吐量,但是如果Master出了故障筷转,有些數(shù)據(jù)因為沒有被寫 入Slave姑原,有可能會丟失。

3.3 配置

同步復(fù)制和異步復(fù)制是通過Broker配置文件里的brokerRole參數(shù)進(jìn)行設(shè)置的呜舒,這個參數(shù)可以被設(shè)置成ASYNC_MASTER锭汛、 SYNC_MASTERSLAVE三個值中的一個袭蝗。

3.4 刷盤和復(fù)制

實際應(yīng)用中要結(jié)合業(yè)務(wù)場景唤殴,合理設(shè)置刷盤方式和主從復(fù)制方式, 尤其是SYNC_FLUSH方式到腥,由于頻繁地觸發(fā)磁盤寫動作朵逝,會明顯降低性能。通常情況下乡范,應(yīng)該把Master和Slave配置成ASYNC_FLUSH的刷盤方式配名,主從之間配置成SYNC_MASTER的復(fù)制方式,這樣即使有一臺機器出故障晋辆,仍然能保證數(shù)據(jù)不丟渠脉。

PS:還記得Redis的主從復(fù)制嗎?如果不記得可以參考《Redis:主從復(fù)制》哦瓶佳。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芋膘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子霸饲,更是在濱河造成了極大的恐慌为朋,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厚脉,死亡現(xiàn)場離奇詭異习寸,居然都是意外死亡,警方通過查閱死者的電腦和手機器仗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門融涣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來童番,“玉大人精钮,你說我怎么就攤上這事√旮” “怎么了轨香?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長幼东。 經(jīng)常有香客問我臂容,道長科雳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任脓杉,我火速辦了婚禮糟秘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘球散。我一直安慰自己尿赚,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布蕉堰。 她就那樣靜靜地躺著凌净,像睡著了一般。 火紅的嫁衣襯著肌膚如雪屋讶。 梳的紋絲不亂的頭發(fā)上冰寻,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音皿渗,去河邊找鬼斩芭。 笑死,一個胖子當(dāng)著我的面吹牛羹奉,可吹牛的內(nèi)容都是我干的秒旋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼诀拭,長吁一口氣:“原來是場噩夢啊……” “哼迁筛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起耕挨,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤细卧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后筒占,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贪庙,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年翰苫,在試婚紗的時候發(fā)現(xiàn)自己被綠了止邮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡奏窑,死狀恐怖导披,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情埃唯,我是刑警寧澤撩匕,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站墨叛,受9級特大地震影響止毕,放射性物質(zhì)發(fā)生泄漏模蜡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一扁凛、第九天 我趴在偏房一處隱蔽的房頂上張望忍疾。 院中可真熱鬧,春花似錦谨朝、人聲如沸膝昆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荚孵。三九已至,卻和暖如春纬朝,著一層夾襖步出監(jiān)牢的瞬間收叶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工共苛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留判没,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓隅茎,卻偏偏與公主長得像澄峰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子辟犀,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,955評論 2 355