国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

分布式事務(wù)框架Seata

這篇具有很好參考價(jià)值的文章主要介紹了分布式事務(wù)框架Seata。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

分布式事務(wù)框架Seata
一、seata是什么

  1. 在微服務(wù)架構(gòu)下,由于數(shù)據(jù)庫和應(yīng)用服務(wù)的拆分,導(dǎo)致原本一個(gè)事務(wù)單元中的多個(gè)
    DML 操作,變成了跨進(jìn)程或者跨數(shù)據(jù)庫的多個(gè)事務(wù)單元的多個(gè) DML 操作,
    而傳統(tǒng)的數(shù)據(jù)庫事務(wù)無法解決這類的問題,所以就引出了分布式事務(wù)的概念。
  2. 分布式事務(wù)本質(zhì)上要解決的就是跨網(wǎng)絡(luò)節(jié)點(diǎn)的多個(gè)事務(wù)的數(shù)據(jù)一致性問題,業(yè)內(nèi)常
    見的解決方法有兩種
    a. 強(qiáng)一致性,就是所有的事務(wù)參與者要么全部成功,要么全部失敗,全局事務(wù)協(xié)
    調(diào)者需要知道每個(gè)事務(wù)參與者的執(zhí)行狀態(tài),再根據(jù)狀態(tài)來決定數(shù)據(jù)的提交或者
    回滾!
    b. 最終一致性,也叫弱一致性,也就是多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)據(jù)允許出現(xiàn)不一致的情
    況,但是在最終的某個(gè)時(shí)間點(diǎn)會(huì)達(dá)成數(shù)據(jù)一致。
    基于 CAP 定理我們可以知道,強(qiáng)一致性方案對(duì)于應(yīng)用的性能和可用性會(huì)有影響,所以
    對(duì)于數(shù)據(jù)一致性要求不高的場(chǎng)景,就會(huì)采用最終一致性算法。
  3. 在分布式事務(wù)的實(shí)現(xiàn)上,對(duì)于強(qiáng)一致性,我們可以通過基于 XA 協(xié)議下的二階段提
    交來實(shí)現(xiàn),對(duì)于弱一致性,可以基于 TCC 事務(wù)模型、可靠性消息模型等方案來實(shí)
    現(xiàn)。
  4. 市面上有很多針對(duì)這些理論模型實(shí)現(xiàn)的分布式事務(wù)框架,我們可以在應(yīng)用中集成這
    些框架來實(shí)現(xiàn)分布式事務(wù)。而 Seata 就是其中一種,它是阿里開源的分布式事務(wù)解決方案,提供了高性能且簡單易用的分布式事務(wù)服務(wù)。

二、seata模塊
TC (Transaction Coordinator) - 事務(wù)協(xié)調(diào)者

維護(hù)全局和分支事務(wù)的狀態(tài),驅(qū)動(dòng)全局事務(wù)提交或回滾。

TM (Transaction Manager) - 事務(wù)管理器

定義全局事務(wù)的范圍:開始全局事務(wù)、提交或回滾全局事務(wù)。

RM (Resource Manager) - 資源管理器

管理分支事務(wù)處理的資源,與TC交談以注冊(cè)分支事務(wù)和報(bào)告分支事務(wù)的狀態(tài),并驅(qū)動(dòng)分支事務(wù)提交或回滾。

在 Seata 中,一個(gè)分布式事務(wù)的生命周期如下:

TM 請(qǐng)求 TC 開啟一個(gè)全局事務(wù)。TC 會(huì)生成一個(gè) XID 作為該全局事務(wù)的編號(hào)。
XID,會(huì)在微服務(wù)的調(diào)用鏈路中傳播,保證將多個(gè)微服務(wù)的子事務(wù)關(guān)聯(lián)在一起。
RM 請(qǐng)求 TC 將本地事務(wù)注冊(cè)為全局事務(wù)的分支事務(wù),通過全局事務(wù)的 XID 進(jìn)行關(guān)聯(lián)。
TM 請(qǐng)求 TC 告訴 XID 對(duì)應(yīng)的全局事務(wù)是進(jìn)行提交還是回滾。
TC 驅(qū)動(dòng) RM 們將 XID 對(duì)應(yīng)的自己的本地事務(wù)進(jìn)行提交還是回滾。

分布式事務(wù)框架Seata,springcloud,分布式

Seata的XA模型:
RM一階段:

1)TM開啟全局事務(wù)

2)TM調(diào)用分支RM、RM將分支注冊(cè)到TC、RM執(zhí)行SQL(但不提交!)、RM將執(zhí)行狀態(tài)報(bào)告給TC

TC二階段:

1)TM提交全局事務(wù)

2)TC統(tǒng)計(jì)各分支狀態(tài),如果都成功,則通知RM提交。如果失敗,則通知RM回滾。
分布式事務(wù)框架Seata,springcloud,分布式
Seata AT模型:
一階段:TM開啟全局事務(wù)、TM調(diào)用分支、RM注冊(cè)分支事務(wù)、RM記錄undolog日志、RM提交事務(wù)、TCC記錄各分支狀態(tài)

二階段:TM通知提交/回滾全局事務(wù)、TC檢查各分支事務(wù)狀態(tài),成功,則刪除undolog日志,失敗,則根據(jù)undolog日志回滾。
分布式事務(wù)框架Seata,springcloud,分布式
臟寫問題:

如果一個(gè)A事務(wù)執(zhí)行sql并提交,另一個(gè)B事務(wù)也執(zhí)行提交,此時(shí)A事務(wù)進(jìn)行回滾,則會(huì)回滾為A記錄的undolog日志,而B事務(wù)的更新修改記錄會(huì)被忽略,出現(xiàn)了臟寫問題。

分布式事務(wù)框架Seata,springcloud,分布式
解決:引入全局鎖,在A事務(wù)提價(jià)事務(wù)釋放DB鎖之前,申請(qǐng)全局鎖,而此時(shí)如果B事務(wù)進(jìn)行操作修改,在執(zhí)行更新數(shù)據(jù)庫操作前會(huì)獲取全局鎖,獲取失敗,則無法更新,不斷重試,但不能一直讓其重試,否則A嘗試獲取B占用的DB鎖則會(huì)造成死鎖,一般讓其重試30秒,然后失敗則放棄其占有的DB鎖,執(zhí)行失敗。A鎖此時(shí)就能獲取DB鎖,執(zhí)行回滾,然后再釋放全局鎖。

又引來新問題:如果是另一不歸seata管理的事務(wù)的?全局鎖失敗!

XA也自動(dòng)帶來了解決的方案:

1)首先記錄更新前的記錄

2)記錄更新后的記錄。

完整正確的執(zhí)行流程如下:

1)原數(shù)據(jù)假設(shè)為100,undolog記錄100這個(gè)數(shù)值。

2)A事務(wù)獲取DB鎖將數(shù)據(jù)修改為90,此時(shí)undolog記錄這條90。

3)A事務(wù)獲取全局鎖,并提交事務(wù)釋放DB數(shù)據(jù)庫鎖

4)A事務(wù)回滾,在回滾為100前,會(huì)比較此時(shí)數(shù)據(jù)是否是90。假設(shè),不歸Seata管理的B事務(wù),不需要獲取全局鎖,然后成功獲取DB鎖并修改了數(shù)據(jù)為80,則此時(shí)A事務(wù)將90(A修改后)與80(B修改)比較,則回滾失敗。
分布式事務(wù)框架Seata,springcloud,分布式
Seata TCC模型:
Try: 判斷是否有可用數(shù)據(jù),足夠則凍結(jié)可用數(shù)據(jù)。

Confirm: 完成資源的操作業(yè)務(wù);要求try成功,confirm一定要成功。

Cancel: 預(yù)留資源釋放,可以理解為try方向操作。

階段1:檢查資源是否足夠,足夠則凍結(jié)資源,執(zhí)行try方法

階段2:執(zhí)行成功,則執(zhí)行Confirm方法刪除凍結(jié)資源。執(zhí)行失敗,執(zhí)行Canel邏輯,恢復(fù)凍結(jié)資源
分布式事務(wù)框架Seata,springcloud,分布式
四種事務(wù)優(yōu)缺點(diǎn)介紹:

XA:強(qiáng)一致性,無代碼侵入、但一階段事務(wù)不提交、會(huì)鎖住資源,導(dǎo)致性能低。需要依賴數(shù)據(jù)庫的事務(wù)特性。

AT:默認(rèn),弱一致性,無代碼侵入,一階段事務(wù)直接提交,失敗則根據(jù)undolog日志回滾,隔離性引入全局鎖,但并發(fā)幾率低,所以性能會(huì)比XA好。

TCC:無需依賴關(guān)系型數(shù)據(jù)庫,基于資源預(yù)留隔離。try、confirm、canel需要人工手寫,而且需要考慮空懸掛、空回滾、冪等性判斷,較為復(fù)雜、性能最好,但成本太高。

Seaga:適用于長事務(wù)類型,無太多應(yīng)用場(chǎng)景。文章來源地址http://www.zghlxwxcb.cn/news/detail-683652.html

到了這里,關(guān)于分布式事務(wù)框架Seata的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【SpringCloud】微服務(wù)保護(hù)(Sentinel)和分布式事務(wù)(Seata)

    【SpringCloud】微服務(wù)保護(hù)(Sentinel)和分布式事務(wù)(Seata)

    建議學(xué)完該系列前篇 【SpringCloud】商城項(xiàng)目拆分微服務(wù)各個(gè)組件學(xué)習(xí) 然后再來看本文 然后學(xué)習(xí) 【RabbitMQ】交換機(jī)、隊(duì)列、可靠性保證和延遲消息 在微服務(wù)遠(yuǎn)程調(diào)用的過程中,還存在幾個(gè)問題需要解決。 首先是業(yè)務(wù)健壯性問題: 例如在之前的查詢購物車列表業(yè)務(wù)中,購物車

    2024年01月25日
    瀏覽(23)
  • 分布式事務(wù)框架Seata

    分布式事務(wù)框架Seata

    分布式事務(wù)框架Seata 一、seata是什么 在微服務(wù)架構(gòu)下,由于數(shù)據(jù)庫和應(yīng)用服務(wù)的拆分,導(dǎo)致原本一個(gè)事務(wù)單元中的多個(gè) DML 操作,變成了跨進(jìn)程或者跨數(shù)據(jù)庫的多個(gè)事務(wù)單元的多個(gè) DML 操作, 而傳統(tǒng)的數(shù)據(jù)庫事務(wù)無法解決這類的問題,所以就引出了分布式事務(wù)的概念。 分布式

    2024年02月10日
    瀏覽(23)
  • springcloud3 分布式事務(wù)解決方案seata之AT模式5

    springcloud3 分布式事務(wù)解決方案seata之AT模式5

    1.XA模式一階段不提交事務(wù),鎖定資源;AT模式一階段直接提交,不鎖定資源; 2.XA模式依賴數(shù)據(jù)庫機(jī)制實(shí)現(xiàn)回滾;AT模式利用數(shù)據(jù)庫快照實(shí)現(xiàn)數(shù)據(jù)回滾 3.XA模式強(qiáng)一致;AT模式最終一致。 1.2 AT模式原理 一階段: 1.TM發(fā)起并注冊(cè)全局事務(wù)到TC; 2.TM調(diào)用分支事務(wù); 3.RM進(jìn)行注冊(cè)分支

    2024年02月07日
    瀏覽(31)
  • SpringCloud Alibaba - Seata 四種分布式事務(wù)解決方案(XA、AT)+ 實(shí)踐部署(上)

    SpringCloud Alibaba - Seata 四種分布式事務(wù)解決方案(XA、AT)+ 實(shí)踐部署(上)

    目錄 一、Seata 分布式事務(wù)解決方案 1.1、XA 模式 1.1.1、XA模式理論 第一階段: 第二階段: 1.1.2、Seata 框架中的 XA 模式 第一階段: 第二階段: 1.1.3、XA 模式的優(yōu)缺點(diǎn) 1.2.4、實(shí)現(xiàn)Seata 的?XA 模式 a)修改 application 文件(每一個(gè)參與事務(wù)的微服務(wù)) b)給發(fā)起全局事務(wù)中的入口方法

    2024年04月14日
    瀏覽(19)
  • Java微服務(wù)分布式事務(wù)框架seata的TCC模式

    Java微服務(wù)分布式事務(wù)框架seata的TCC模式

    ??作者主頁:青花鎖 ??簡介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者??、Java微服務(wù)架構(gòu)公號(hào)作者?? ??簡歷模板、學(xué)習(xí)資料、面試題庫、技術(shù)互助 ??文末獲取聯(lián)系方式 ?? 專欄 描述 Java項(xiàng)目實(shí)戰(zhàn) 介紹Java組件安裝、使用;手寫框架等 Aws服務(wù)器實(shí)戰(zhàn) Aws Linux服務(wù)器上操作nginx、git、JDK、Vue Jav

    2024年03月23日
    瀏覽(23)
  • 《微服務(wù)實(shí)戰(zhàn)》 第三十章 分布式事務(wù)框架seata TCC模式

    《微服務(wù)實(shí)戰(zhàn)》 第三十章 分布式事務(wù)框架seata TCC模式

    第三十章 分布式事務(wù)框架seata TCC模式 第二十九章 分布式事務(wù)框架seata AT模式 本章節(jié)介紹分布式事務(wù)框架seata TCC模式,上一章節(jié)介紹seata以及集成到Springboot、微服務(wù)框架里。 一個(gè)分布式的全局事務(wù),整體是 兩階段提交 的模型。全局事務(wù)是由若干分支事務(wù)組成的,分支事務(wù)要

    2024年02月12日
    瀏覽(24)
  • 最新版 !快速掌握 JDK17 + springboot3 + springcloud Alibaba : 10、Seata 整合實(shí)現(xiàn)分布式事務(wù)

    最新版 !快速掌握 JDK17 + springboot3 + springcloud Alibaba : 10、Seata 整合實(shí)現(xiàn)分布式事務(wù)

    上一節(jié)成功啟動(dòng)了seata,傳送門: https://blog.csdn.net/qq_16089135/article/details/133989446 1.1 官方文檔 中文文檔 Seata 是什么 1.2 模式分類 AT :基于支持本地 ACID 事務(wù)的關(guān)系型數(shù)據(jù)庫。 Java 應(yīng)用,通過 JDBC 訪問數(shù)據(jù)庫。 整體機(jī)制:二階段提交。 一階段:業(yè)務(wù)數(shù)據(jù)和回滾日志記錄在同一

    2024年02月06日
    瀏覽(21)
  • SpringCloud(17~21章):Alibaba入門簡介、Nacos服務(wù)注冊(cè)和配置中心、Sentinel實(shí)現(xiàn)熔斷與限流、Seata處理分布式事務(wù)

    SpringCloud(17~21章):Alibaba入門簡介、Nacos服務(wù)注冊(cè)和配置中心、Sentinel實(shí)現(xiàn)熔斷與限流、Seata處理分布式事務(wù)

    Spring Cloud Netflix項(xiàng)目進(jìn)入維護(hù)模式 https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now 說明 Spring Cloud Netflix Projects Entering Maintenance Mode 什么是維護(hù)模式 將模塊置于維護(hù)模式,意味著 Spring Cloud 團(tuán)隊(duì)將不會(huì)再向模塊添加新功能。我們將修復(fù) block 級(jí)別的 bug 以及安全問題,我

    2024年01月19日
    瀏覽(43)
  • 分布式:一文吃透分布式事務(wù)和seata事務(wù)

    分布式:一文吃透分布式事務(wù)和seata事務(wù)

    什么是事務(wù) 事務(wù)是并發(fā)控制的單位,是用戶定義的一個(gè)操作序列。 事務(wù)特性 原子性(Atomicity): 事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么全做,要么全不做。 一致性(Consistency): 事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。一致性

    2024年02月07日
    瀏覽(21)
  • 【分布式事務(wù)】Seata 開源的分布式事務(wù)解決方案

    【分布式事務(wù)】Seata 開源的分布式事務(wù)解決方案

    Seata 是一款開源的分布式事務(wù)解決方案,致力于提供高性能和簡單易用的分布式事務(wù)服務(wù)。Seata 將為用戶提供了 AT、TCC、SAGA 和 XA 事務(wù)模式,為用戶打造一站式的分布式解決方案。 阿里巴巴作為國內(nèi)最早一批進(jìn)行應(yīng)用分布式(微服務(wù)化)改造的企業(yè),很早就遇到微服務(wù)架構(gòu)下

    2024年02月02日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包