官术网_书友最值得收藏!

1.分布式事務講解

事務原理

在講分布式事務之前,先聊一下事務。簡單講事務是數據庫管理系統執行過程中的一個邏輯單元,它能保證要么一組數據庫操作全部執行成功,要么全部失敗,而做到這些的原理就是事務的ACID四大特性。

AAtomic原子性的簡稱,事務作為一個整體來執行,要么全部成功,要么全部失敗。

CConsistency一致性的簡稱,事務應確保數據從一個一致的狀態轉變為另一個一致的狀態。

IIsolation隔離性的簡稱,多個事務并發執行時,一個事務的執行不影響其他事務的執行。

DDurability持久性的檢查,已提交的事務修改數據會被持久保存。

傳統單機數據庫事務

在傳統單體應用架構中,我們的業務數據通常都是存儲在一個數據庫中的,應用中的各個模塊對數據庫直接進行操作。在這種場景中,事務是由數據庫提供的基于ACID特性來保證的。

例如,在一個用戶購物下單的場景中,涉及到用戶、訂單、支付、庫存等模塊的一系列協同操作,如果其中一個模塊出現問題,我們就可以通過數據庫提供的事務特性來保證本次下單操作要么都成功,要么都失敗。因為這些模塊用的是同一個數據庫,所處的是同一個事務管理器,不需要做額外的其他操作就能保證事務的特性。

微服務的分布式事務

從廣義上來講,分布式事務其實也是事務,只是區別于單機事務不同之處是:由于業務上的定義和系統微服務架構的設計,很多大型的業務流程都被拆分成了多個單一的基礎服務,而為了保證每個微服務都能獨立進行開發和部署運行,通常都會采用一個微服務一個數據庫的架構配套,然后將內部服務進行封裝,以Rest api方式對外暴露。這樣以往基于數據庫來實現的數據操作,就變成了多個對外提供微服務的微服務系統之間的協同操作。在這種情況下,原有的單機事務方式已經不能夠使用了,因為多個服務就意味著存在多個事務管理器和多個資源,單個微服務的本地事務管理器只能保證本地事務的ACID,為了在多個服務之間能保證業務的事務性,參與分布式事務的微服務通常會依托協調器來完成相關的一致性協調操作。

那我們在微服務系統實際開發中,如何去實現協調器以處理分布式事務呢,這里的解決方案是采用華為提供的servicecomb-pack框架來解決這一問題。

主站蜘蛛池模板: 韩城市| 岚皋县| 河北省| 通道| 图木舒克市| 左权县| 宁城县| 旬阳县| 德令哈市| 靖安县| 田林县| 年辖:市辖区| 济阳县| 张家界市| 盐山县| 阿鲁科尔沁旗| 托克逊县| 枝江市| 祁门县| 文水县| 缙云县| 广东省| 平山县| 化隆| 大兴区| 兰州市| 富川| 堆龙德庆县| 临猗县| 中超| 梨树县| 吐鲁番市| 红原县| 平顶山市| 岑巩县| 武宁县| 临桂县| 东安县| 太原市| 大足县| 正镶白旗|