大数据技术:分布式系统和分布式事务
1.????分布式系統
1.1??分布式的特點
分布性:
?????? 分布式系統中的多臺計算機都會在空間上隨意分布,同時,機器的分布情況也會隨時改變。
對等性:
?????? 分布式系統中的計算機沒有主從之分,既沒有控制整個系統的主機,也滅有被控制的從機,組成分布式系統的所有計算機節點都對等的的。
并發性:
?????? 在一個計算機網絡中,程序運行過程中的并發性操作也是非常常見的行為。
1.2??分布式環境中存在的問題
通信異常:
?????? 由于分布式系統必然引入了網絡因素,而由于網絡本身的不可靠性,因此也引入了額外的問題。分布式系統需要在各個節點之間進行網絡通信,因此每次網絡通信都伴隨著網絡不可用的風險。
網絡分區:
?????? 當網絡由于發生異常情況,導致分布式系統中部分節點之間的網絡延時不斷增大,最終導致組成分布式系統的所有節點中,只有一小部分節點能夠進行正常通信,而另一些節點由于網絡原因,被認為錯誤節點---我們稱為這個現象為網絡分區,也就是俗稱的“腦裂”。
節點故障:
?????? 組成分布式系統的服務器節點出現的宕機或者“僵死”現象。
2.????從ACID到CAP/BASE
事務(Transaction)是由一系列對系統中數據進行訪問與更新的操作鎖組成的一個程序執行邏輯單元(Unit),俠義上的事務特指數據庫的訪問。
2.1??ACID
原子性(Atomicity):
?????? 事務的原子性是指事務必須是一個原子的操作序列單元。事務中包含的各項操作在一次執行過程中,只允許出現以下兩種狀態之一。
一致性(Consistency):
?????? 事務的一致性是指事務的執行不能破壞數據庫數據的完整性和一致性,一個事務在執行之前和執行之后,數據庫都必須處于一致性的狀態。也就是說,事務的執行結果必須是使數據庫從一個一致性狀態轉變到另一個一致性狀態,因此數據庫只包含成功事務提交的結果時,就能說明數據庫處于一致性狀態。
隔離性(Isolation)
?????? 事務的隔離性是指在并發環境中,并發的事務時相互隔離的,一個事務的不能被其他事務相干擾。也就時說不同的事務在并發操作相同的數據時候,每個事務都有各自完整的數據空間,即一個事務內部的操作及使用的數據對其他并發事務時隔離的,并發執行的各個事務之間是不能相互干擾的。
持久性(Durability)
?????? 事務的持久性也被稱為永久性,是指一個事務一旦提交,它對數據庫中對應數據的狀態變更應該是永久的。換句話說,一旦某個事務成功結束,那么它對數據庫所做的更新就必須被永久保存下來。
?????? 在單機數據庫中,我們很容易能夠實現這一套滿足ACID特性的事務處理系統,但在分布式數據庫中,數據分散在不同的機器上,如何對這些數據進行分布式的事務處理具有非常大的挑戰。
2.2??分布式事務
?????? 隨著分布式計算的發展,事務在分布式的計算領域也得到了廣泛的應用。由于在分布式數據庫中,數據分散在不同的機器中,如何對這些數據進行分布式的事務處理具有非常大的挑戰。因為分布式系統具有上述提到的各種問題。
?????? 分布式事務是指事務的參與者、支持事務的服務器、資源服務器以及事務管理器分別位于分布式系統的不同節點之上。但由于在分布式事務中,各個子事物的執行是分布式的,因此要實現一種能夠保證ACID特性的分布式事務處理系統就顯得格外復雜。
2.3??CAP和BASE理論
CAP理論
?????? CAP理論告訴我們,一個分布式系統不可能同時滿足一致性(C:Consistency)、可用性(A:Avaliability)和分區容錯性(P: partition tolerance)這三個基本需求,最多只能滿足其中兩項。
一致性(Consistency)
?????? 在分布式環境中,一致性是指數據在多個副本之間是否能夠保持一致的特性。在一致性的需求下,當一個系統在數據一致的狀態下執行更新操作后,應該保證系統的數據仍然處于一致的狀態。
可用性(Avaliability)
?????? 可用性是指系統提供的服務必須處于一直可用的狀態,對于用用戶的每一個操作請求總是能夠在有限的時間內返回正確的結果。
容錯性(P: partition tolerance)
?????? 分區容錯性約束了分布式系統需要具有如下特性:分布式系統在遇到任何網絡分區故障的時候,仍然需要能夠保證對外提供滿足一致性和可用性的服務,除非是整個網絡環境出現故障。
BASE理論
eBay的架構師Dan Pritchett源于對大規模分布式系統的實踐總結,在ACM上發表文章提出BASE理論,BASE理論是對CAP理論的延伸,核心思想是即使無法做到強一致性(Strong Consistency,CAP的一致性就是強一致性),但應用可以采用適合的方式達到最終一致性(Eventual Consitency)。
BASE是指基本可用(Basically Available)、軟狀態( Soft State)、最終一致性( Eventual Consistency)
基本可用(Basically Available)
基本可用是指分布式系統在出現故障的時候,允許損失部分可用性,即保證核心可用。
電商大促時,為了應對訪問量激增,部分用戶可能會被引導到降級頁面,服務層也可能只提供降級服務。這就是損失部分可用性的體現。
軟狀態( Soft State)
軟狀態是指允許系統存在中間狀態,而該中間狀態不會影響系統整體可用性。分布式存儲中一般一份數據至少會有三個副本,允許不同節點間副本同步的延時就是軟狀態的體現。mysql replication的異步復制也是一種體現。
最終一致性( Eventual Consistency)
最終一致性是指系統中的所有數據副本經過一定時間后,最終能夠達到一致的狀態。弱一致性和強一致性相反,最終一致性是弱一致性的一種特殊情況。
?
總結
以上是生活随笔為你收集整理的大数据技术:分布式系统和分布式事务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Twitter Heron 实时流处理系
- 下一篇: [SIGMOD 10] Pregel 基