分布式事務

2021-09-28 17:56:01 字數 593 閱讀 1287

分布式事務指事務的參與者、支援事務的伺服器、資源伺服器以及事務管理器分別位於不同的分布式系統的不同節點之上。

簡單的說,就是一次大的操作由不同的小操作組成,這些小的操作分布在不同的伺服器上,且屬於不同的應用,分布式事務需要保證這些小操作要麼全部成功,要麼全部失敗。

本質上來說,分布式事務就是為了保證不同資料庫的資料一致性。

上面說過出現分布式事務的兩個原因,其中有個原因是因為微服務過多。我見過太多團隊乙個人維護幾個微服務,太多團隊過度設計,搞得所有人疲勞不堪。

而微服務過多就會引出分布式事務,這個時候我不會建議你去採用下面任何一種方案,而是請把需要事務的微服務聚合成乙個單機服務,使用資料庫的本地事務。

因為不論任何一種方案都會增加你系統的複雜度,這樣的成本實在是太高了,千萬不要因為追求某些設計,而引入不必要的成本和複雜度。

兩階段提交(2pc)

兩階段提交(two-phase commit,2pc),通過引入協調者(coordinator)來協調參與者的行為,並最終決定這些參與者是否要真正執行事務。

需要注意的是,在準備階段,參與者執行了事務,但是還未提交。只有在提交階段接收到協調者發來的通知後,才進行提交或者回滾。

存在的問題:

分布式 分布式事務

是資料庫執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。事務的acid四大特性 原子性 atomicity 事務作為乙個整體被執行。一致性 consistency 從乙個一致的狀態轉換到另乙個一致的狀態。隔離性 isolation 多個事務併發執行時,併發事務之間互相影響的程度。永續性 d...

分布式事務 分布式事務的實現

如果在多個服務中需要對不同的資料庫進行操作。因為不同服務操作的資料庫都不同,所以保證在同乙個事務中完成操作顯然是不科學的。那實現分布式事務的思想 1 方法入口,建立一條日誌記錄,狀態定義為初始狀態,即儲存本條日誌記錄 可以儲存在資料庫中,也可以寫出到本地磁碟檔案 2 可以在非同步執行緒或在定時任務中...

分布式之分布式事務

被人問到分布式事務,之前學rabbitmq 的時候學到過rabbitmq 高階的事務,因為沒有用過,所有沒有回答好。這裡總結一下。1.單機版事務。事務的四大特性 acid a.原子性 b.一致性 c.隔離性 d.永續性 單機事務可以通過設定事務的隔離級別 參見spring 的事務隔離級別 2.分布式...