閱讀筆記《從Paxos到ZooKeeper分布式一致性原理與實(shí)踐》 倪超
分布式架構(gòu)
目錄:
- 從集中式到分布式
- 從ACID到CAP/BASE
從集中式到分布式
集中式的特點(diǎn)
集中式:如大型機(jī),性能和穩(wěn)定性都好高幻妓,但是成本高昂,除此之外還存在單點(diǎn)問題
最大的特點(diǎn)就是部署結(jié)構(gòu)簡單漓雅,底層性能卓越怜森,無需考慮部署多節(jié)點(diǎn)仍律。
分布式的特點(diǎn)
分布式系統(tǒng):由軟件件或軟件組件分布在不同的網(wǎng)絡(luò)計(jì)算機(jī)上钧栖,彼此之間通過消息傳遞和協(xié)調(diào)的系統(tǒng)低零。
一個(gè)標(biāo)準(zhǔn)的分布式系統(tǒng)有以下幾個(gè)特征:
分布性,對(duì)等性(沒有主從)拯杠,并發(fā)性掏婶,缺乏全局時(shí)鐘,故障總是會(huì)發(fā)生
分布式環(huán)境的各種問題
通信異常:網(wǎng)絡(luò)本身就是不可靠的潭陪,分布式需要各個(gè)節(jié)點(diǎn)通過網(wǎng)絡(luò)通訊雄妥。其次網(wǎng)絡(luò)延遲性大于單機(jī)操作,消息延遲和丟失比較常見畔咧。
網(wǎng)絡(luò)分區(qū) : 由于網(wǎng)絡(luò)的原因茎芭,導(dǎo)致只有部分節(jié)點(diǎn)之間可以通訊揖膜,而和其他節(jié)點(diǎn)不能通訊誓沸,這一顯現(xiàn)稱為“網(wǎng)絡(luò)分區(qū)”,俗稱腦裂
三態(tài):由于網(wǎng)絡(luò)的原因壹粟,在分布式環(huán)境中請(qǐng)求有三種狀態(tài)拜隧,即 成功宿百,失敗,超時(shí)洪添。單機(jī)時(shí)一般不會(huì)超時(shí)垦页,只會(huì)成功或失敗。
節(jié)點(diǎn)故障: 單節(jié)點(diǎn)宕機(jī)干奢,比如停電
從ACID到CAP/BASE
在分布式系統(tǒng)事務(wù)處理與數(shù)據(jù)一致性上遇到的各種挑戰(zhàn)
ACID
事務(wù): 是一系列對(duì)系統(tǒng)中數(shù)據(jù)訪問和更新組成的執(zhí)行單元痊焊,具有以下四個(gè)特性
Atomicity:原子性,即全部成功忿峻,或者全部不執(zhí)行
Consistency:一致性一致性是指在事務(wù)開始之前和事務(wù)結(jié)束以后薄啥,數(shù)據(jù)庫的完整性約束沒有被破壞。這是說數(shù)據(jù)庫事務(wù)不能破壞關(guān)系數(shù)據(jù)的完整性以及業(yè)務(wù)邏輯上的一致性逛尚。
對(duì)銀行轉(zhuǎn)帳事務(wù)垄惧,不管事務(wù)成功還是失敗,應(yīng)該保證事務(wù)結(jié)束后ACCOUNT表中aaa和bbb的存款總額為2000元绰寞。
Isolation: 隔離性:在并發(fā)環(huán)境下到逊,并發(fā)的事務(wù)相互隔離,一個(gè)事務(wù)的執(zhí)行不能影響另外一個(gè)事務(wù)滤钱,在標(biāo)準(zhǔn)的SQL中有四種隔離級(jí)別觉壶。
Duraiblity: 持久性 事務(wù)一旦提交就要存到磁盤中,如果宕機(jī)了菩暗,只要能重新啟動(dòng)掰曾,就要存到磁盤中
分布式事務(wù)
在單機(jī)上還是比較容易實(shí)現(xiàn)一套滿足 ACID 特性的事務(wù)處理系統(tǒng),但是在分布式數(shù)據(jù)庫中停团,數(shù)據(jù)分散在不同的機(jī)器上旷坦,就比較麻煩了,比如你跨行轉(zhuǎn)賬佑稠,就不可能是單機(jī)的秒梅。
一個(gè)分布式事務(wù)可以看作是由多個(gè)分布式的操作序列組成的。
CAP和BASE理論
CAP定理告訴我們舌胶,在一個(gè)分布式系統(tǒng)捆蜀,不可能同時(shí)滿足一致性(Consistency),可用性(Availability)和分區(qū)容錯(cuò)性(Partition tolerance),最多只能同時(shí)滿足2個(gè)
一致性:數(shù)據(jù)在多個(gè)副本之間能否保持一致的特性幔嫂,數(shù)據(jù)在一個(gè)副本更新了辆它,其他副本也要得到跟新。
可用性:系統(tǒng)提供的服務(wù)一直處于可服務(wù)狀態(tài)履恩,對(duì)用戶的請(qǐng)求锰茉,總是在有限的時(shí)間內(nèi)返回結(jié)果
分區(qū)容錯(cuò)性:在遇到任何網(wǎng)絡(luò)錯(cuò)誤,除非都掛了切心,都能對(duì)外提供滿足一致性和可用性的服務(wù)
往往需要保證分區(qū)容錯(cuò)性飒筑,這是一個(gè)分布式系統(tǒng)的基本要求片吊,所以要在一致性和可用性之間衡量
Base理論:Basically available (基本可用) Soft state(軟狀態(tài)),Eventually consisten(最終一致性) 协屡,是對(duì)CAP定理一致性和可用性權(quán)衡的結(jié)果俏脊,其核心思想是即使無法做到強(qiáng)一致性,但每個(gè)應(yīng)用都可以根據(jù)自身的業(yè)務(wù)特點(diǎn)肤晓,采用適當(dāng)?shù)姆绞絹硎瓜到y(tǒng)達(dá)到最終一致性爷贫。