java 分布式事务_Java核心知识 Spring原理十五 JPA 原理
1. 事務
事務是計算機應用中不可或缺的組件模型,它保證了用戶操作的原子性 ( Atomicity )、一致性
( Consistency )、隔離性 ( Isolation ) 和持久性 ( Durabilily )。
2. 本地事務
緊密依賴于底層資源管理器(例如數據庫連接 ),事務處理局限在當前事務資源內。此種事務處理
方式不存在對應用服務器的依賴,因而部署靈活卻無法支持多數據源的分布式事務。在數據庫連
接中使用本地事務示例如下:
分布式事務
Java 事務編程接口(JTA:Java Transaction API)和 Java 事務服務 (JTS;Java Transaction
Service) 為 J2EE 平臺提供了分布式事務服務。分布式事務(Distributed Transaction)包括事務
管理器(Transaction Manager)和一個或多個支持 XA 協議的資源管理器 ( Resource
Manager )。我們可以將資源管理器看做任意類型的持久化數據存儲;事務管理器承擔著所有事務
參與單元的協調與控制。
兩階段提交
兩階段提交主要保證了分布式事務的原子性:即所有結點要么全做要么全不做,所謂的兩個階段
是指:第一階段:準備階段;第二階段:提交階段。
1 準備階段
事務協調者(事務管理器)給每個參與者(資源管理器)發送 Prepare 消息,每個參與者要么直接返回
失敗(如權限驗證失敗),要么在本地執行事務,寫本地的 redo 和 undo 日志,但不提交,到達一
種“萬事俱備,只欠東風”的狀態。
2 提交階段:
如果協調者收到了參與者的失敗消息或者超時,直接給每個參與者發送回滾(Rollback)消息;否則,
發送提交(Commit)消息;參與者根據協調者的指令執行提交或者回滾操作,釋放所有事務處理過
程中使用的鎖資源。(注意:必須在最后階段釋放鎖資源)
將提交分成兩階段進行的目的很明確,就是盡可能晚地提交事務,讓事務在提交前盡可能地完成
所有能完成的工作。
總結
以上是生活随笔為你收集整理的java 分布式事务_Java核心知识 Spring原理十五 JPA 原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: les物流执行系统_【精益运营】立足智慧
- 下一篇: java用户的登录图片_Java 如何用