一、分布式事務問題
1.1、本地事務
本地事務,也就是傳統(tǒng)的單機事務。在傳統(tǒng)數(shù)據(jù)庫事務中,必須要滿足四個原則:
??
1.2、分布式事務
分布式事務,就是指不是在單個服務或單個數(shù)據(jù)庫架構下,產(chǎn)生的事務,例如:
-
跨數(shù)據(jù)源的分布式事務
-
跨服務的分布式事務
-
綜合情況
??
在數(shù)據(jù)庫水平拆分、服務垂直拆分之后,一個業(yè)務操作通常要跨多個數(shù)據(jù)庫、服務才能完成。例如電商行業(yè)中比較常見的下單付款案例,包括下面幾個行為:
-
創(chuàng)建新訂單
-
扣減商品庫存
-
從用戶賬戶余額扣除金額
?文章來源:http://www.zghlxwxcb.cn/news/detail-433425.html
完成上面的操作需要訪問三個不同的微服務和三個不同的數(shù)據(jù)庫。
訂單的創(chuàng)建、庫存的扣減、賬戶扣款在每一個服務和數(shù)據(jù)庫內是一個本地事務,可以保證ACID原則。
但是當我們把三件事情看做一個"業(yè)務",要滿足保證“業(yè)務”的原子性,要么所有操作全部成功,要么全部失敗,不允許出現(xiàn)部分成功部分失敗的現(xiàn)象,這就是分布式系統(tǒng)下的事務了。
此時ACID難以滿足,這是分布式事務要解決的問題
?
?
二、理論基礎
解決分布式事務問題,需要一些分布式系統(tǒng)的基礎知識作為理論指導。
?
2.1、CAP定理
1998年,加州大學的計算機科學家 Eric Brewer 提出,分布式系統(tǒng)有三個指標。
Consistency(一致性)
Availability(可用性)
Partition tolerance (分區(qū)容錯性)
?
它們的第一個字母分別是 C、A、P。
Eric Brewer 說,這三個指標不可能同時做到。這個結論就叫做 CAP 定理。
??
2.1.1、一致性
Consistency(一致性):用戶訪問分布式系統(tǒng)中的任意節(jié)點,得到的數(shù)據(jù)必須一致。
比如現(xiàn)在包含兩個節(jié)點,其中的初始數(shù)據(jù)是一致的:
當我們修改其中一個節(jié)點的數(shù)據(jù)時,兩者的數(shù)據(jù)產(chǎn)生了差異: ?要想保住一致性,就必須實現(xiàn)node01 到 node02的數(shù)據(jù) 同步:
??
2.1.2、可用性
Availability (可用性):用戶訪問集群中的任意健康節(jié)點,必須能得到響應,而不是超時或拒絕。
如圖,有三個節(jié)點的集群,訪問任何一個都可以及時得到響應:
當有部分節(jié)點因為網(wǎng)絡故障或其它原因無法訪問時,代表節(jié)點不可用: ?
2.1.3、分區(qū)容錯
Partition(分區(qū)):因為網(wǎng)絡故障或其它原因導致分布式系統(tǒng)中的部分節(jié)點與其它節(jié)點失去連接,形成獨立分區(qū)。
Tolerance(容錯):在集群出現(xiàn)分區(qū)時,整個系統(tǒng)也要持續(xù)對外提供服務
?
2.1.4、矛盾
在分布式系統(tǒng)中,系統(tǒng)間的網(wǎng)文章來源地址http://www.zghlxwxcb.cn/news/detail-433425.html
到了這里,關于分布式事務 --- 理論基礎、Seata架構、部署的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!