Java知識分享網 - 輕松學習從此開始!????

Java知識分享網

Java1234官方群25:java1234官方群25
Java1234官方群25:838462530
     
粉絲特別福利:66套java從入門到精通實戰課程 ( 限時1小時免費領取 )

SpringBoot打造企業級進銷存

Java1234 VIP課程

領取微信掃碼登錄Java實現視頻教程

Java1234至尊VIP(特價活動)

分布式事務專題 PDF 下載


分享到:
時間:2020-07-09 12:45來源:http://www.bxroef.tw 作者:小鋒  侵權舉報
分布式事務專題 PDF 下載
失效鏈接處理
分布式事務專題 PDF 下載

整理下載:
提取碼:03i4
 
相關截圖:
 
主要內容:
1.基礎概念 1.1.什么是事務 什么是事務?舉個生活中的例子:你去小賣鋪買東西,“一手交錢,一手交貨”就是一個事務的例子,交錢和交貨必 須全部成功,事務才算成功,任一個活動失敗,事務將撤銷所有已成功的活動。 明白上述例子,再來看事務的定義: 事務可以看做是一次大的活動,它由不同的小活動組成,這些活動要么全部成功,要么全部失敗。 1.2.本地事務 在計算機系統中,更多的是通過關系型數據庫來控制事務,這是利用數據庫本身的事務特性來實現的,因此叫數據 庫事務,由于應用主要靠關系數據庫來控制事務,而數據庫通常和應用在同一個服務器,所以基于關系型數據庫的 事務又被稱為本地事務。 回顧一下數據庫事務的四大特性 ACID: A(Atomic):原子性,構成事務的所有操作,要么都執行完成,要么全部不執行,不可能出現部分成功部分失 敗的情況。 C(Consistency):一致性,在事務執行前后,數據庫的一致性約束沒有被破壞。比如:張三向李四轉100元, 轉賬前和轉賬后的數據是正確狀態這叫一致性,如果出現張三轉出100元,李四賬戶沒有增加100元這就出現了數 據錯誤,就沒有達到一致性。 I(Isolation):隔離性,數據庫中的事務一般都是并發的,隔離性是指并發的兩個事務的執行互不干擾,一個事 務不能看到其他事務運行過程的中間狀態。通過配置事務隔離級別可以避臟讀、重復讀等問題。 D(Durability):持久性,事務完成之后,該事務對數據的更改會被持久化到數據庫,且不會被回滾。 數據庫事務在實現時會將一次事務涉及的所有操作全部納入到一個不可分割的執行單元,該執行單元中的所有操作 要么都成功,要么都失敗,只要其中任一操作執行失敗,都將導致整個事務的回滾 1.3.分布式事務 隨著互聯網的快速發展,軟件系統由原來的單體應用轉變為分布式應用,下圖描述了單體應用向微服務的演變:
分布式系統會把一個應用系統拆分為可獨立部署的多個服務,因此需要服務與服務之間遠程協作才能完成事務操 作,這種分布式系統環境下由不同的服務之間通過網絡遠程協作完成事務稱之為分布式事務,例如用戶注冊送積分 事務、創建訂單減庫存事務,銀行轉賬事務等都是分布式事務。 我們知道本地事務依賴數據庫本身提供的事務特性來實現,因此以下邏輯可以控制本地事務: 但是在分布式環境下,會變成下邊這樣: 可以設想,當遠程調用讓李四增加金額成功了,由于網絡問題遠程調用并沒有返回,此時本地事務提交失敗就回滾 了張三減少金額的操作,此時張三和李四的數據就不一致了。 因此在分布式架構的基礎上,傳統數據庫事務就無法使用了,張三和李四的賬戶不在一個數據庫中甚至不在一個應 用系統里,實現轉賬事務需要通過遠程調用,由于網絡問題就會導致分布式事務問題。 1.4 分布式事務產生的場景 1、典型的場景就是微服務架構 微服務之間通過遠程調用完成事務操作。 比如:訂單微服務和庫存微服務,下單的 同時訂單微服務請求庫存微服務減庫存。 簡言之:跨JVM進程產生分布式事務。 begin transaction; //1.本地數據庫操作:張三減少金額 //2.本地數據庫操作:李四增加金額 commit transation; begin transaction; //1.本地數據庫操作:張三減少金額 //2.遠程調用:讓李四增加金額 commit transation;

------分隔線----------------------------
鋒哥公眾號


鋒哥微信號


關注公眾號
【Java資料站】
回復 666
獲取 
66套java
從菜雞到大神
項目實戰課程
大乐透走势图夸距