分布式系統(tǒng)原理學(xué)習(xí)筆記

參考:https://mp.weixin.qq.com/s/rv7qMyGQuVwiFfPUeKeQ2w

1. 概念

1.1. 節(jié)點

1.2 異常情況

? ? 分布式環(huán)境下會遇到的問題

? ? 機器宕機

? ? 網(wǎng)路異常

? ? 分布式三態(tài):RPC調(diào)用執(zhí)行的結(jié)果可能有三個情況:成功、失敗谷朝、未知(超時)

? ? 存儲數(shù)據(jù)丟失:對于有狀態(tài)的節(jié)點來說,內(nèi)存數(shù)據(jù)丟失他炊,則狀態(tài)也會丟失,通常只能從其他節(jié)點讀取漾橙、恢復(fù)啦桌。

? ? 異常處理原則

1.3 副本

? ? 在分布式視同中為數(shù)據(jù)或服務(wù)提供的冗余。

? ? 副本一致性:幾種一致性

? ? ? ? ? ? 1. 強一致性

? ? ? ? ? ? 2. 單調(diào)一致性瑟慈。任何時刻航唆,任何用戶一旦讀到某個數(shù)據(jù)在某次更新后的值,這個用戶不會再讀到比這個值更舊的值渐白。

? ? ? ? ? ? 3. 會話一致性。任何用戶在某次會話內(nèi)的單調(diào)一致性纯衍。

? ? ? ? ? ? 4. 最終一致性栋齿。一旦更新成功,各個副本上的數(shù)據(jù)最終將達到完全一致的狀態(tài)襟诸,但是達到的時間不能保證瓦堵。

? ? ? ? ? ? 5. 弱一致性歌亲。

1.4 衡量分布式系統(tǒng)的指標(biāo)

? ? 性能:主要是吞吐量菇用、延遲、并發(fā)

? ? 可用性:可以用正常提供服務(wù)的時間和總時間的比例或者某個功能成功的次數(shù)和失敗次數(shù)的比例來衡量

? ? 可擴展性:通過擴展集群里的機器數(shù)量來提供系統(tǒng)性能惋鸥、存儲容量、計算能力的特性鹅龄。

? ? 一致性:一致性越高揩慕,使用起來約簡單。



2. 分布式系統(tǒng)原理

2.1 數(shù)據(jù)分布的方式

? ? 哈希算法

? ? 按數(shù)據(jù)范圍分布:IDC與LDC的實踐

? ? 按數(shù)據(jù)量分布

? ? 一致性哈希:1997年扮休,MIT的論文迎卤。為了在移除或者添加新服務(wù)器時玷坠,能盡量減少影響蜗搔。

????對存儲節(jié)點的哈希值進行計算八堡,將其存儲空間抽象為一個閉環(huán)樟凄,將存儲節(jié)點分配到環(huán)上兄渺。環(huán)上所有節(jié)點都有一個值缝龄。

? ? 對數(shù)據(jù)進行哈希計算挂谍,按順時針方向?qū)⑵溆成涞诫x其最近的節(jié)點上去叔壤。

? ? 如下圖口叙,節(jié)點計算的值如下炼绘,1,2妄田,3驮捍,…… 0 .數(shù)據(jù)hash值為1.3脚曾。則將該數(shù)據(jù)分配給節(jié)點2處理东且。

? ? 如果節(jié)點出現(xiàn)異常斟珊,影響范圍則是從該故障節(jié)點開始逆時針方向到上個節(jié)點內(nèi)的數(shù)據(jù)對象不可用苇倡。

? ? 如果需要增加新節(jié)點囤踩,則影響的是該新增的節(jié)點逆時針到上個節(jié)點內(nèi)的數(shù)據(jù)對象旨椒。

? ? 缺點:1. 當(dāng)節(jié)點規(guī)模很大時堵漱,遍歷節(jié)點的時間復(fù)雜度是O(n)综慎;2. 新增和移除節(jié)點還是需要進行數(shù)據(jù)遷移。


2.2. 基本副本協(xié)議

? ? 分類:

? ? 中心化副本控制協(xié)議:主要有primary-secondary協(xié)議示惊。中心節(jié)點負(fù)責(zé)維護數(shù)據(jù)的更新、并發(fā)控制米罚、協(xié)調(diào)副本的一致性。主要解決的問題:數(shù)據(jù)更新流程丈探、數(shù)據(jù)讀取方式、primary選擇碗降、數(shù)據(jù)同步。

? ? 去中心化副本控制協(xié)議:

2.3 常見的分布式共識協(xié)議或機制

? ? 1. lease機制讼渊。Lease 是由頒發(fā)者授予的在某一有效期內(nèi)的承諾。頒發(fā)者一旦發(fā)出lease爪幻,則無論接受方是否收到菱皆,也無論后續(xù)接收方處于何種狀態(tài)挨稿,只要lease 不過期仇轻,頒發(fā)者一定嚴(yán)守承諾叶组;另一方面,接收方在lease 的有效期內(nèi)可以使用頒發(fā)者的承諾历造,但一旦lease 過期船庇,接收方一定不能繼續(xù)使用頒發(fā)者的承諾。

? ? 2. Quorum機制鸭轮。一共有N個副本,每次更新操作會在W個副本上成功橄霉。則最多需要讀取R個副本,其中R+W>N 則一定能讀取到某次更新后的數(shù)據(jù)姓蜂。(因為R和W一定有交集)按厘。

????????由于更新 操作需要在W 個副本上都成功钱慢,更新操作才能成功逮京,所以一旦N-W+1 (因為W+N-W+1 = N+1> N)個副本異常,更新操作始終無法在W 個副本上成功束莫,更新服務(wù)不可用。另一方面览绿,一旦N-R+1 個副本異常策严,則無法保證一定可以讀到與W 個副本有交集的副本集合饿敲,則讀服務(wù)的一致性下降妻导。所以N诀蓉、W栗竖、R 控制了系統(tǒng)的可用性,也是系統(tǒng)對用戶的服務(wù)承諾狐肢。

? ? 3. 日志技術(shù)(應(yīng)用在mysql中)

? ? ? ? redo log

? ? ? ? check point

? ? 4. 兩階段提交協(xié)議(2PC)(中心化副本控制協(xié)議)、3PC沥曹、TCC(XTS是基于TCC的)

? ? 5. MVCC(多版本并發(fā)控制,也是應(yīng)用在DB中的 )

? ? 6. Paxos協(xié)議妓美。強一致性、高可用的去中心化的分布式協(xié)議壶栋。

有一組完全對等的參與節(jié)點(稱為accpetor)辰如,這組節(jié)點各自就某一事件做出決議贵试,如果某個決議獲得了超過半數(shù)節(jié)點的同意則生效琉兜。Paxos 協(xié)議中只要有超過一半的節(jié)點正常,就可以工作豌蟋。

角色:Proposer廊散、Acceptor、Listener

利用了Quorom機制:另W=R=N/2+1

? ? ? 協(xié)議通過引入輪次梧疲,使得高輪次的提議搶占低輪次的提議來避免死鎖。協(xié)議設(shè)計關(guān)鍵點是如何滿足“在一次Paxos 算法實例過程中只批準(zhǔn)一個Value”這一約束條件幌氮。

2.4 CAP理論

Consistency (一致性):CAP 理論中的副本一致性特指強一致性;

Availiablity(可用性):指系統(tǒng)在出現(xiàn)異常時已經(jīng)可以提供服務(wù)浩销;

Tolerance to the partition of network (分區(qū)容忍):指系統(tǒng)可以在網(wǎng)絡(luò)分區(qū)(節(jié)點間網(wǎng)絡(luò)不通,整個集群被分成了多個區(qū)域)這種異常情況下慢洋,具有的容錯能力塘雳;

無法設(shè)計一種分布式協(xié)議普筹,使得同時完全具備CAP三個屬性

? ? ? ? ? ? ? ? ? ? ? ? C? ? ? ?A? ? ? ? P

Lease機制:滿足? ? 完全? ?部分

Quorum:? ? 部分? ? 部分? ?部分

兩階段:? ? ? ?完全? ?差? ? ? 差

Paxos:? ? ? ? 完全? ? 部分? ? 部分

在CAP之后败明,BASE理論(Basic Availiablity太防,Soft status妻顶,Eventually consistent)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蜒车,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酿愧,老刑警劉巖沥潭,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嬉挡,死亡現(xiàn)場離奇詭異,居然都是意外死亡庞钢,警方通過查閱死者的電腦和手機拔恰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門基括,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事河爹∈苟欤” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵昌抠,是天一觀的道長鲁僚。 經(jīng)常有香客問我炊苫,道長冰沙,這世上最難降的妖魔是什么侨艾? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任拓挥,我火速辦了婚禮,結(jié)果婚禮上侥啤,老公的妹妹穿的比我還像新娘当叭。我一直安慰自己盖灸,他們只是感情好蚁鳖,可當(dāng)我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赁炎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪徙垫。 梳的紋絲不亂的頭發(fā)上讥裤,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天姻报,我揣著相機與錄音,去河邊找鬼逗抑。 笑死剧辐,一個胖子當(dāng)著我的面吹牛邮府,可吹牛的內(nèi)容都是我干的荧关。 我是一名探鬼主播褂傀,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼忍啤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鳄梅,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤未檩,失蹤者是張志新(化名)和其女友劉穎戴尸,沒想到半個月后冤狡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體孙蒙,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡悲雳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年挎峦,在試婚紗的時候發(fā)現(xiàn)自己被綠了合瓢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坦胶。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖顿苇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情税弃,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布钙皮,位于F島的核電站,受9級特大地震影響短条,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茸时,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望可都。 院中可真熱鬧缓待,春花似錦、人聲如沸旋炒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春谚咬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尚粘。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留郎嫁,地道東北人。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓行剂,卻偏偏與公主長得像钳降,于是被迫代替她去往敵國和親厚宰。 傳聞我的和親對象是個殘疾皇子遂填,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,500評論 2 359