一、分布式事務
1.1 什麼是分布式事務
1.2 CAP定理
CAP 定理,又被叫作布魯爾定理。對于設計分布式系統(不僅僅是分布式事務)的架構師來說,CAP 就是你的入門理論。
- Consistency(一緻性)
對某個指定的用戶端來說,讀操作能傳回最新的寫操作。
對于資料分布在不同節點上的資料來說,如果在某個節點更新了資料,那麼在其他節點如果都能讀取到這個最新的資料,那麼就稱為強一緻,如果有某個節點沒有讀取到,那就是分布式不一緻。
- Availability(可用性)
- 保證服務一定是可用,即收到使用者請求,無論資料是否是正确的版本,服務是能響應資料的
- 不允許出現響應逾時或響應錯誤
如何實作的?
1、寫入主資料後要将資料同步到從資料庫。
2、由于要保證可用性、不可講從資料庫中的資源進行鎖定
3、即使資料還沒有同步過來,從資料庫也要傳回資料,哪怕數舊資料,也要傳回。即使沒有舊資料也要按照約定傳回一個預設的資訊(類似于熔斷),但不能傳回錯誤或響應逾時
- Partition tolerance(分區容錯性)
- 當出現網絡分區後(各個服務不在同一個子網),系統能夠繼續工作。
- 比如叢集有多台機器,有台機器網絡出現了問題,但是這個叢集仍然可以正常工作。
如何實作?
1、盡量使用一步的方式取代同步,這樣節點之間能有效實作松耦合
2、添加從資料庫節點,其中一個節點挂掉從其他節點擷取資料。
三者不能共有,如果感興趣可以搜尋 CAP 的證明,在分布式系統中,網絡無法 100% 可靠,分區其實是一個必然現象。
如果我們選擇了 CA 而放棄了 P,那麼當發生分區現象時,為了保證一緻性,這個時候必須拒絕請求,但是 A 又不允許,是以分布式系統理論上不可能選擇 CA 架構,隻能選擇 CP 或者 AP 架構。