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