1 - 分布式事務
在單機應用上,我們使用事務是很方便的,因為所有的業務邏輯都在本地,資料庫事務就能解決 acid 問題,特別是使用一些j2ee的框架,每一層的業務邏輯都給我們安排得妥妥當當的。
當系統已經被拆分部署到多個伺服器例項上時,一般每個伺服器都只負責維護乙個子系統一張/數張表。與單機相比,業務還是那個業務,但從直接呼叫本地的下層服務變成了乙個遠端的rpc呼叫。
在分布式環境下,乙個遠端呼叫是不可靠的(因為網路是不可靠的),我們無法保證在一台伺服器上發出的請求一定能在另一台伺服器上執行成功,也無法保證執行結果能夠準確/準時地返回。有可能被呼叫的服務執行失敗,也有可能執行成功,只是報文丟失。因此導致資料不一致,這些實際上也是分布式事務的問題。
常見的分布式事務方案有:
兩階段提交
tcc(try/confirm/cancel)
訊息事務+最終一致性
XA 分布式事物
當資料庫單錶一年產生的資料超過1000w,那麼就要考慮分庫分表,具體分庫分表的原理在此不做解釋,以後有空詳細說,簡單的說就是原來的乙個資料庫變成了多個資料庫。這時候,如果乙個操作既訪問01庫,又訪問02庫,而且要保證資料的一致性,那麼就要用到分布式事務。所謂的soa化,就是業務的服務化。比如原來單機...
分布式事物 第一章 分布式事物簡介
事務就是提供一種 要麼什麼都不做,要麼做全套 all or nothing 機制。a 原子性 atomicity 你買東西要麼交錢收貨一起都執行,要麼發不出貨,就退錢。乙個事務 transaction 中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被...
分布式事物理解
1.單機事物理解 具有acid特性才能算是事物,a 原子性 即 事物的組成部分 要麼全部執行,要麼都不執行。原子性通過undo 實現,即事物執行過程中的步驟對應幾個版本,版本對應響應的undo回滾段,資料狀態的每次變化都會儲存在undo日誌裡。執行中某一步驟出了問題要回滾 通過該步驟前一段步驟對應的...