1 本地事務acid 和 cap中的ca區別
本地事務: a--》 原子性 乙個事務中所有操作,要不全部完成,要不全部不完成,事務在執行過程中發生錯誤,會被回滾到事務開始前的狀態,就像這個事務沒有被執行過一樣。
c--> 一致性 事務的一致性指在乙個事務執行之前和執行之後資料庫都必須處於一致性狀態,如果事務成功完成,那麼系統中所有變化將正確應用。系統處於有效狀態。如果在事務中出現錯誤,系統中所有變化都自動回滾,系統將返回到原始狀態。
i--》 隔離性 指的是在併發環境中,當不同的事務同時操作相同的資料時,每個事務都有各自的完成資料空間。打個比方,你買東西,是不會影響到其他人的。
d:永續性 指的是只要事務成功結束,它對資料庫所作的更新就必須永久儲存下來。即使系統發生崩潰,重新啟動資料庫系統後,資料庫還能恢復到事務成功結束時的狀態
打個比方,買東西的時候需要記錄在賬本上,即使老闆忘記了 也有據可查
分布式事務
cap定理
c -->一致性 對某個指定的客戶端來說,讀操作能返回最新的寫操作,資料分布在不同節點上的資料來說,如果在某個節點更新了資料,那麼在其他節點如果都能讀取到這個最新的資料,那麼就稱為強一致,如果在某個節點沒有讀取到,就是分布式不一致。
a --> 可用性 非故障的節點在合理的時間內返回合理的響應(不是錯誤和超時的響應。)可用性的兩個關鍵是乙個合理的時間,乙個合理的響應。
合理的時間指的是請求不能無限被阻塞,應該在合理的時間給出返回。合理的響應指的是系統應該明確返回結果並且結果是正確的。
2.分布式事務常用的解決方案的優缺點是什麼? 適用於什麼場景?
解決方案:
1.xa transactions
2.tcc
3. 本地訊息表
4.mq事務
5.saga事務
todo --- 完整優缺點及使用場景
缺點: 增加系統的複雜度和成本
3.分布式事務出現的原因? 用來解決什麼痛點?
分布式事務出現的兩種原因:
service產生多個節點
舉個例子: 乙個公司之內,使用者的資產可能分為好多個部分,分為餘額,積分,優惠券等等
,在公司內部有可能積分功能由乙個微服務團隊維護,優惠券又是另外的團隊維護。這樣就無法保證積分扣減之後,優惠券能否扣減成功。
resource產生多個節點
mysql一般裝千萬級的資料就得進行分庫分表
對於乙個支付寶的轉賬業務來說,你給朋友轉錢,可能你的資料庫在北京,而你朋友的錢存在上海,所以依然無法保證他們能同時成功
用來保證不同資料庫的資料一致性
分布式事務和本地事務
指一次大的操作由不同的小操作組成的,這些小的操作分布在不同的伺服器上,分布式事務需要保證這些小操作要麼全部成功,要麼全部失敗。從本質上來說,分布式事務就是為了保證不同資料庫的資料一致性。1 資料庫分庫分表 當資料庫單錶一年產生的資料超過1000w,那麼就要考慮分庫分表,具體分庫分表的原理在此不做解釋...
本地事務 全域性事務 分布式事務
本地事務 事務隔離級別 select tx isolation tx isolation repeatable read 1 row in set 0.00 sec 開啟事務 執行緒1執行如下。use order db begin update orders set order money orde...
分布式事務和什麼是本地事務
事務型別 事務可以分為本地事務和分布式事務兩種型別。這兩種事務型別是根據訪問並更新的資料資源的多少來進行區分的。本地事務是在單個資料來源上進行資料的訪問和更新,而分布式事務是跨越多個資料來源來進行資料的訪問和更新。在這裡要說的事務是基於資料庫這種資料來源的 什麼是分布式事務 transaction ...