最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

一文讀懂分布式事務的解決方案

2023-07-04 23:30 作者:懶人Java屈原  | 我要投稿

在?一文讀懂分布式事務原理?中介紹了二階段提交與三階段提交,今天我們來聊聊市面上一些分布式的解決方案。

1.基于MQ的方案

RocketMQ是支持事務消息的,可以直接使用。但是像RabbitMQ其他中間件不支持,可以采用以下的辦法:消息發(fā)送方與接收方,各建一張消息處理表A與B

消息發(fā)送方事務

1.執(zhí)行業(yè)務邏輯1

2.表A添加一條待處理狀態(tài)消息。

消息接收方事務

1.表B添加一條消息記錄

2.執(zhí)行業(yè)務邏輯2

3.異步回調修改A表對應消息狀態(tài)為已處理

定時任務

定時回查表A待處理的消息,去接收方查詢表B查詢對應關系的消息數(shù)據(jù),會有如下兩種情況

1.表B能查到消息,代表業(yè)務邏輯2執(zhí)行成功,只需要修改表A的狀態(tài)

2.表B查詢不到數(shù)據(jù),代表接收方可能處理失敗了。重新發(fā)送消息走一遍邏輯。

2.LCN框架

由事務的參與方(TxClient)與事務協(xié)調者(TxManager)兩部分組成。如下圖事務發(fā)起方、參與方A、參與方B都會向事務協(xié)調者申請各自的groupId,最后加入到同一個事務組進行管理。


lcn的使用

1.一個獨立的工程啟用TxManager

2.需要使用lcn的工程 方法上加 @LcnTransaction注解,配置文件指明TxManger的地址。

lcn缺點

可能造成死鎖、性能較差

3.Seata框架使用

由阿里巴巴開發(fā),基于數(shù)據(jù)庫的,分布式事務框架。

如何使用:

1.每個業(yè)務庫新建UNDO_LOG 表

2.需要使用分布式事務的方法加上 @GlobalTransactional注解

3.在方法執(zhí)行時,UNDO_LOG會生成每個本地事務的回滾語句,如果所有的事務都執(zhí)行成功就會刪除UNDO_LOG 表的數(shù)據(jù)。如果失敗會使用回滾語句進行回滾。


一文讀懂分布式事務的解決方案的評論 (共 條)

分享到微博請遵守國家法律
澄城县| 南溪县| 登封市| 杭锦后旗| 秭归县| 资兴市| 湘乡市| 安福县| 临沭县| 灵石县| 缙云县| 栾城县| 嵊泗县| 英超| 香河县| 金山区| 永济市| 临沭县| 红河县| 星子县| 台南县| 浮山县| 道真| 桓仁| 杂多县| 和田市| 景泰县| 独山县| 清流县| 万山特区| 吉林省| 文安县| 库伦旗| 抚宁县| 建湖县| 凭祥市| 中宁县| 衡东县| 手游| 绵竹市| 绥德县|