Understanding the architecture-Internode communications (gossip)

Gossip 是一個(gè)對等網(wǎng)絡(luò)通信協(xié)議,節(jié)點(diǎn)間斷性的交換他們自身的狀態(tài)信息以及其他它們知道的節(jié)點(diǎn)信息库糠。gossip 每中和集群中最多三個(gè)節(jié)點(diǎn)交換信息司忱。不僅交換他們自身信息北秽,而且還交換通過之前的gossip了解的其他節(jié)點(diǎn)信息蜡峰,因此所有的節(jié)點(diǎn)能夠很快的了解集群中的其他節(jié)點(diǎn)狀況了袁。一條gossip 信息會有一個(gè)相關(guān)聯(lián)的版本號,因此當(dāng)進(jìn)行g(shù)ossip交換的時(shí)候事示,對于一個(gè)特定的節(jié)點(diǎn)早像,它的老信息就會被最新的狀態(tài)所覆蓋僻肖。

為了阻止gossip通信可能出現(xiàn)的問題肖爵,集群中所有的節(jié)點(diǎn)都有相同的seed nodes列表。這一點(diǎn)在一個(gè)節(jié)點(diǎn)第一次啟動的時(shí)候尤其重要臀脏。默認(rèn)情況下劝堪,一個(gè)節(jié)點(diǎn)在隨后的重啟過程中會記住已經(jīng)gossip的其他節(jié)點(diǎn)冀自。seed node就是為了新加入到集群中的節(jié)點(diǎn)bootstrapping the gossip process使用的。不是為了單點(diǎn)失敗秒啦,也沒有其他特別的目的熬粗。(我理解是說種子節(jié)點(diǎn)的作用是:每個(gè)node都是一樣的種子節(jié)點(diǎn),當(dāng)一個(gè)新的節(jié)點(diǎn)加入時(shí)余境,它是沒有任何其他節(jié)點(diǎn)的信息驻呐,因此它通過種子節(jié)點(diǎn)拿到其他節(jié)點(diǎn)的信息,之后 重啟之類的就不需要和種子節(jié)點(diǎn)通信了芳来,因?yàn)闀蛄谢约褐癵ossip到的信息含末,重啟時(shí)會replay,只有新加入的node即舌,啥也不知道因此需要通過種子節(jié)點(diǎn)知道佣盒,種子節(jié)點(diǎn)可以解決2個(gè)節(jié)點(diǎn)同時(shí)加入 可能出現(xiàn) A不知道B, B不知道A的情況)

注意:

在多數(shù)據(jù)中心的集群顽聂,確保每個(gè)數(shù)據(jù)中心至少有一個(gè)節(jié)點(diǎn)在seed list中肥惭。為了容錯建議每個(gè)數(shù)據(jù)中心指派多個(gè)seed node,否則當(dāng)一個(gè)節(jié)點(diǎn)bootstrap時(shí),需要同其他數(shù)據(jù)中心進(jìn)行g(shù)ossip紊搪。

不建議把每個(gè)節(jié)點(diǎn)都設(shè)置為seed node,因?yàn)闀黾泳S護(hù)的成本以及降低了gossip的性能蜜葱。gossip優(yōu)化并不是特別重要,但是建議使用一個(gè)小的seed 列表(每個(gè)數(shù)據(jù)中心3個(gè)節(jié)點(diǎn)最佳)

Failure detection and recovery

失敗檢測是從gossip的狀態(tài)和歷史獲取信息耀石,判斷系統(tǒng)中的一個(gè)節(jié)點(diǎn)是否down了或者已經(jīng)恢復(fù)了笼沥。Cassandra 利用這個(gè)信息避免將客戶端的請求路由到任何時(shí)候有可能不可到達(dá)的節(jié)點(diǎn)。同時(shí) Cassandra 通過Dynamic Snitch?避免將客戶端請求路由到那些存活的但是性能比較差的節(jié)點(diǎn)上娶牌。

gossip過程能夠跟蹤其他節(jié)點(diǎn)的狀態(tài)奔浅,通過直接(直接與某個(gè)節(jié)點(diǎn)gossip)或非直接(通過二手,三手等)方式诗良。相比于一個(gè)固定的閾值來標(biāo)記一個(gè)節(jié)點(diǎn)為fail汹桦,Cassandra 把網(wǎng)絡(luò)、負(fù)載鉴裹、歷史狀況等因素綜合考慮舞骆,用累加(accrual)檢測機(jī)制來計(jì)算每個(gè)節(jié)點(diǎn)的閾值。當(dāng)進(jìn)行g(shù)ossip交換時(shí)径荔,每個(gè)節(jié)點(diǎn)維護(hù)了其他節(jié)點(diǎn)gossip信息到達(dá)的滑動窗口時(shí)間督禽。可以通過配置phi_convict_threshold屬性來調(diào)節(jié)失敗檢測的敏感性总处。值越低狈惫,一個(gè)沒有應(yīng)答的節(jié)點(diǎn)更有可能被標(biāo)記為down。大部分情況下鹦马,默認(rèn)值就可以了胧谈。但是在Amazon EC2上需要增加到10或者12.(因?yàn)槌3龅骄W(wǎng)絡(luò)擁堵)忆肾,在不穩(wěn)定的網(wǎng)絡(luò)環(huán)境中(比如EC2),提高值到10或者12可以避免錯誤的失敗檢測菱肖。不建議使用高于12客冈,或者低于5的值。

節(jié)點(diǎn)失敗可能有各種各樣的原因造成的稳强,比如硬件失敗场仲,網(wǎng)絡(luò)故障。節(jié)點(diǎn)故障一般時(shí)間比較短退疫,但是也有可能持續(xù)很長時(shí)間的燎窘。因?yàn)橐粋€(gè)節(jié)點(diǎn)故障并不意味著永久地離開集群,不會自動從集群ring中移除蹄咖。其他的節(jié)點(diǎn)會周期性的嘗試和失敗的節(jié)點(diǎn)重新建立聯(lián)系褐健,看它們是否已經(jīng)回歸。想要永久的改變集群節(jié)點(diǎn)的membership澜汤,需要管理員通過nodetool utility工具明確的將節(jié)點(diǎn)添加進(jìn)來或者移除出集群蚜迅。

當(dāng)一個(gè)節(jié)點(diǎn)宕機(jī)后重新回歸,那么宕機(jī)這段時(shí)間俊抵,它上面的副本miss了需要寫入的數(shù)據(jù)谁不。一些repair機(jī)制可以恢復(fù)這些數(shù)據(jù),比如hinted handoffs以及通過nodetool repair手動repair徽诲。根據(jù)節(jié)點(diǎn)down掉的時(shí)間有多長來決定通過哪種repair機(jī)制來恢復(fù)數(shù)據(jù)刹帕,保持?jǐn)?shù)據(jù)的一致性。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谎替,一起剝皮案震驚了整個(gè)濱河市偷溺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钱贯,老刑警劉巖挫掏,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異秩命,居然都是意外死亡尉共,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門弃锐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來袄友,“玉大人,你說我怎么就攤上這事霹菊【珧迹” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長券敌。 經(jīng)常有香客問我,道長柳洋,這世上最難降的妖魔是什么待诅? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮熊镣,結(jié)果婚禮上卑雁,老公的妹妹穿的比我還像新娘。我一直安慰自己绪囱,他們只是感情好测蹲,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鬼吵,像睡著了一般扣甲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上齿椅,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天琉挖,我揣著相機(jī)與錄音,去河邊找鬼涣脚。 笑死示辈,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遣蚀。 我是一名探鬼主播矾麻,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼芭梯!你這毒婦竟也來了险耀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤玖喘,失蹤者是張志新(化名)和其女友劉穎胰耗,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芒涡,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柴灯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了费尽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赠群。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖旱幼,靈堂內(nèi)的尸體忽然破棺而出查描,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布冬三,位于F島的核電站匀油,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏勾笆。R本人自食惡果不足惜敌蚜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窝爪。 院中可真熱鬧弛车,春花似錦、人聲如沸蒲每。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邀杏。三九已至贫奠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間望蜡,已是汗流浹背叮阅。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留泣特,地道東北人浩姥。 一個(gè)月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像状您,于是被迫代替她去往敵國和親勒叠。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359