分佈式事務之最終一致性BASE理論

1、事務

  事務提供一種機制將一個活動涉及的全部操做歸入到一個不可分割的執行單元,組成事務的全部操做只有在全部操做均能正常執行的狀況下方能提交,只要其中任一操做執行失敗,都將致使整個事務的回滾。簡單地說,事務提供一種「要麼什麼都不作,要麼作全套(All or Nothing)」機制。html

2、分佈式事務

  分佈式事務指事務的參與者、支持事務的服務器、資源服務器以及事務管理器分別位於不一樣的分佈式系統的不一樣節點之上。簡單的說,就是一次大的操做由不一樣的小操做組成,這些小的操做分佈在不一樣的服務器上,且屬於不一樣的應用,分佈式事務須要保證這些小操做要麼所有成功,要麼所有失敗。服務器

3、應用場景

  銀行轉帳、車站售票、網上購物。架構

4、分佈式事務的一致性

一、強一致性分佈式

  這種一致性級別是最符合用戶直覺的,它要求系統寫入什麼,讀出來的也會是什麼,用戶體驗好,但實現起來每每對系統的性能影響大。性能

二、弱一致性網站

  這種一致性級別約束了系統在寫入成功後,不承諾當即能夠讀到寫入的值,也不久承諾多久以後數據可以達到一致,但會盡量地保證到某個時間級別(好比秒級別)後,數據可以達到一致狀態。搜索引擎

三、最終一致性spa

  最終一致性是弱一致性的一個特例,系統會保證在必定時間內,可以達到一個數據一致的狀態。這裏之因此將最終一致性單獨提出來,是由於它是弱一致性中很是推崇的一種一致性模型,也是業界在大型分佈式系統的數據一致性上比較推崇的模型。架構設計

5、BASE理論

  BASE理論是實現分佈式事務最終一致性的有效解決方案。設計

  BASE是Basically Available(基本可用)、Soft state(軟狀態)和Eventually consistent(最終一致性)三個短語的縮寫。BASE理論是對CAP中一致性和可用性權衡的結果,其來源於對大規模互聯網系統分佈式實踐的總結, 是基於CAP定理逐步演化而來的。BASE理論的核心思想是:即便沒法作到強一致性,但每一個應用均可以根據自身業務特色,採用適當的方式來使系統達到最終一致性

BASE理論三要素:

一、基本可用

  基本可用是指分佈式系統在出現不可預知故障的時候,容許損失部分可用性----注意,這毫不等價於系統不可用。好比:

(1)響應時間上的損失。正常狀況下,一個在線搜索引擎須要在0.5秒以內返回給用戶相應的查詢結果,但因爲出現故障,查詢結果的響應時間增長了1~2秒。

(2)系統功能上的損失:正常狀況下,在一個電子商務網站上進行購物的時候,消費者幾乎可以順利完成每一筆訂單,可是在一些節日大促購物高峯的時候,因爲消費者的購物行爲激增,爲了保護購物系統的穩定性,部分消費者可能會被引導到一個降級頁面。

二、軟狀態

  軟狀態指容許系統中的數據存在中間狀態,並認爲該中間狀態的存在不會影響系統的總體可用性,即容許系統在不一樣節點的數據副本之間進行數據同步的過程存在延時。

三、最終一致性

  最終一致性強調的是全部的數據副本,在通過一段時間的同步以後,最終都可以達到一個一致的狀態。所以,最終一致性的本質是須要系統保證最終數據可以達到一致,而不須要實時保證系統數據的強一致性。

  總的來講,BASE理論面向的是大型高可用可擴展的分佈式系統,和傳統的事物ACID特性是相反的,它徹底不一樣於ACID的強一致性模型,而是經過犧牲強一致性來得到可用性,並容許數據在一段時間內是不一致的,但最終達到一致狀態。但同時,在實際的分佈式場景中,不一樣業務單元和組件對數據一致性的要求是不一樣的,所以在具體的分佈式系統架構設計過程當中,ACID特性和BASE理論每每又會結合在一塊兒。

實現方式:

相關文章
相關標籤/搜索