文章詳情頁
MySQL數據庫中間件如何實現分布式事務
瀏覽:137日期:2022-06-20 14:47:44
問題描述
假設我有兩個MySQL數據庫節點,在這兩個節點前面有一個數據庫中間件,應用通過數據庫中間件來使用后面的兩個MySQL節點, 結構如下圖所示:
當應用通過中間件執行一個事務時,這個事務需要由中間件轉發給兩個MySQL節點,于是在中間件這一層,原本普通的事務現在升級成了跨越兩個MySQL節點的分布式事務。對于應用程序來說,應用程序希望這個事務要么都被兩個MySQL節點執行成功,要么都不成功。
當應用程序begin了事務,執行一系列SQL語句后,應用程序進行commit,此時數據庫中間件會分別向兩個MySQL節點發送commit命令,假設兩個MySQL節點都接收到了commit命令,并成功提交,那么事務執行成功。如果其中一個節點commit成功,而另外一個節點由于一些原因無法執行commit(可能網絡斷開,或者MySQL數據庫出現錯誤),又由于已經commit的事務無法rollback,所以此時兩個MySQL節點就出現了數據不一致的情況。
我的問題是:目前是否有上述問題的解決方法或解決思路,先謝謝了
問題解答
回答1:xa
事務資源預分配
業務原子操作
相關文章:
1. javascript - JS設置Video視頻對象的currentTime時出現了問題,IE,Edge,火狐,都可以設置,反而chrom卻...2. java固定鍵值轉換,使用枚舉實現字典?3. 如何為每個應用程序配置tomcat 6的logs / catalina.out。(為sys.out,sys.err配置Web應用程序特定的日志文件)4. css - ionic中的柵格布局如何讓文字內容多少不同的每一列中的內容都能垂直居中?5. php自學從哪里開始?6. phpstady在win10上運行7. java - 我設置了cookie的max age,但是cookie依然在關閉游覽器后消失了8. javascript - canvas設計鼠標畫圖功能一筆畫出多條并行彩色線條9. 這是什么情況???10. javascript - 微信網頁開發從菜單進入頁面后,按返回鍵沒有關閉瀏覽器而是刷新當前頁面,求解決?
排行榜
