《从paxos到zookeeper》学习笔记(一)
生活随笔
收集整理的這篇文章主要介紹了
《从paxos到zookeeper》学习笔记(一)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、概述
ZooKeeper是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個(gè)開源的實(shí)現(xiàn),是Hadoop和Hbase的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。 ZooKeeper的目標(biāo)就是封裝好復(fù)雜易出錯(cuò)的關(guān)鍵服務(wù),將簡(jiǎn)單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。 ZooKeeper代碼版本中,提供了分布式獨(dú)享鎖、選舉、隊(duì)列的接口。 第一章:CAP定理和base理論 CAP理論:一個(gè)分布式系統(tǒng)不可能同時(shí)滿足一致性(C:consistenc)、可用性(A:Availability)和分區(qū)容錯(cuò)性(P:Partition tolerance)這三個(gè)基本需求,最多只能同時(shí)滿足其中的兩項(xiàng)。 1、一致性: 在分布式環(huán)境中,一致性是指數(shù)據(jù)在多個(gè)副本之間能否保持一致的特性。 2、可用性: 系統(tǒng)提供的服務(wù)必須一直處于可用的狀態(tài),對(duì)于用戶的每一個(gè)操作請(qǐng)求總是能夠在有限的時(shí)間內(nèi)返回結(jié)果。有限的時(shí)間指的是對(duì)于用戶的一個(gè)操作請(qǐng)求,系統(tǒng)必須能夠在指定的時(shí)間內(nèi)(系統(tǒng)設(shè)計(jì)之初就設(shè)定好的系統(tǒng)運(yùn)行指標(biāo),如接口調(diào)用超時(shí)時(shí)間)返回對(duì)應(yīng)的處理結(jié)果,如果超過(guò)了這個(gè)時(shí)間范圍,那么系統(tǒng)就被認(rèn)為是不可用的。 ?3、分區(qū)性容錯(cuò): ? ? 分布式系統(tǒng)在遇到任何網(wǎng)絡(luò)分區(qū)故障的時(shí)候,仍然需要能夠保證對(duì)外提供滿足一致性和可用性的服務(wù),除非是整個(gè)網(wǎng)絡(luò)環(huán)境都發(fā)生了故障。 ? ? 網(wǎng)絡(luò)分區(qū)是指在分布式系統(tǒng)中,不同的節(jié)點(diǎn)分布在不同的子網(wǎng)絡(luò)(機(jī)房或異地網(wǎng)絡(luò)等)中,由于一些特殊的原因?qū)е逻@些子網(wǎng)絡(luò)之間出現(xiàn)不連通的狀況,但各個(gè)子網(wǎng)絡(luò)的內(nèi)部網(wǎng)絡(luò)是正常的。從而導(dǎo)致整個(gè)系統(tǒng)的網(wǎng)絡(luò)環(huán)境被切分成了若干個(gè)孤立的區(qū)域。 放棄P:如將所有的數(shù)據(jù)都放在一個(gè)分布式節(jié)點(diǎn)上,但意味著放棄了系統(tǒng)的可擴(kuò)展性。 放棄A:一旦系統(tǒng)遇到網(wǎng)絡(luò)分區(qū)或其他故障,那么受到影響的服務(wù)需要等待一定時(shí)間,而在等待期間系統(tǒng)不可用。 放棄C:放棄一致性是指放棄數(shù)據(jù)的強(qiáng)一致性,而保留數(shù)據(jù)的最終一致性。 結(jié)論:對(duì)于一個(gè)分布式系統(tǒng)來(lái)說(shuō),分區(qū)容錯(cuò)性是一個(gè)最基本的要求,因?yàn)榉植际较到y(tǒng)中的組件必然需要被部署到不同的節(jié)點(diǎn),否則也就無(wú)所謂分布式系統(tǒng)了,因此必然出現(xiàn)子網(wǎng)絡(luò),那么網(wǎng)絡(luò)問(wèn)題又是一個(gè)必定會(huì)出現(xiàn)的異常情況。因此系統(tǒng)架構(gòu)設(shè)計(jì)師需要把精力花在根據(jù)業(yè)務(wù)特點(diǎn)在C(一致性)和A(可用性)之間尋求平衡。 BASE理論 BASE:是指三個(gè)狀態(tài),基本可用,軟狀態(tài),最終一致性。核心思想是即使無(wú)法做到強(qiáng)一致性,但每個(gè)應(yīng)用都可以根據(jù)自身的業(yè)務(wù)特點(diǎn),采用適當(dāng)?shù)姆绞絹?lái)使系統(tǒng)達(dá)到最終一致性。 基本可用: 指分布式系統(tǒng)在出現(xiàn)不可預(yù)知故障的時(shí)候,允許損失部分可用性(響應(yīng)時(shí)間上的損失,或者功能上的損失) 弱狀態(tài):軟狀態(tài),允許系統(tǒng)在不同節(jié)點(diǎn)的數(shù)據(jù)副本之間進(jìn)行數(shù)據(jù)同步的過(guò)程存在延時(shí)。 最終一致性:系統(tǒng)中所有的數(shù)據(jù)副本,在經(jīng)過(guò)一段時(shí)間后,最終能夠達(dá)到一個(gè)一致的狀態(tài)。轉(zhuǎn)載于:https://www.cnblogs.com/qinhaohao1114/p/7738103.html
總結(jié)
以上是生活随笔為你收集整理的《从paxos到zookeeper》学习笔记(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 简单理解kafka---入门
- 下一篇: java联级调用