中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

seata項目中完整的分布式事務過程

發布時間:2021-09-01 19:34:27 來源:億速云 閱讀:192 作者:chen 欄目:大數據

本篇內容介紹了“seata項目中完整的分布式事務過程”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一個完整的分布式事務大致分為以下幾步:

  1. TM(bussiness) 向 TC(seata-server) 申請開啟一個全局事務,全局事務創建成功并生成一個全局唯一的 XID。

  2. XID 在微服務調用鏈路的上下文中傳播。

  3. RM (account,order,storage)向 TC 注冊分支事務,將其納入 XID 對應全局事務的管轄。

  4. TM 向 TC 發起針對 XID 的全局提交或回滾決議。

  5. TC 調度 XID 下管轄的全部分支事務完成提交或回滾請求。

相關概念

Transaction Coordinator (TC): 事務協調器,維護全局事務的運行狀態,負責協調并驅動全局事務的提交或回滾;
Transaction Manager(TM): 控制全局事務的邊界,負責開啟一個全局事務,并最終發起全局提交或全局回滾的決議;
Resource Manager (RM): 控制分支事務,負責分支注冊、狀態匯報,并接收事務協調器的指令,驅動分支(本地)事務的提交和回滾;

我們模擬一個正常商品下單的過程,整個流程涉及到以下幾個步驟:

(1)調用Bussiness服務購買商品;

(2)Bussiness調用storage服務檢查并減少庫存;

(3)Business調用order服務下單;

(4)order服務調用account服務入賬。

模擬客戶下單的整個流程如下所示

seata項目中完整的分布式事務過程

(注意:圖中的全局事務和分支事務是在調用接口時,由seata代理自動注冊的)

1.客戶下單。

2.請求進入Business服務后,調用下單接口;

下單接口內部實現如下圖所示:

seata項目中完整的分布式事務過程

該接口開啟了一個全局事務,全局事務開啟后會在global_table中創建一條全局事務記錄(如下圖所示),詳細記錄了全局事務的id發起者名稱,事務所屬服務組,接口名稱等等,記錄在事務結束后會自動刪除。

seata項目中完整的分布式事務過程

下單接口的操作流程是 先扣庫存,扣除成功后再創建訂單。

3.扣減庫存時調用庫存服務的deduct()接口,   接口的詳細實現如下圖所示

seata項目中完整的分布式事務過程

該接口是在全局事務內調用的,因此可以獲取到全局事務的XID,通過該ID可以去global_table中查詢全局事務的詳細信息,如狀態等。

該接口也開啟了事務,因此會創建一個分支事務,并在branch_table表中插入一條分支事務記錄,分支事務信息如下

seata項目中完整的分布式事務過程

4.庫存扣除成功后,調用訂單服務下單。

5下單成功后,調用賬戶服務扣錢。

“seata項目中完整的分布式事務過程”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石门县| 星座| 田东县| 中西区| 孟村| 泾阳县| 清涧县| 边坝县| 册亨县| 安吉县| 赣榆县| 澄江县| 怀来县| 永顺县| 宁强县| 许昌县| 乌苏市| 永宁县| 仪征市| 吉安市| 玉门市| 财经| 嵊泗县| 万安县| 江源县| 桐柏县| 抚州市| 海丰县| 怀远县| 侯马市| 健康| 伊吾县| 镇远县| 滨海县| 新竹县| 德昌县| 通许县| 财经| 洞口县| 乡宁县| 抚州市|