什麼是分佈式事務以及分佈式事務有哪些解決方案

什麼是事務

什麼是事務?舉個生活中的例子:你去小賣鋪買東西,“一手交錢,一手交貨”就是一個事務的例子,交錢和交貨必須全部成功,事務纔算成功,任一個活動失敗,事務將撤銷所有已成功的活動。

什麼是本地事務

本地事務就是指:單機事務,單機事務總共包含四個特性: 原子性,一致性,持久性以及隔離性

什麼是分佈式事務

分佈式系統會把一個應用系統拆分爲可獨立部署的多個服務,因此需要服務與服務之間遠程協作才能完成事務操作,這種分佈式系統環境下由不同的服務之間通過網絡遠程協作完成事務稱之爲分佈式事務,例如用戶註冊送積分事務、創建訂單減庫存事務,銀行轉賬事務等都是分佈式事務。

CAP理論

  1. 什麼是CAP

CAP原則又稱CAP定理,指的是在一個分佈式系統中,一致性(Consistency)(須知!:這裏的一致性是指的強制一致性)、可用性(Availability)、分區容錯性(Partition tolerance)。CAP 原則指的是,這三個要素最多隻能同時實現兩點,不可能三者兼顧。故此,一般有兩種CP或AP

> 一致性:  所有節點讀到的數據必須保證是最新且是一致的(主從數據庫同步進行數據同步時,被同步方資源
暫時不可用,當同步完纔可用) (須知!:這裏的一致性是指的強制一致性)
> 可用性: 必須保證任何時候接口都需要有響應結果,且不會出現超時或響應錯誤,重要一點實現可用性不能
鎖對數據庫資源鎖定
> 分區容錯性: 節點之間由於網絡問題導致通信失敗,必須能保證節點還能提供服務
  1. 爲什麼說CAP只能滿足兩個條件

一致性能保證所有節點讀到的數據都是最新的 ,但是它犧牲了 數據庫在同步時必須要使用同步操作去同步數據庫才能保證數據一致性,既然只有同步操作才能保證一致性那麼可用性就滿足不了,因爲一致性是需要鎖定數據庫資源從而達到一致性,所以只能是AP或CP

到這裏有人可能就會問了,爲什麼不是CA呢,哈哈,其實道理也是很簡單,如果能滿足CA那麼這三個條件必然能滿足,上面就說了CA是不能同時滿足的!

BASE理論

  1. 什麼是BASE理論

BASE 理論是對 CAP中的一致性和可用性進行一個權衡的結果,理論的核心思想就是:我們無法做到強一致,但每個應用都可以根據自身的業務特點,採用適當的方式來使系統達到最終一致性。

什麼意思呢,就是說CAP如果使用了CP,不是不保證一致性了,而是捨去強一致性,改用爲最終一致性,最終一致性代表的是,在一段時間內數據允許不一致,但最終會一致.

分佈式常見解決方案

一.強一致性方案

  1. 兩階段提交(2PC) 具體實現有:XA和阿里的Seata框架

二.最終一致性方案(一般都是利用mq來實現最終一致性)

  1. TCC 具體實現有:tcc–tansation 和hmily框架,Seata框架
  2. 可靠消息最終一致性
  3. 最大努力通知

這兩種方案什麼情況下使用呢,什麼時候使用強一致性,什麼時候使用最終一致性,
舉例,用戶轉賬必須使用強一致性,張三轉了錢,李四說沒收到那不就亂套了麼 ,哈哈,所以這裏必須要使用強一致性,用戶轉完賬是不是需要提示李四,您收到張三轉賬的金額提示啊,這時候就可以用最終一致性

上一章節:一套文章讓你徹底理解運用分佈式事務
下一章節: JAVA 強一致性 2PC兩階段提交介紹以及Seata AT模式實現

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章