什麼是分佈式事務

什麼是分佈式系統
部署在不同結點上的系統通過網絡交互來完成協同工作的系統
比如:充值加積分的業務,用戶在充值系統向自己的賬戶充錢,在積分系統中自己積分相應的增加。充值系統和積分系統是兩個不同的系統,一次充值加積分的業務就需要這兩個系統協同工作來完成。

什麼是事務
事務是指由一組操作組成的一個工作單元,這個工作單元具有原子性(atomicity)、一致性(consistency)、隔離性(isolation)和持久性(durability)。
原子性:執行單元中的操作要麼全部執行成功,要麼全部失敗。如果有一部分成功一部分失敗那麼成功的操作要全部回滾到執行前的狀態。
一致性:執行一次事務會使用數據從一個正確的狀態轉換到另一個正確的狀態,執行前後數據都是完整的。 隔離性:在該事務執行的過程中,任何數據的改變只存在於該事務之中,對外界沒有影響,事務與事務之間是完全的隔離的。只有事務提交後其它事務纔可以查詢到最新的數據。
持久性:事務完成後對數據的改變會永久性的存儲起來,即使發生斷電宕機數據依然在。

什麼是本地事務
本地事務就是用關係數據庫來控制事務,關係數據庫通常都具有ACID特性,傳統的單體應用通常會將數據全部存儲在一個數據庫中,會藉助關係數據庫來完成事務控制。

什麼是分佈式事務
在分佈式系統中一次操作由多個系統協同完成,這種一次事務操作涉及多個系統通過網絡協同完成的過程稱爲分佈式事務。這裏強調的是多個系統通過網絡協同完成一個事務的過程,並不強調多個系統訪問了不同的數據庫,即使多個系統訪問的是同一個數據庫也是分佈式事務,如下圖:

在這裏插入圖片描述
​ 另外一種分佈式事務的表現是,一個應用程序使用了多個數據源連接了不同的數據庫,當一次事務需要操作多個數據源,此時也屬於分佈式事務,當系統作了數據庫拆分後會出現此種情況

在這裏插入圖片描述
上面兩種分佈式事務表現形式第一種用的最多

4.分佈式事務的應用場景

在這裏插入圖片描述

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