微服務之間通過遠端呼叫來實現事務控制。
比如:訂單微服務和庫存微服務,下單的同時訂單微服務請求庫存服務減少庫存。
簡言之:跨jvm程序產生的分布式事務。
當單體系統訪問多個資料庫例項時就產生分布式事務。
比如:使用者資訊和訂單資訊分別在兩個不同的(mysql)關聯式資料庫例項。使用者管理系統刪除使用者資訊,需要分別刪除使用者資訊和使用者的訂單資訊。由於資料分布在不同的資料庫例項上,需要操作不同的資料庫連線池來運算元據,此時就產生了分布式事務。
簡言之:跨資料庫例項產生分布式事務。
多個服務訪問同乙個資料庫例項
訂單微服務和庫存微服務同時訪問同乙個資料庫例項也會產生分布式事務。用於兩個服務跨jvm程序,兩個微服務分別持有了不同的資料庫鏈結,進行資料庫的資料操作。這樣同樣也會產生分布式事務。
分布式事務的理解
當資料庫單錶一年產生的資料超過1000w,那麼就要考慮分庫分表,具體分庫分表的原理在此不做解釋,以後有空詳細說,簡單的說就是原來的乙個資料庫變成了多個資料庫。這時候,如果乙個操作既訪問01庫,又訪問02庫,而且要保證資料的一致性,那麼就要用到分布式事務。所謂的soa化,就是業務的服務化。比如原來單機...
分布式事務 分布式事務的實現
如果在多個服務中需要對不同的資料庫進行操作。因為不同服務操作的資料庫都不同,所以保證在同乙個事務中完成操作顯然是不科學的。那實現分布式事務的思想 1 方法入口,建立一條日誌記錄,狀態定義為初始狀態,即儲存本條日誌記錄 可以儲存在資料庫中,也可以寫出到本地磁碟檔案 2 可以在非同步執行緒或在定時任務中...
分布式事務的簡單理解
單獨的系統中,事務是本地事務。而在分布式系統中,乙個業務的完成需要及多個系統,需要涉及多個資料來源。比如訂單系統,下訂單這個業務需要涉及支付系統,庫存系統,物流系統等,假如庫存系統出現問題,事務回滾,那麼其他子系統的事務也必須回滾,否則就會出現事務不一致,導致下訂單操作出現錯誤。多個資料來源,就需要...