精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

分布式事務(wù)框架Seata客戶端的使用

云計(jì)算 分布式
在選用分布式事務(wù)模式時(shí),需要根據(jù)具體業(yè)務(wù)場(chǎng)景和對(duì)一致性的需求做出選擇。每種模式都有其優(yōu)勢(shì)和局限,沒有絕對(duì)的“最佳”選擇。對(duì)于開發(fā)者來說,了解各模式的內(nèi)部機(jī)制和可能的性能影響是非常重要的。

Seata (Simple Extensible Autonomous Transaction Architecture) 是一種開源的分布式事務(wù)解決方案,致力于在微服務(wù)架構(gòu)下提供高效且對(duì)業(yè)務(wù)無侵入的分布式事務(wù)服務(wù)。Seata 能夠幫助開發(fā)者輕松地解決在微服務(wù)架構(gòu)下服務(wù)間的數(shù)據(jù)一致性問題。

圖片圖片

在分布式系統(tǒng)中,一個(gè)業(yè)務(wù)操作通常會(huì)涉及到多個(gè)服務(wù)的協(xié)作,這些服務(wù)可能會(huì)對(duì)不同的數(shù)據(jù)庫進(jìn)行操作。傳統(tǒng)的分布式事務(wù)解決方案(如2PC,即兩階段提交)雖然能夠保證強(qiáng)一致性,但卻在性能和可用性方面存在不小的挑戰(zhàn)。因此,Seata 提出了一種基于AT、TCC、SAGA、XA等模式的輕量級(jí)分布式事務(wù)協(xié)調(diào)方案。

Seata 確實(shí)支持多種分布式事務(wù)模式,包括 AT(自動(dòng)補(bǔ)償事務(wù))、TCC(Try-Confirm-Cancel)、SAGA 和 XA(擴(kuò)展的兩階段提交協(xié)議)。每種模式都有自己的使用場(chǎng)景和特點(diǎn):

1. AT模式(Auto-Compensating Transaction)

圖片圖片

  • 適用場(chǎng)景:簡單的CRUD操作,不需要特殊處理的業(yè)務(wù)邏輯。
  • 特點(diǎn):

易于使用,開發(fā)者不需要編寫額外的補(bǔ)償邏輯,Seata 會(huì)自動(dòng)為每個(gè)分支事務(wù)生成撤銷(回滾)邏輯。

性能較好,因?yàn)樗鼫p少了準(zhǔn)備階段的通信開銷。

通過行鎖和UNDO_LOG(回濾日志),加鎖和數(shù)據(jù)改動(dòng)被記錄下來,保證在出現(xiàn)錯(cuò)誤時(shí)可以回滾事務(wù)。

@Service
public class OrderService {
    @GlobalTransactional(timeoutMills = 300000, name = "create-order")
    public void createOrder(Order order, Payment payment, Inventory inventory) {
        // 更新庫存
        inventoryService.reduceStock(inventory);


        // 創(chuàng)建支付記錄
        paymentService.pay(payment);


        // 創(chuàng)建訂單
        orderRepository.save(order);
    }
}

按照官方配置AT模式后,在方法前面添加GlobalTransactional注解。


AT模式的主要思想就是通過一個(gè)中間層進(jìn)行協(xié)調(diào)事務(wù)的確認(rèn)和回滾操作,將相應(yīng)的操作記錄在例如數(shù)據(jù)庫表里面,在提交后進(jìn)行事務(wù)的信息的刪除,再通過一個(gè)全局鎖來避免資源的競爭。其方式對(duì)業(yè)務(wù)代碼不需要侵入。

2. TCC模式(Try-Confirm-Cancel)

圖片圖片

  • 適用場(chǎng)景:業(yè)務(wù)邏輯較為復(fù)雜,或者需要明確的業(yè)務(wù)補(bǔ)償操作。
  • 特點(diǎn):

分為三個(gè)操作:Try(嘗試執(zhí)行業(yè)務(wù))、Confirm(確認(rèn)執(zhí)行業(yè)務(wù))、Cancel(取消執(zhí)行業(yè)務(wù)),業(yè)務(wù)邏輯被拆分成這三部分。

開發(fā)者需要自行實(shí)現(xiàn)這三個(gè)操作,提供更強(qiáng)的業(yè)務(wù)手動(dòng)控制能力。

具體的業(yè)務(wù)操作和補(bǔ)償邏輯是可見的,有助于處理復(fù)雜的業(yè)務(wù)場(chǎng)景。

//定義接口實(shí)現(xiàn)注解
@LocalTCC
public interface PaymentService {
    // "try" 方法,準(zhǔn)備資源,比如凍結(jié)用戶資金
    @TwoPhaseBusinessAction(name = "preparePay", commitMethod = "commitPay", rollbackMethod = "cancelPay")
    boolean preparePay(BusinessActionContext context, String accountId, double amount);
    // "confirm" 方法,確認(rèn)并實(shí)際扣除凍結(jié)的資金
    boolean commitPay(BusinessActionContext context);
    // "cancel" 方法,取消操作,解凍之前凍結(jié)的資金
    boolean cancelPay(BusinessActionContext context);
}


//然后,為接口提供一個(gè)實(shí)現(xiàn)類,并實(shí)現(xiàn)try、confirm和cancel方法:
@Service
public class PaymentServiceImpl implements PaymentService {
    @Autowired
    private AccountRepository accountRepository;


    @Override
    public boolean preparePay(BusinessActionContext context, String accountId, double amount) {
        // 實(shí)現(xiàn)資金的凍結(jié)邏輯
        // ...
        return true;
    }
    @Override
    public boolean commitPay(BusinessActionContext context) {
        // 實(shí)現(xiàn)實(shí)際扣除資金的邏輯
        // ...
        return true;
    }
    @Override
    public boolean cancelPay(BusinessActionContext context) {
        // 實(shí)現(xiàn)取消扣款,即解凍資金的邏輯
        // ...
        return true;
    }
}


//最后,在需要執(zhí)行TCC事務(wù)的業(yè)務(wù)邏輯中注入PaymentService并調(diào)用上述方法:
@Service
public class OrderService {
    @Autowired
    private PaymentService paymentService;
    @GlobalTransactional
    public void createOrder(Order order, String accountId, double amount) {
        // TCC try 階段
        boolean result = paymentService.preparePay(null, accountId, amount);
        if (!result) {
            throw new RuntimeException("Payment preparation failed.");
        }


        // TCC confirm 或 cancel 階段將由Seata框架根據(jù)全局事務(wù)的最終狀態(tài)自動(dòng)調(diào)用
        // ...
    }
}

其本質(zhì)的思想就是通過代碼編寫確認(rèn)機(jī)制和補(bǔ)償機(jī)制,這種方式需要對(duì)業(yè)務(wù)的代碼的侵入。

3. SAGA模式

  • 適用場(chǎng)景:長事務(wù)場(chǎng)景,例如一系列的步驟或服務(wù)調(diào)用需要在整體上保持一致性。
  • 特點(diǎn):

基于狀態(tài)機(jī)實(shí)現(xiàn),每個(gè)步驟都對(duì)應(yīng)狀態(tài)遷移過程中的一個(gè)節(jié)點(diǎn)。

不適用于標(biāo)準(zhǔn)的兩階段提交,而是將一個(gè)全局事務(wù)分解成多個(gè)局部事務(wù),通過定義前向操作和反向補(bǔ)償操作來保證整體一致性。

適用于事務(wù)執(zhí)行時(shí)間較長的業(yè)務(wù)流程,減少了鎖資源的持有時(shí)間。

// 偽代碼,僅為示例說明
StateMachineBuilder stateMachineBuilder = StateMachineBuilderFactory.create();
StateMachine stateMachine = stateMachineBuilder
    .state("Start")
    .initial("CreateOrder")
        .to("ReserveInventory").on("InventoryReserved")
        .to("CancelOrder").on("InventoryReserveFailed")
    .step("ReserveInventory")
        .to("ProcessPayment").on("PaymentProcessed")
        .to("RevertInventory").on("PaymentProcessFailed")
    .step("ProcessPayment")
        .to("End").on("Success")
    .step("CancelOrder")
    .compensateWith("CancelOrderOperation")
    .step("RevertInventory")
    .compensateWith("RevertInventoryOperation")
    .build();
stateMachine.start();

使用狀態(tài)機(jī)來進(jìn)行多事務(wù)的描述其本質(zhì)的思想就是對(duì)多事務(wù)進(jìn)行確認(rèn)和補(bǔ)償,這種也會(huì)需要對(duì)業(yè)務(wù)代碼的侵入。

4. XA模式

圖片圖片

  • 適用場(chǎng)景:需要嚴(yán)格的ACID事務(wù),并且各參與方(數(shù)據(jù)庫、消息中間件等)支持XA接口。
  • 特點(diǎn):

基于兩階段提交(2PC),第一階段是準(zhǔn)備階段,第二階段是提交或回濾階段。

實(shí)現(xiàn)了跨資源管理器的全局事務(wù)。

通常比AT模式效率低,因?yàn)樗诘谝浑A段結(jié)束時(shí)需要所有參與者就事務(wù)結(jié)果達(dá)成一致,然后在第二階段進(jìn)行提交或回滾。

將動(dòng)態(tài)的代理數(shù)據(jù)源替換成XA模式,然后和AT模式一樣,在需要的方法前面添加GlobalTransactional注解

@Service
public class OrderService {
    @Autowired
    private OrderRepository orderRepository;
    @GlobalTransactional
    public void createOrder(Order order) {
        // 此處的數(shù)據(jù)庫操作會(huì)自動(dòng)被Seata管理
        orderRepository.save(order);
        // ...其他可能涉及數(shù)據(jù)庫操作的代碼
    }
}

其本質(zhì)的思想就是與AT模式類似,但是需要基于數(shù)據(jù)庫能支持XA模式才能運(yùn)行,AT模式是在中間層進(jìn)行確認(rèn)和回滾的日志記錄,而XA模式是將記錄交給數(shù)據(jù)庫來運(yùn)行,也避免了AT模式下手動(dòng)操作數(shù)據(jù)導(dǎo)致問題。XA模式不需要侵入業(yè)務(wù)代碼。

圖片圖片

在選用分布式事務(wù)模式時(shí),需要根據(jù)具體業(yè)務(wù)場(chǎng)景和對(duì)一致性的需求做出選擇。每種模式都有其優(yōu)勢(shì)和局限,沒有絕對(duì)的“最佳”選擇。對(duì)于開發(fā)者來說,了解各模式的內(nèi)部機(jī)制和可能的性能影響是非常重要的。

責(zé)任編輯:武曉燕 來源: 程序員技術(shù)成長之路
相關(guān)推薦

2022-06-27 08:21:05

Seata分布式事務(wù)微服務(wù)

2022-06-21 08:27:22

Seata分布式事務(wù)

2022-03-24 07:51:27

seata分布式事務(wù)Java

2022-07-10 20:24:48

Seata分布式事務(wù)

2021-08-06 08:33:27

Springboot分布式Seata

2025-04-28 00:44:04

2023-01-06 09:19:12

Seata分布式事務(wù)

2025-04-30 10:44:02

2024-10-09 14:14:07

2021-04-23 08:15:51

Seata XA AT

2023-11-06 13:15:32

分布式事務(wù)Seata

2023-08-17 10:23:07

擴(kuò)展方案

2011-11-30 14:21:19

Java分布式緩存

2020-03-12 19:00:48

Ceph分布式存儲(chǔ)

2024-08-19 09:05:00

Seata分布式事務(wù)

2025-05-07 00:10:00

分布式事務(wù)TCC模式

2020-12-09 09:14:57

SpringCloudSeata 分布式

2022-07-03 14:03:57

分布式Seata

2020-12-08 11:43:03

Spring Clou分布式Seata

2020-04-28 12:18:08

Seata模式分布式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲美女精品成人在线视频| 一区二区三区 在线观看视频| 国产精品黄视频| 在线日韩国产网站| 国产精品欧美大片| 欧美亚洲国产一区二区三区va | 亚洲精品欧美在线| 麻豆成人av| 国产精品自偷自拍| 免费视频久久| 欧美激情区在线播放| 亚洲精品91在线| 国产精品宾馆| 制服丝袜中文字幕一区| 国产最新免费视频| 亚洲h片在线看| 久久久777精品电影网影网| 亚洲自拍高清视频网站| 最近中文字幕免费在线观看| 亚洲狼人精品一区二区三区| 久久九九免费视频| 免费看黄色的视频| 美女网站色精品尤物极品姐弟| 欧美日韩高清一区二区| 91视频最新入口| 男女视频在线| 亚洲乱码国产乱码精品精的特点| 日韩国产在线一区| 青青免费在线视频| av在线综合网| 岛国视频一区| 精品国产av一区二区三区| 青青国产91久久久久久| 国产盗摄xxxx视频xxx69| 亚洲另类欧美日韩| 亚洲视频观看| 欧美日韩ab片| 少妇影院在线观看| 亚洲一区二区| 久久精品成人欧美大片| 国产一区二区三区视频播放| 大片网站久久| 一区国产精品视频| 国产一二三四五区| 国产精品免费不| 精品视频中文字幕| 风间由美一二三区av片| 国产一级成人av| 精品欧美乱码久久久久久| 久久精品国产99久久99久久久| 福利一区二区免费视频| 欧美日韩精品专区| 污视频网站观看| 四虎精品一区二区免费| 欧美高清性hdvideosex| 九九九久久久久久久| 久久九九精品视频| 精品国产3级a| v8888av| 久久成人高清| 日韩天堂在线视频| 欧美卡一卡二卡三| 999亚洲国产精| 欧美一级电影久久| 波多野结衣理论片| 久久99精品久久久| 97免费资源站| 亚洲色图21p| 久久精品免费在线观看| 亚欧洲精品在线视频免费观看| 97最新国自产拍视频在线完整在线看| 中文字幕一区二区三区在线播放| 加勒比海盗1在线观看免费国语版| 日本动漫同人动漫在线观看| 欧美日韩亚洲精品内裤| 久久久久久香蕉| 99久久久国产| 亚洲精品v天堂中文字幕 | 亚洲成人一品| 中文字幕欧美视频在线| 黄视频网站免费看| 亚洲人体大胆视频| 国产精品美女无圣光视频| va婷婷在线免费观看| zzijzzij亚洲日本少妇熟睡| 欧美婷婷久久| av毛片在线看| 欧美性色视频在线| 51自拍视频在线观看| 亚洲传媒在线| 久久夜色精品国产亚洲aⅴ| 国产精品suv一区二区69| 日本色综合中文字幕| 99热国产免费| 91亚洲欧美| 亚洲国产欧美日韩另类综合| 亚洲黄色a v| 69精品国产久热在线观看| 亚洲乱码av中文一区二区| 精品无码一区二区三区蜜臀| 99精品福利视频| 成人精品一区二区三区| 欧美午夜黄色| 亚洲国产视频一区| 国产色视频在线播放| 久久97精品| 久久久精品视频在线观看| 亚洲不卡视频在线观看| 成人综合婷婷国产精品久久蜜臀 | 91免费观看| 国产69久久| 精品欧美激情精品一区| 免费高清视频在线观看| 欧美日韩国产免费观看视频| 久久免费福利视频| 国产情侣在线播放| 国产精品乱码妇女bbbb| www.亚洲天堂网| 粉嫩av一区二区| 久久伊人色综合| 中文字幕一区二区人妻痴汉电车| 99精品欧美一区二区三区小说| 色撸撸在线观看| 日韩精品一区二区三区av| 亚洲精品美女在线| 久久久久久久久久99| 久久精品国产久精国产爱| 欧美日韩综合网| 欧亚在线中文字幕免费| 亚洲精品在线观| 九九九久久久久| 国产九色精品成人porny| 亚洲欧洲精品一区二区三区波多野1战4| 色偷偷色偷偷色偷偷在线视频| 精品粉嫩超白一线天av| 久草免费在线观看视频| 国产精品自拍网站| 欧美少妇一区二区三区| 亚洲欧洲二区| 日韩视频永久免费观看| 一二三四区视频| 国产精品不卡在线观看| 亚洲a级黄色片| 婷婷成人基地| 成人看片人aa| 国产激情在线观看| 日韩欧美一级二级| 国产精品第九页| 成人不卡免费av| 91成人在线观看喷潮教学| ccyy激情综合| 性欧美视频videos6一9| 亚洲日本在线播放| 色综合天天综合网天天狠天天 | 韩国av电影在线观看| 亚洲最快最全在线视频| 国产大学生视频| 亚洲永久免费| 亚洲精品一区二区三| 日本电影久久久| 欧美精品免费在线| 色欲久久久天天天综合网| 精品福利免费观看| 日本一区二区视频在线播放| 久久99国产精品久久| 天天干天天操天天干天天操| 日韩精品中文字幕吗一区二区| 色综合久久中文字幕综合网小说| 天天干在线观看| 欧美自拍丝袜亚洲| www.毛片com| 99re热这里只有精品免费视频| 五月婷婷深爱五月| 久久精品欧美一区| 精品欧美日韩| 国产精品亚洲成在人线| 欧美日本国产在线| 毛片网站在线观看| 欧美一区二区在线不卡| 日本五十路女优| 国产欧美一区二区精品仙草咪| 久久久久久久久久久久久久久国产| 女人色偷偷aa久久天堂| 欧美另类高清视频在线| 亚洲欧美在线综合| 88国产精品欧美一区二区三区| porn视频在线观看| 精品国产一区二区精华| 真实的国产乱xxxx在线91| 亚洲欧美另类图片小说| 特级西西人体wwwww| 国内精品第一页| 欧美 日韩 激情| 夜间精品视频| 秋霞久久久久久一区二区| 国产美女视频一区二区| 欧美制服第一页| 69成人在线| 在线视频亚洲欧美| 神马午夜一区二区| 91精品国产综合久久精品麻豆| 伊人中文字幕在线观看| 亚洲精品第1页| 国产一区二区三区四区五区六区| 国产精品1区二区.| 国产高清视频网站| 99综合在线| 无码人妻精品一区二区蜜桃百度| 亚洲精品中文在线| 国内国产精品天干天干| 国产视频一区欧美| 国内精品国产三级国产99| 红桃视频在线观看一区二区| 国产一区二区精品在线| 欧美一级大片在线视频| 国产精品久久久久久网站| 成人一级福利| 欧美激情久久久久久| www在线观看播放免费视频日本| 亚洲视频欧洲视频| 日本在线视频1区| 精品国产一二三区| 亚洲成a人片在线| 在线电影一区二区三区| 亚洲无码精品国产| 欧美天天综合网| 懂色av蜜臀av粉嫩av喷吹| 欧美小视频在线观看| 国产极品美女高潮无套嗷嗷叫酒店| 亚洲人吸女人奶水| 日本一级片免费| 中文字幕欧美一| 网站永久看片免费| 中文字幕亚洲视频| 手机看片国产日韩| 亚洲欧美综合在线精品| 亚洲黄色网址大全| 国产精品电影院| 黄色av片三级三级三级免费看| 国产精品亲子乱子伦xxxx裸| 青青青视频在线播放| 亚洲国产精品精华液2区45| 精品人妻无码一区二区三区换脸| www国产成人| 国产熟妇久久777777| 2021中文字幕一区亚洲| 亚洲欧洲久久久| 国产精品乱人伦| 精品无码一区二区三区蜜臀| 一区二区三区在线免费视频| 久久亚洲AV无码| 午夜精品一区二区三区三上悠亚| 日本免费在线播放| 福利视频一区二区| 国产精品sm调教免费专区| 欧美日韩精品三区| 99国产揄拍国产精品| 欧美精品一区二区三区视频| 五月天婷婷视频| 永久免费看mv网站入口亚洲| 色网站在线看| 欧美日韩高清区| 岛国av在线播放| 国产精品 欧美在线| 日韩在线激情| 97碰碰视频| 婷婷五月色综合香五月| 日韩偷拍一区二区| 亚洲一本二本| 欧洲av无码放荡人妇网站| 日韩va欧美va亚洲va久久| 国内自拍第二页| 成人综合婷婷国产精品久久蜜臀 | 波多野结衣av一区二区全免费观看| 精品91在线| 激情五月亚洲色图| 国内精品写真在线观看| 精品国产人妻一区二区三区| 国产网站一区二区| 九九久久免费视频| 色婷婷av久久久久久久| 国产在成人精品线拍偷自揄拍| 亚洲精品一区二区三区福利 | 亚洲成人一品| 一区二区三区国| 亚洲人成久久| 亚洲18在线看污www麻豆 | 欧美mv日韩mv亚洲| 国产在线一二三| 欧美黑人一区二区三区| 日韩高清成人| 国产精品亚洲不卡a| 第一社区sis001原创亚洲| 日本一级黄视频| 日韩国产精品久久| 插我舔内射18免费视频| 亚洲欧美一区二区在线观看| 性无码专区无码| 日韩欧美国产高清| 9i精品一二三区| 17婷婷久久www| 日韩av综合| 四虎一区二区| 国产精品一国产精品k频道56| 国产精品999.| 亚洲国产岛国毛片在线| 国产精品自拍视频一区| 欧美精选一区二区| 国产女主播在线直播| 性欧美在线看片a免费观看| 99精品在线免费观看| 色姑娘综合av| 久久九九精品| 三级男人添奶爽爽爽视频| 伊人夜夜躁av伊人久久| 亚洲综合精品国产一区二区三区 | 免费日韩av片| 小毛片在线观看| 亚洲一区二区三区四区在线| 国产乱人乱偷精品视频a人人澡| 亚洲网址你懂得| 巨茎人妖videos另类| 久久99影院| 99精品国产99久久久久久福利| 18深夜在线观看免费视频| 日韩一区中文字幕| 91久久久久国产一区二区| 一区二区三区四区精品| 国产精品亚洲一区二区三区在线观看| 九九九九精品| 亚洲黄色视屏| 午夜免费福利影院| 亚洲国产成人av好男人在线观看| 国产av一区二区三区精品| 久久精品夜夜夜夜夜久久| 人人精品久久| 玖玖精品在线视频| 久久99精品久久久久婷婷| 波兰性xxxxx极品hd| 欧美精品日韩一本| 黄色精品在线观看| 91久久久久久久一区二区| 羞羞答答成人影院www| 日韩视频在线观看一区二区三区| 日韩毛片视频在线看| 国产裸体永久免费无遮挡| 美女福利精品视频| 综合激情网...| 男人添女人下部高潮视频在观看| www.性欧美| 无码人妻精品一区二区蜜桃色欲 | 后入内射无码人妻一区| 欧美日韩日日摸| 久草免费在线| 国产91免费视频| 亚洲激情欧美| 中文字幕在线看高清电影| 91国产免费观看| 黄色网页在线免费观看| 亚洲xxx自由成熟| 亚洲激情在线| 性欧美一区二区| 欧美蜜桃一区二区三区| 欧美性爽视频| 久久精品人成| 久久精品久久综合| 欧美三级日本三级| 亚洲电影免费观看高清完整版在线观看 | 欧美性受xxxx黑人xyx性爽| 免费av网站在线看| 国产精品久久精品国产| 久久国产精品久久w女人spa| 天天爽天天爽天天爽| 日韩精品在线一区| 91精品论坛| 这里只有精品66| 99久久久精品| 中文字幕第2页| 欧美激情国产日韩精品一区18| 日本精品影院| 欧洲美女亚洲激情| 欧美性猛交xxxx黑人猛交| 欧美精品日韩少妇| 国产视频一区二区不卡| 日韩黄色免费网站| 成人免费毛片东京热| 亚洲精品综合精品自拍| 精品一区二区三区免费看| 99爱视频在线| 亚洲欧美日韩在线| 美国一级片在线免费观看视频| 91性高湖久久久久久久久_久久99| 亚洲国内欧美| 中文字幕91视频| 亚洲欧美综合v| 在线精品国产亚洲| 美女一区二区三区视频| 亚洲va韩国va欧美va精品| 欧美成年黄网站色视频| 蜜桃91精品入口|