分布式基本概念


  從這周開始深入學習Zookeeper,主要是看PAXOS到ZOOKEEPER分布式一致性理論與實踐以及Zookeeper3.5的源碼,在整個學習過程中會整理一些學習筆記。

  1.分布式基本概念

  2.一致性協議

  分布式系統是一個硬件或者軟件組件分布在不同網絡計算機上,彼此之間僅僅通過消息傳遞來進行通信和協調的系統。一個分布式系統通常具有以下特點:

  • 分布式:在空間上隨意分布,
  • 對等性:組成分布式系統的所有節點都是對等的。
  • 並發性
  • 缺乏全局時鍾。在分布式系統很難確定多個時間的順序,原因就是分布式系統缺乏一個全局的時鍾。
  • 故障總是會發生。

  分布式系統體系機構面對着諸多的難題和挑戰:

  • 通信異常:分布式系統需要在各個節點之間進行網絡通信,而網絡本身是不可靠的。
  • 網絡分區:當網絡由於發生異常情況,最終導致組成分布式系統的所有節點,只有部分節點之間能夠進行通信,另一些節點則不能。這種現象稱為網絡分區,俗稱腦裂。
  • 三態:分布式系統的每一次請求與響應存在特有的三態概念,即成功、失敗、超時。
  • 節點故障:指組成分布式系統的服務器節點出現的宕機或“僵死”現象。

從ACID到CAP/BASE

ACID

  事務是由一系列對系統中數據進行訪問與更新的操作所組成的一個程序執行邏輯單元,一個數據庫事務具有以下四個特性:

  • 原子性(Atomicity):指事務必須是一個原子的操作序列單元。在執行過程中要么全部執行,要么全部不執行。
  • 一致性(Consistency):事務的執行不能破壞數據庫的完整性和一致性,事務在執行前后數據庫必須處於一致的狀態。
  • 隔離性(Isolation):並發的事務是互相隔離的,一個事務的執行不能被其他事務干擾。標准的SQL規范中,定義了4個事務隔離級別:Read Uncommitted、Read Committed、Repeatable Read和Serializable。MySQL的默認隔離級別是:Repeatable Read,Oracle的默認隔離級別是:READ COMMITTED。
  • 持久性(Durability):指一個事務一旦提交,它對數據庫中對應數據狀態的變更是永久性的。

分布式事務 

  分布式事務是指事務的參與者、支持者的服務器、資源服務器以及事務管理器分別位於分布式系統的不同節點之上。通常一個分布式事務中涉及對過個數據源或者業務系統的操作。

  CAP理論:一個分布式系統不可能同時滿足一致性(C:Consistency)、可用性(A:Availability)可分區容錯性(P:Partition tolerance)。

  • 一致性:一致性是數據在過個副本之間是否能夠保持一致的特性。
  • 可用性:指系統提供的服務必須一致處於可用的狀態。
  • 分區容錯性:分布式系統在遇到任何網絡分區的故障時候。仍然需要能夠保證對外提供滿足一致性和可用性的服務。

 

  BASE是Basically Available(基本可用)、Soft state(軟狀態)、Eventually Consistency(最終一致性)。

  • 基本可用:指分布式系統在出現不可預知的故障時允許損失部分可用性。
  • 軟狀態:是指允許系統中的數據存在中間狀態,並認為該中間狀態的存在不會影響系統的整體可用性,即允許在不同節點的數據副本之間存在數據同步的延時
  • 最終一致性:系統中的所有數據副本,在經過一段時間的同步后,最終能夠到達一個一直的狀態。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM