技術(shù)管理篇5一技術(shù)演變史(14)

昨天扛稽,我們聊了存儲(chǔ)集群的分工和協(xié)作。今天滑负,我們繼續(xù)這個(gè)話(huà)題在张。

節(jié)點(diǎn)間數(shù)據(jù)傳遞

Leader節(jié)點(diǎn)接收到新的信息后,怎么傳遞給其他節(jié)點(diǎn)呢矮慕。這個(gè)信息可能是新插入的數(shù)據(jù)帮匾,可能是數(shù)據(jù)的更新,也可能是刪除一些數(shù)據(jù)痴鳄。一種傳遞的方式是把指令信息本身傳遞給其他節(jié)點(diǎn)瘟斜,其他節(jié)點(diǎn)接收到指令后,再重新執(zhí)行一下。這種方式實(shí)現(xiàn)上比較簡(jiǎn)單螺句,但是問(wèn)題是有可能會(huì)造成數(shù)據(jù)的不一致虽惭,比如數(shù)據(jù)庫(kù)的SQL指令會(huì)用到now函數(shù),兩次執(zhí)行的效果是不一樣的蛇尚。

另外一種傳遞方式是將變化后數(shù)據(jù)完全同步出來(lái)芽唇,這種方式也有問(wèn)題,就是可能需要傳遞的數(shù)據(jù)特別多取劫。比如我們將一個(gè)字段的數(shù)值做了更新匆笤,因?yàn)橛绊懥怂袛?shù)據(jù),這就意味著我們要把所有數(shù)據(jù)發(fā)送出來(lái)谱邪。

我們可以綜合兩種方式疚膊,取長(zhǎng)補(bǔ)短,根據(jù)指令不同來(lái)選擇不同的傳播方式虾标。

另外寓盗,我們需要格外注意,節(jié)點(diǎn)間這種信息同步任務(wù)璧函,是需要占用節(jié)點(diǎn)計(jì)算資源和存儲(chǔ)的傀蚌。我們不能讓同步任務(wù)影響到正常的對(duì)外服務(wù),兩類(lèi)任務(wù)需要做好隔離蘸吓。一般我們會(huì)把同步信息記錄在操作日志里善炫,同時(shí),每個(gè)節(jié)點(diǎn)都要有獨(dú)立的端口和線(xiàn)程來(lái)處理兩類(lèi)任務(wù)库继。

最終一致性

我們看到箩艺,Leader節(jié)點(diǎn)把信息同步到整個(gè)集群是需要時(shí)間的,這個(gè)時(shí)間段內(nèi)集群內(nèi)部的信息是不一致的宪萄。如果這時(shí)候訪(fǎng)問(wèn)到集群的非Leader節(jié)點(diǎn)艺谆,拿到的數(shù)據(jù)可能是舊的。

這個(gè)問(wèn)題怎么解決拜英。首先需要看我們使用數(shù)據(jù)的場(chǎng)景静汤。如果信息及時(shí)性要求不高,允許一定程度的延遲居凶。那我們就不需要做額外的處理虫给。我們只需要保證數(shù)據(jù)最終是一致的就可以。

如果及時(shí)性要求很高侠碧,我們就需要想辦法解決了抹估。比如針對(duì)這種特殊情況,我們可以在業(yè)務(wù)代碼中強(qiáng)制只從Leader節(jié)點(diǎn)讀取數(shù)據(jù)弄兜。但這么做不太優(yōu)雅药蜻,業(yè)務(wù)代碼中會(huì)耦合這種非功能性邏輯瓷式,侵入性比較高。我們可以把這部分代碼抽取出來(lái)谷暮,自動(dòng)檢測(cè)哪些數(shù)據(jù)正在被更新,更新的這個(gè)階段盛垦,對(duì)這部分?jǐn)?shù)據(jù)的請(qǐng)求只從Leader節(jié)點(diǎn)讀取湿弦。大家可以再想想有沒(méi)有更好的方式。

業(yè)務(wù)分工

我們可以看到腾夯,存儲(chǔ)集群是通過(guò)Leader節(jié)點(diǎn)來(lái)統(tǒng)一協(xié)調(diào)的颊埃。這樣做的好處是信息傳遞的效率比較高,只要Leader確認(rèn)了就可以蝶俱,再由他去通知大家班利。但是,當(dāng)數(shù)據(jù)量日益增加榨呆,集群規(guī)模越來(lái)越大罗标,Leader節(jié)點(diǎn)會(huì)越來(lái)越力不從心。就像人一樣积蜻,每個(gè)管理者都有他的管理半徑闯割,節(jié)點(diǎn)越多,需要同步和管理的代價(jià)就越大竿拆。

那怎么辦呢宙拉?我們可以繼續(xù)按照業(yè)務(wù)進(jìn)行垂直分工。一個(gè)大的集群分工成多個(gè)小的集群丙笋,每個(gè)小集群再由各自的Leader節(jié)點(diǎn)來(lái)組織谢澈。

按照什么原則來(lái)分工呢?一個(gè)簡(jiǎn)單的原則就是耦合度御板。首先是業(yè)務(wù)耦合度锥忿,就是說(shuō)這兩個(gè)業(yè)務(wù)從邏輯上是否分類(lèi)合理;另外就是數(shù)據(jù)耦合度怠肋,就是這兩塊的數(shù)據(jù)是否經(jīng)常會(huì)關(guān)聯(lián)在一起查詢(xún)缎谷。

無(wú)論怎么分工,可能總會(huì)有一些數(shù)據(jù)分布在不同的集群灶似,但是偶爾需要關(guān)聯(lián)查詢(xún)列林,那怎么辦。一種辦法就是在計(jì)算集群中去做酪惭,由業(yè)務(wù)代碼分別讀取各自數(shù)據(jù)希痴,然后在內(nèi)存中進(jìn)行拼裝。這種辦法因響應(yīng)比較及時(shí)春感,但是無(wú)法處理大量的數(shù)據(jù)砌创。

另外一種辦法就是通過(guò)離線(xiàn)計(jì)算來(lái)做虏缸,離線(xiàn)計(jì)算的話(huà)題以后我們?cè)倭摹5沁@種方式的及時(shí)性不夠好嫩实。需要計(jì)算完成后刽辙,把中間結(jié)果數(shù)據(jù)放到其他存儲(chǔ)集群中來(lái)實(shí)時(shí)訪(fǎng)問(wèn)。大家需要跟進(jìn)自己的業(yè)務(wù)特點(diǎn)來(lái)自己選擇甲献。

總結(jié)一下宰缤,存儲(chǔ)集群通過(guò)日志記錄在各個(gè)節(jié)點(diǎn)中同步信息,達(dá)到數(shù)據(jù)的最終一致性晃洒。隨著集群節(jié)點(diǎn)規(guī)模的增大慨灭,需要根據(jù)業(yè)務(wù)做集群劃分,降低超大集群的管理成本球及。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末氧骤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吃引,更是在濱河造成了極大的恐慌筹陵,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镊尺,死亡現(xiàn)場(chǎng)離奇詭異惶翻,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)鹅心,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)吕粗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人旭愧,你說(shuō)我怎么就攤上這事颅筋。” “怎么了输枯?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵议泵,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我桃熄,道長(zhǎng)先口,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任瞳收,我火速辦了婚禮碉京,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘螟深。我一直安慰自己谐宙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布界弧。 她就那樣靜靜地躺著凡蜻,像睡著了一般搭综。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上划栓,一...
    開(kāi)封第一講書(shū)人閱讀 52,713評(píng)論 1 312
  • 那天兑巾,我揣著相機(jī)與錄音,去河邊找鬼忠荞。 笑死蒋歌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的钻洒。 我是一名探鬼主播奋姿,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼锄开,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼素标!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起萍悴,我...
    開(kāi)封第一講書(shū)人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤头遭,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后癣诱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體计维,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年撕予,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鲫惶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡实抡,死狀恐怖欠母,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吆寨,我是刑警寧澤赏淌,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站啄清,受9級(jí)特大地震影響六水,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辣卒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一掷贾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧荣茫,春花似錦胯盯、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)憎乙。三九已至,卻和暖如春叉趣,著一層夾襖步出監(jiān)牢的瞬間泞边,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工疗杉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阵谚,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓烟具,卻偏偏與公主長(zhǎng)得像梢什,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子朝聋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 上一篇嗡午,我們把后端服務(wù)分為計(jì)算和存儲(chǔ)兩大職能,同時(shí)聊了計(jì)算集群的分工和協(xié)作冀痕。今天荔睹,我們繼續(xù)聊一下存儲(chǔ)集群的部分。 ...
    靳順隆閱讀 689評(píng)論 0 51
  • feisky云計(jì)算言蛇、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,867評(píng)論 0 5
  • 上一篇我們聊了前端的發(fā)展歷程僻他。今天,我們繼續(xù)聊一下后端技術(shù)的變化腊尚。 互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)徹底改變了人們的生活吨拗,同時(shí)系...
    靳順隆閱讀 714評(píng)論 0 51
  • 《騎驢找馬》 抱歉,不管是工作還是愛(ài)情婿斥,我無(wú)法接受你的騎驢找馬劝篷。 《春風(fēng)十里》 春風(fēng)十里,不如你中有我受扳,我中有你携龟。...
    何鯨洛閱讀 212評(píng)論 0 1
  • 又是一個(gè)小周末华望,對(duì)于現(xiàn)代年輕人又是一個(gè)放松的日子蕊蝗。 有人會(huì)說(shuō), 過(guò)一個(gè)小周末赖舟,你有另一半陪嗎蓬戚? 我想說(shuō),我沒(méi)有宾抓。 ...
    窗爸爸家居閱讀 372評(píng)論 4 4