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

為什么不建議你用分布式事務(wù)?

原創(chuàng)
開(kāi)發(fā) 架構(gòu) 開(kāi)發(fā)工具 分布式
伴隨著業(yè)務(wù)的快速的發(fā)展、越來(lái)越高的業(yè)務(wù)復(fù)雜度,幾乎每個(gè)公司的系統(tǒng)都會(huì)從單體走向分布式,特別是轉(zhuǎn)向微服務(wù)架構(gòu)。

【51CTO.com原創(chuàng)稿件】伴隨著業(yè)務(wù)的快速的發(fā)展、越來(lái)越高的業(yè)務(wù)復(fù)雜度,幾乎每個(gè)公司的系統(tǒng)都會(huì)從單體走向分布式,特別是轉(zhuǎn)向微服務(wù)架構(gòu)。

 [[433437]]

圖片來(lái)自 包圖網(wǎng)

隨之而來(lái)就必然遇到分布式事務(wù)這個(gè)難題。而我的這篇文章總結(jié)了分布式事務(wù)的解決方案,希望給大家?guī)?lái)幫助。

分布式事務(wù)基礎(chǔ)

①到底什么是事務(wù)呢?

什么是事務(wù)?舉個(gè)生活中的例子:你去小賣(mài)鋪買(mǎi)東西,“一手交錢(qián),一手交貨”就是一個(gè)事務(wù)的例子,交錢(qián)和交貨必須全部成功,事務(wù)才算成功,任一個(gè)活動(dòng)失敗,事務(wù)將撤銷(xiāo)所有已成功的活動(dòng)。

明白上述例子,再來(lái)看事務(wù)的定義:事務(wù)可以看做是一次大的活動(dòng),它由不同的小活動(dòng)組成,這些活動(dòng)要么全部成功,要么全部失敗。

②先來(lái)回顧本地事務(wù)

在計(jì)算機(jī)系統(tǒng)中,更多的是通過(guò)關(guān)系型數(shù)據(jù)庫(kù)來(lái)控制事務(wù),這是利用數(shù)據(jù)庫(kù)本身的事務(wù)特性來(lái)實(shí)現(xiàn)的,因此叫數(shù)據(jù)庫(kù)事務(wù)。

由于應(yīng)用主要靠關(guān)系數(shù)據(jù)庫(kù)來(lái)控制事務(wù),而數(shù)據(jù)庫(kù)通常和應(yīng)用在同一個(gè)服務(wù)器,所以基于關(guān)系型數(shù)據(jù)庫(kù)的事務(wù)又被稱(chēng)為本地事務(wù)。

回顧一下數(shù)據(jù)庫(kù)事務(wù)的四大特性 ACID:

  • A(Atomic):原子性,構(gòu)成事務(wù)的所有操作,要么都執(zhí)行完成,要么全部不執(zhí)行,不可能出現(xiàn)部分成功部分失敗的情況。
  • C(Consistency):一致性,在事務(wù)執(zhí)行前后,數(shù)據(jù)庫(kù)的一致性約束沒(méi)有被破壞。

比如:張三向李四轉(zhuǎn) 100 元,轉(zhuǎn)賬前和轉(zhuǎn)賬后的數(shù)據(jù)是正確狀態(tài)這叫一致性,如果出現(xiàn)張三轉(zhuǎn)出 100 元,李四賬戶(hù)沒(méi)有增加 100 元這就出現(xiàn)了數(shù)據(jù)錯(cuò)誤,就沒(méi)有達(dá)到一致性。

  • I(Isolation):隔離性,數(shù)據(jù)庫(kù)中的事務(wù)一般都是并發(fā)的,隔離性是指并發(fā)的兩個(gè)事務(wù)的執(zhí)行互不干擾,一個(gè)事務(wù)不能看到其他事務(wù)運(yùn)行過(guò)程的中間狀態(tài)。通過(guò)配置事務(wù)隔離級(jí)別可以避臟讀、重復(fù)讀等問(wèn)題。
  • D(Durability):持久性,事務(wù)完成之后,該事務(wù)對(duì)數(shù)據(jù)的更改會(huì)被持久化到數(shù)據(jù)庫(kù),且不會(huì)被回滾。

數(shù)據(jù)庫(kù)事務(wù)在實(shí)現(xiàn)時(shí)會(huì)將一次事務(wù)涉及的所有操作全部納入到一個(gè)不可分割的執(zhí)行單元,該執(zhí)行單元中的所有操作要么都成功,要么都失敗,只要其中任一操作執(zhí)行失敗,都將導(dǎo)致整個(gè)事務(wù)的回滾。

③分布式事務(wù)

銀行跨行轉(zhuǎn)賬業(yè)務(wù)是一個(gè)典型分布式事務(wù)場(chǎng)景,假設(shè) A 需要跨行轉(zhuǎn)賬給 B,那么就涉及兩個(gè)銀行的數(shù)據(jù),無(wú)法通過(guò)一個(gè)數(shù)據(jù)庫(kù)的本地事務(wù)保證轉(zhuǎn)賬的 ACID,只能夠通過(guò)分布式事務(wù)來(lái)解決。

分布式事務(wù)就是指事務(wù)的發(fā)起者、資源及資源管理器和事務(wù)協(xié)調(diào)者分別位于分布式系統(tǒng)的不同節(jié)點(diǎn)之上。

在上述轉(zhuǎn)賬的業(yè)務(wù)中,用戶(hù) A-100 操作和用戶(hù) B+100 操作不是位于同一個(gè)節(jié)點(diǎn)上。

本質(zhì)上來(lái)說(shuō),分布式事務(wù)就是為了保證在分布式場(chǎng)景下,數(shù)據(jù)操作的正確執(zhí)行。

分布式事務(wù)在分布式環(huán)境下,為了滿(mǎn)足可用性、性能與降級(jí)服務(wù)的需要,降低一致性與隔離性的要求,一方面遵循 BASE 理論(BASE 相關(guān)理論,涉及內(nèi)容非常多,感興趣的程序員們,可以參考 BASE 理論)。

BASE 理論:

  • 基本業(yè)務(wù)可用性(Basic Availability)
  • 柔性狀態(tài)(Soft state)
  • 最終一致性(Eventual consistency)

同樣的,分布式事務(wù)也部分遵循 ACID 規(guī)范:

  • 原子性:嚴(yán)格遵循
  • 一致性:事務(wù)完成后的一致性嚴(yán)格遵循;事務(wù)中的一致性可適當(dāng)放寬
  • 隔離性:并行事務(wù)間不可影響;事務(wù)中間結(jié)果可見(jiàn)性允許安全放寬
  • 持久性:嚴(yán)格遵循

④分布式事務(wù)場(chǎng)景

典型的場(chǎng)景就是微服務(wù)架構(gòu):微服務(wù)之間通過(guò)遠(yuǎn)程調(diào)用完成事務(wù)操作。

比如:訂單微服務(wù)和庫(kù)存微服務(wù),下單的同時(shí)訂單微服務(wù)請(qǐng)求庫(kù)存微服務(wù)減庫(kù)存。簡(jiǎn)言之:跨 JVM 進(jìn)程產(chǎn)生分布式事務(wù)。

單體系統(tǒng)訪(fǎng)問(wèn)多個(gè)數(shù)據(jù)庫(kù)實(shí)例:當(dāng)單體系統(tǒng)需要訪(fǎng)問(wèn)多個(gè)數(shù)據(jù)庫(kù)(實(shí)例)時(shí)就會(huì)產(chǎn)生分布式事務(wù)。

比如:用戶(hù)信息和訂單信息分別在兩個(gè) MySQL 實(shí)例存儲(chǔ),用戶(hù)管理系統(tǒng)刪除用戶(hù)信息,需要分別刪除用戶(hù)信息及用戶(hù)的訂單信息,由于數(shù)據(jù)分布在不同的數(shù)據(jù)實(shí)例,需要通過(guò)不同的數(shù)據(jù)庫(kù)鏈接去操作數(shù)據(jù),此時(shí)產(chǎn)生分布式事務(wù)。

簡(jiǎn)言之:跨數(shù)據(jù)庫(kù)實(shí)例產(chǎn)生分布式事務(wù)。

多服務(wù)訪(fǎng)問(wèn)同一個(gè)數(shù)據(jù)庫(kù)實(shí)例:比如:訂單微服務(wù)和庫(kù)存微服務(wù)即使訪(fǎng)問(wèn)同一個(gè)數(shù)據(jù)庫(kù)也會(huì)產(chǎn)生分布式事務(wù),原因就是跨 JVM 進(jìn)程,兩個(gè)微服務(wù)持有了不同的數(shù)據(jù)庫(kù)鏈接進(jìn)行數(shù)據(jù)庫(kù)操作,此時(shí)產(chǎn)生分布式事務(wù)。

分布式事務(wù)的解決方案

①2PC(兩階段提交)/XA

2PC(Two-phase commit protocol),中文叫二階段提交。

二階段提交是一種強(qiáng)一致性設(shè)計(jì),2PC 引入一個(gè)事務(wù)協(xié)調(diào)者的角色來(lái)協(xié)調(diào)管理各參與者(也可稱(chēng)之為各本地資源)的提交和回滾,二階段分別指的是準(zhǔn)備(投票)和提交兩個(gè)階段。

XA 是由 X/Open 組織提出的分布式事務(wù)的規(guī)范,XA 規(guī)范主要定義了(全局)事務(wù)管理器(TM)和(局部)資源管理器(RM)之間的接口。本地的數(shù)據(jù)庫(kù)如 MySQL 在 XA 中扮演的是 RM 角色。

XA 一共分為兩階段:

  • 第一階段(prepare):即所有的參與者 RM 準(zhǔn)備執(zhí)行事務(wù)并鎖住需要的資源。參與者 ready 時(shí),向 TM 報(bào)告已準(zhǔn)備就緒。
  • 第二階段 (commit/rollback):當(dāng)事務(wù)管理者(TM)確認(rèn)所有參與者(RM)都 ready 后,向所有參與者發(fā)送 commit 命令。

目前主流的數(shù)據(jù)庫(kù)基本都支持 XA 事務(wù),包括 MySQL、Oracle、SQL Server、Postgre。

XA 事務(wù)由一個(gè)或多個(gè)資源管理器(RM)、一個(gè)事務(wù)管理器(TM)和一個(gè)應(yīng)用程序(ApplicationProgram)組成。

如果有任何一個(gè)參與者 prepare 失敗,那么 TM 會(huì)通知所有完成 prepare 的參與者進(jìn)行回滾。

XA 事務(wù)的特點(diǎn)是:

  • 簡(jiǎn)單易理解,開(kāi)發(fā)較容易
  • 對(duì)資源進(jìn)行了長(zhǎng)時(shí)間的鎖定,并發(fā)度低

②三階段提交(3PC)

三階段提交又稱(chēng) 3PC,相對(duì)于 2PC 來(lái)說(shuō)增加了 CanCommit 階段和超時(shí)機(jī)制。

如果段時(shí)間內(nèi)沒(méi)有收到協(xié)調(diào)者的 commit 請(qǐng)求,那么就會(huì)自動(dòng)進(jìn)行 commit,解決了 2PC 單點(diǎn)故障的問(wèn)題。但是性能問(wèn)題和不一致問(wèn)題仍然沒(méi)有根本解決。

下面我們還是一起看下三階段流程的是什么樣的?

第一階段:CanCommit 階段。這個(gè)階段所做的事很簡(jiǎn)單,就是協(xié)調(diào)者詢(xún)問(wèn)事務(wù)參與者,你是否有能力完成此次事務(wù)。

如果都返回 yes,則進(jìn)入第二階段。有一個(gè)返回 no 或等待響應(yīng)超時(shí),則中斷事務(wù),并向所有參與者發(fā)送 abort 請(qǐng)求。

第二階段:PreCommit 階段。此時(shí)協(xié)調(diào)者會(huì)向所有的參與者發(fā)送 PreCommit 請(qǐng)求,參與者收到后開(kāi)始執(zhí)行事務(wù)操作,并將 Undo 和 Redo 信息記錄到事務(wù)日志中。

參與者執(zhí)行完事務(wù)操作后(此時(shí)屬于未提交事務(wù)的狀態(tài)),就會(huì)向協(xié)調(diào)者反饋“Ack”表示我已經(jīng)準(zhǔn)備好提交了,并等待協(xié)調(diào)者的下一步指令。

第三階段:DoCommit 階段。在階段二中如果所有的參與者節(jié)點(diǎn)都可以進(jìn)行 PreCommit 提交,那么協(xié)調(diào)者就會(huì)從“預(yù)提交狀態(tài)”轉(zhuǎn)變?yōu)?ldquo;提交狀態(tài)”。

然后向所有的參與者節(jié)點(diǎn)發(fā)送"doCommit"請(qǐng)求,參與者節(jié)點(diǎn)在收到提交請(qǐng)求后就會(huì)各自執(zhí)行事務(wù)提交操作,并向協(xié)調(diào)者節(jié)點(diǎn)反饋“Ack”消息,協(xié)調(diào)者收到所有參與者的 Ack 消息后完成事務(wù)。

相反,如果有一個(gè)參與者節(jié)點(diǎn)未完成 PreCommit 的反饋或者反饋超時(shí),那么協(xié)調(diào)者都會(huì)向所有的參與者節(jié)點(diǎn)發(fā)送 abort 請(qǐng)求,從而中斷事務(wù)。

③SAGA

Saga 是這一篇數(shù)據(jù)庫(kù)論文 saga 提到的一個(gè)方案。其核心思想是將長(zhǎng)事務(wù)拆分為多個(gè)本地短事務(wù),由 Saga 事務(wù)協(xié)調(diào)器協(xié)調(diào),如果正常結(jié)束那就正常完成,如果某個(gè)步驟失敗,則根據(jù)相反順序一次調(diào)用補(bǔ)償操作。

把上面的轉(zhuǎn)賬作為例子,一個(gè)成功完成的 SAGA 事務(wù)時(shí)序圖如下:

SAGA 事務(wù)的特點(diǎn):

  • 并發(fā)度高,不用像 XA 事務(wù)那樣長(zhǎng)期鎖定資源
  • 需要定義正常操作以及補(bǔ)償操作,開(kāi)發(fā)量比 XA 大
  • 一致性較弱,對(duì)于轉(zhuǎn)賬,可能發(fā)生 A 用戶(hù)已扣款,最后轉(zhuǎn)賬又失敗的情況

④TCC

2PC 是數(shù)據(jù)庫(kù)層面的,而 TCC 是業(yè)務(wù)層面的分布式事務(wù),就像我前面說(shuō)的分布式事務(wù)不僅僅包括數(shù)據(jù)庫(kù)的操作,還包括發(fā)送短信等,這時(shí)候 TCC 就派上用場(chǎng)了!

TCC 的 3 個(gè)階段:

  • Try 階段:嘗試執(zhí)行,完成所有業(yè)務(wù)檢查(一致性), 預(yù)留必須業(yè)務(wù)資源(準(zhǔn)隔離性)
  • Confirm 階段:確認(rèn)執(zhí)行真正執(zhí)行業(yè)務(wù),不作任何業(yè)務(wù)檢查,只使用 Try 階段預(yù)留的業(yè)務(wù)資源,Confirm 操作要求具備冪等設(shè)計(jì),Confirm 失敗后需要進(jìn)行重試。
  • Cancel 階段:取消執(zhí)行,釋放 Try 階段預(yù)留的業(yè)務(wù)資源,也可以理解為可以理解為把預(yù)留階段的動(dòng)作撤銷(xiāo)了。Cancel 階段的異常和 Confirm 階段異常處理方案基本上一致,要求滿(mǎn)足冪等設(shè)計(jì)。

把上面的轉(zhuǎn)賬作為例子,通常會(huì)在 Try 里面凍結(jié)金額,但不扣款,Confirm 里面扣款,Cancel 里面解凍金額。

一個(gè)成功完成的 TCC 事務(wù)時(shí)序圖如下:

TCC 特點(diǎn)如下:

  • 并發(fā)度較高,無(wú)長(zhǎng)期資源鎖定
  • 開(kāi)發(fā)量較大,需要提供 Try/Confirm/Cancel 接口
  • 一致性較好,不會(huì)發(fā)生 SAGA 已扣款最后又轉(zhuǎn)賬失敗的情況
  • TCC 適用于訂單類(lèi)業(yè)務(wù),對(duì)中間狀態(tài)有約束的業(yè)務(wù)

⑤本地消息表

本地消息表其實(shí)就是利用了 各系統(tǒng)本地的事務(wù)來(lái)實(shí)現(xiàn)分布式事務(wù)。

本地消息表顧名思義就是會(huì)有一張存放本地消息的表,一般都是放在數(shù)據(jù)庫(kù)中,然后在執(zhí)行業(yè)務(wù)的時(shí)候?qū)I(yè)務(wù)的執(zhí)行和將消息放入消息表中的操作放在同一個(gè)事務(wù)中,這樣就能保證消息放入本地表中業(yè)務(wù)肯定是執(zhí)行成功的。

然后再去調(diào)用下一個(gè)操作,如果下一個(gè)操作調(diào)用成功了好說(shuō),消息表的消息狀態(tài)可以直接改成已成功。

如果調(diào)用失敗也沒(méi)事,會(huì)有后臺(tái)任務(wù)定時(shí)去讀取本地消息表,篩選出還未成功的消息再調(diào)用對(duì)應(yīng)的服務(wù),服務(wù)更新成功了再變更消息的狀態(tài)。

這時(shí)候有可能消息對(duì)應(yīng)的操作不成功,因此也需要重試,重試就得保證對(duì)應(yīng)服務(wù)的方法是冪等的,而且一般重試會(huì)有最大次數(shù),超過(guò)最大次數(shù)可以記錄下報(bào)警讓人工處理。

可以看到本地消息表其實(shí)實(shí)現(xiàn)的是最終一致性,容忍了數(shù)據(jù)暫時(shí)不一致的情況。

消息事務(wù)

RocketMQ 就很好的支持了消息事務(wù),讓我們來(lái)看一下如何通過(guò)消息實(shí)現(xiàn)事務(wù)。

第一步先給 Broker 發(fā)送事務(wù)消息即半消息,半消息不是說(shuō)一半消息,而是這個(gè)消息對(duì)消費(fèi)者來(lái)說(shuō)不可見(jiàn),然后發(fā)送成功后發(fā)送方再執(zhí)行本地事務(wù)。再根據(jù)本地事務(wù)的結(jié)果向 Broker 發(fā)送 Commit 或者 RollBack 命令。

并且 RocketMQ 的發(fā)送方會(huì)提供一個(gè)反查事務(wù)狀態(tài)接口,如果一段時(shí)間內(nèi)半消息沒(méi)有收到任何操作請(qǐng)求,那么 Broker 會(huì)通過(guò)反查接口得知發(fā)送方事務(wù)是否執(zhí)行成功,然后執(zhí)行 Commit 或者 RollBack 命令。

如果是 Commit 那么訂閱方就能收到這條消息,然后再做對(duì)應(yīng)的操作,做完了之后再消費(fèi)這條消息即可。

如果是 RollBack 那么訂閱方收不到這條消息,等于事務(wù)就沒(méi)執(zhí)行過(guò)??梢钥吹酵ㄟ^(guò) RocketMQ 還是比較容易實(shí)現(xiàn)的,RocketMQ 提供了事務(wù)消息的功能,我們只需要定義好事務(wù)反查接口即可。

同時(shí)也可以看到消息事務(wù)實(shí)現(xiàn)的也是最終一致性。

最大努力通知

發(fā)起通知方通過(guò)一定的機(jī)制最大努力將業(yè)務(wù)處理結(jié)果通知到接收方。

具體包括:

  • 有一定的消息重復(fù)通知機(jī)制。因?yàn)榻邮胀ㄖ娇赡軟](méi)有接收到通知,此時(shí)要有一定的機(jī)制對(duì)消息重復(fù)通知。
  • 消息校對(duì)機(jī)制。如果盡最大努力也沒(méi)有通知到接收方,或者接收方消費(fèi)消息后要再次消費(fèi),此時(shí)可由接收方主動(dòng)向通知方查詢(xún)消息信息來(lái)滿(mǎn)足需求。

前面介紹的的本地消息表和消息事務(wù)都屬于可靠消息,與這里介紹的最大努力通知有什么不同?

可靠消息一致性,發(fā)起通知方需要保證將消息發(fā)出去,并且將消息發(fā)到接收通知方,消息的可靠性關(guān)鍵由發(fā)起通知方來(lái)保證。

最大努力通知,發(fā)起通知方盡最大的努力將業(yè)務(wù)處理結(jié)果通知為接收通知方,但是可能消息接收不到,此時(shí)需要接收通知方主動(dòng)調(diào)用發(fā)起通知方的接口查詢(xún)業(yè)務(wù)處理結(jié)果,通知的可靠性關(guān)鍵在接收通知方。

解決方案上,最大努力通知需要:

  • 提供接口,讓接受通知放能夠通過(guò)接口查詢(xún)業(yè)務(wù)處理結(jié)果
  • 消息隊(duì)列 ACK 機(jī)制,消息隊(duì)列按照間隔 1min、5min、10min、30min、1h、2h、5h、10h 的方式,逐步拉大通知間隔 ,直到達(dá)到通知要求的時(shí)間窗口上限。之后不再通知

最大努力通知適用于業(yè)務(wù)通知類(lèi)型,例如微信交易的結(jié)果,就是通過(guò)最大努力通知方式通知各個(gè)商戶(hù),既有回調(diào)通知,也有交易查詢(xún)接口。

⑧AT 事務(wù)模式

這是阿里開(kāi)源項(xiàng)目 seata 中的一種事務(wù)模式,在螞蟻金服也被稱(chēng)為 FMT。優(yōu)點(diǎn)是該事務(wù)模式使用方式,類(lèi)似 XA 模式,業(yè)務(wù)無(wú)需編寫(xiě)各類(lèi)補(bǔ)償操作,回滾由框架自動(dòng)完成,缺點(diǎn)也類(lèi)似 AT,存在較長(zhǎng)時(shí)間的鎖,不滿(mǎn)足高并發(fā)的場(chǎng)景。

在 Seata 項(xiàng)目中,最早由阿里巴巴中間件開(kāi)源出的 AT 模式(Automatic Transaction) 是一套創(chuàng)新的、業(yè)務(wù)無(wú)侵入的分布式事務(wù)解決方案。

截止 Seata 的 GA 版本發(fā)布,AT 模式 已經(jīng)在開(kāi)源社區(qū)引起了廣泛關(guān)注,很多家企業(yè)用戶(hù)已經(jīng)將 Seata 的 AT 模式應(yīng)用于生產(chǎn)。

AT 模式一階段:首先,在 Seata 的組件中,如果你想開(kāi)啟分布式事務(wù),那么就應(yīng)該在你的業(yè)務(wù)入口或者事務(wù)發(fā)起入口加上 @GlobalTransactional 注解。

如果你是 AT 模式就要做好數(shù)據(jù)源代理(seata1.0 后全面支持自動(dòng)代理),并被 sqlsessionfactroy 使用(或者直接 jdbc 操作使用被代理數(shù)據(jù)源)。

可以發(fā)現(xiàn)比較關(guān)鍵的異步,與其他模式的區(qū)別便是代理數(shù)據(jù)源,而代理數(shù)據(jù)源又有什么奧秘呢?

AT 模式二階段提交:二階段如果是提交的話(huà),因?yàn)?ldquo;業(yè)務(wù) SQL”在一階段已經(jīng)提交至數(shù)據(jù)庫(kù),所以 Seata 框架只需將一階段保存的快照數(shù)據(jù)和行鎖刪掉,完成數(shù)據(jù)清理即可。

AT 模式二階段回滾:二階段如果是回滾的話(huà),Seata 就需要回滾一階段已經(jīng)執(zhí)行的“業(yè)務(wù) SQL”,還原業(yè)務(wù)數(shù)據(jù)。

回滾方式便是用“before image”還原業(yè)務(wù)數(shù)據(jù);但在還原前要首先要校驗(yàn)臟寫(xiě),對(duì)比“數(shù)據(jù)庫(kù)當(dāng)前業(yè)務(wù)數(shù)據(jù)”和 “after image”。

如果兩份數(shù)據(jù)完全一致就說(shuō)明沒(méi)有臟寫(xiě),可以還原業(yè)務(wù)數(shù)據(jù),如果不一致就說(shuō)明有臟寫(xiě), 出現(xiàn)臟寫(xiě)就需要轉(zhuǎn)人工處理。

小結(jié)

本文介紹了分布式事務(wù)的一些基礎(chǔ)理論,并對(duì)常用的分布式事務(wù)方案進(jìn)行了講解。

分布式事務(wù)本身就是一個(gè)技術(shù)難題,業(yè)務(wù)中具體使用哪種方案還是需要不同的業(yè)務(wù)特點(diǎn)自行選擇。

但是我們也會(huì)發(fā)現(xiàn),分布式事務(wù)會(huì)大大的提高流程的復(fù)雜度,會(huì)帶來(lái)很多額外的開(kāi)銷(xiāo)工作,「代碼量上去了,業(yè)務(wù)復(fù)雜了,性能下跌了」。

所以,當(dāng)我們真實(shí)開(kāi)發(fā)的過(guò)程中,能不使用分布式事務(wù)就不使用。

作者:JackHu

簡(jiǎn)介:水滴健康基礎(chǔ)架構(gòu)資深技術(shù)專(zhuān)家

編輯:陶家龍

征稿:有投稿、尋求報(bào)道意向技術(shù)人請(qǐng)聯(lián)絡(luò) editor@51cto.com

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】

 

責(zé)任編輯:武曉燕 來(lái)源: 51CTO技術(shù)棧
相關(guān)推薦

2021-06-08 12:46:27

分布式阿里TCC

2022-01-26 13:46:40

分布式事務(wù)集合,這

2022-06-27 08:21:05

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

2015-11-05 17:41:25

NoSQL分布式事務(wù)事務(wù)架構(gòu)

2020-04-01 17:50:02

Python編程語(yǔ)言

2019-01-04 11:08:38

開(kāi)源分布式流存儲(chǔ)Pravega

2022-06-21 08:27:22

Seata分布式事務(wù)

2017-07-26 15:08:05

大數(shù)據(jù)分布式事務(wù)

2019-11-19 08:47:45

Zookeeper分布式事務(wù)

2024-05-17 13:48:19

2019-10-10 09:16:34

Zookeeper架構(gòu)分布式

2025-05-13 02:10:00

2009-06-19 15:28:31

JDBC分布式事務(wù)

2021-09-29 09:07:37

分布式架構(gòu)系統(tǒng)

2009-09-18 15:10:13

分布式事務(wù)LINQ TO SQL

2021-07-01 16:10:22

equals字符串Java

2022-02-06 10:58:37

Redis主從模式

2021-12-09 10:45:19

分布式事務(wù)框架

2015-07-15 10:42:38

分布式分布式事務(wù)集群

2018-11-28 16:00:41

點(diǎn)贊
收藏

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

久草在线成人| 碰碰在线视频| 成人黄色在线视频| 欧美亚洲激情视频| 在线国产视频一区| 亚洲我射av| 无码av中文一区二区三区桃花岛| 精品国产综合久久| 一级黄色片免费| 欧美视频四区| 中文字幕欧美精品日韩中文字幕| 天天干天天曰天天操| 蜜桃麻豆av在线| 国产精品国产三级国产aⅴ原创| 国产日韩欧美一二三区| 久久午夜无码鲁丝片| 天堂俺去俺来也www久久婷婷| 色av综合在线| 一区二区在线视频| 久久人人爽av| 丁香花视频在线观看| 久久久亚洲午夜电影| 成人a级免费视频| 国产一级视频在线播放| 欧美精选一区二区三区| 日韩欧美一区二区在线视频| 美女av免费在线观看| 香蕉视频国产在线观看| 成人动漫在线一区| 国产精品欧美激情| 国产精久久久久久| 日韩在线观看电影完整版高清免费悬疑悬疑| 91精品国产综合久久婷婷香蕉| 成年人午夜视频在线观看| aⅴ在线视频男人的天堂| 成人激情小说网站| 成人亚洲激情网| 波多野结衣爱爱视频| 欧美电影免费观看| 亚洲免费在线视频| 日韩av一区二区三区在线观看| www.国产精品视频| 日韩激情视频网站| 亚洲欧美另类人妖| 九色91porny| 精品国产欧美日韩一区二区三区| 亚洲v精品v日韩v欧美v专区| 国产高清精品软男同| 国产小视频在线播放| 成人av在线看| 97免费高清电视剧观看| 在线播放一级片| 蜜乳av另类精品一区二区| 久久久久久91| 老熟妇高潮一区二区三区| 国产日产一区| 亚洲欧美国产另类| 日本一级片在线播放| 亚洲一区二区三区中文字幕在线观看 | 国产精品初高中害羞小美女文| 国偷自产av一区二区三区小尤奈| 国产av无码专区亚洲av| 久久99精品国产.久久久久久| 国产999精品久久久| 中文字幕激情小说| 亚洲影院免费| 欧美一级大片在线免费观看| 国产主播在线观看| 亚洲人成久久| 久久免费视频在线观看| 国产福利久久久| 亚洲网站啪啪| 韩国精品美女www爽爽爽视频| 国产在线综合网| 亚洲高清免费| 欧美一级片久久久久久久| 免费毛片一区二区三区| 亚洲午夜极品| 97在线视频一区| 91av在线免费视频| 亚洲一区黄色| 日本精品在线视频| 人妻中文字幕一区二区三区| 日韩av中文在线观看| 国产精品18久久久久久首页狼| 亚洲国产成人无码av在线| 久久精品伊人| 国产日本欧美在线观看| 一区二区三区免费在线| 国产一区二区h| 成人蜜桃视频| 污污视频在线免费看| 99r国产精品| 日本视频一区在线观看| 欧美极品视频| 亚洲影院在线观看| 国产特级黄色大片| 韩国成人漫画| 337p亚洲精品色噜噜| 无码人妻久久一区二区三区蜜桃| 国产一级成人av| 揄拍成人国产精品视频| 四虎影院中文字幕| 亚洲精品在线二区| 国产精品久久久久国产a级| 国产三级漂亮女教师| av男人天堂一区| 先锋影音日韩| 少妇av在线| 色婷婷精品久久二区二区蜜臀av | jizzjizzjizz国产| 欧美日韩少妇| 国产成人精品a视频一区www| 国产chinasex对白videos麻豆| 成a人片亚洲日本久久| 亚洲a∨一区二区三区| 婷婷av在线| 色婷婷一区二区| 18深夜在线观看免费视频| 欧美日韩播放| 欧美国产日韩在线| 中文字幕免费高清在线观看| 波多野结衣中文字幕一区| 久久狠狠久久综合桃花| 超碰免费在线播放| 色婷婷综合久色| 岛国大片在线免费观看| 日韩av密桃| 韩国v欧美v日本v亚洲| 亚洲一区二区色| 99精品视频在线观看| 国产成人精品免费看在线播放| 偷拍自拍在线看| 欧美一区二区免费视频| 欧美熟妇激情一区二区三区| 欧美午夜不卡| 91精品国产综合久久久久久久久| 天天综合网天天综合| 综合av第一页| www欧美激情| 天天躁日日躁狠狠躁欧美巨大小说| 久久久国产视频| 国产精品欧美综合| www.66久久| 人妻无码久久一区二区三区免费| 999精品嫩草久久久久久99| 伊人一区二区三区久久精品| 一级片中文字幕| 国产不卡一区视频| 日韩精品一区二区三区电影| 国外成人福利视频| 国产亚洲精品激情久久| 一级片免费网址| 国产成人精品影院| 手机福利在线视频| 亚洲青青久久| 啊v视频在线一区二区三区| 日韩欧美一级大片| 久久久精品天堂| 日日碰狠狠躁久久躁婷婷| 美国成人xxx| 欧美极品在线视频| 国产 日韩 欧美 精品| 亚洲精品乱码久久久久久久久| 少妇一级淫免费播放| 精品国产一区二区三区噜噜噜| 国产z一区二区三区| 伦理片一区二区三区| 色先锋久久av资源部| 国产熟女一区二区| 日韩成人av影视| 一区二区在线观| 欧美网站免费| 最近2019年好看中文字幕视频| 免费在线不卡av| 久久久久久久久伊人| 国内少妇毛片视频| 麻豆一区一区三区四区| 欧美中文字幕在线视频| 九色在线免费| 欧美丝袜丝交足nylons图片| 亚洲精品成人av久久| 老司机免费视频一区二区| 制服国产精品| 中文字幕一区日韩精品| 韩国三级电影久久久久久| 深夜福利视频在线免费观看| 日韩欧美福利视频| 成年人在线免费看片| 狠狠色丁香久久婷婷综| 超碰人人爱人人| 久久悠悠精品综合网| 97在线视频观看| 91社区在线高清| 91精品国产综合久久香蕉的特点| 久久久精品国产sm调教网站| 99re热视频这里只精品| www.日日操| 亚洲精品国产成人影院| 国产精品毛片va一区二区三区| 女人让男人操自己视频在线观看| 亚洲精品小视频| 亚洲天堂网在线视频| 亚洲乱码国产乱码精品精的特点| 污污免费在线观看| 青青草视频一区| 久久久无码中文字幕久...| 卡通动漫国产精品| 7m精品福利视频导航| 欧美成人三区| 亚洲精品电影网| 中文字幕精品一区二区精| 悠悠色在线精品| 波多野吉衣中文字幕| 精品无人区卡一卡二卡三乱码免费卡| 台湾无码一区二区| 精品一级毛片| 国产精品v欧美精品v日韩| 精品免费av一区二区三区| 欧美日本啪啪无遮挡网站| 毛片在线播放网址| 精品国产第一区二区三区观看体验| 无码人妻av一区二区三区波多野| 亚洲美女精品一区| 黄色录像a级片| 国产黑丝在线一区二区三区| 日韩亚洲在线视频| 欧美成人午夜| 亚洲啪啪av| 人人精品亚洲| 99www免费人成精品| 欧美xnxx| 欧洲美女7788成人免费视频| 51xtv成人影院| 在线电影欧美日韩一区二区私密| 天天干天天操av| 日韩一级二级三级精品视频| 欧美另类高清videos的特点| 欧美日韩国产精品专区| 欧美黑人一级片| 国产精品久久久久久久裸模 | 成年人免费高清视频| 亚洲久草在线视频| 国产三级在线观看完整版| 91在线视频播放| 国产精品亚洲一区二区无码| 国产一区二区三区视频在线播放 | 久久久久国产精品一区三寸| 免费视频爱爱太爽了| 欧美 日韩 国产 一区| 一区高清视频| 日韩精品免费一区二区三区| 日本a级片久久久| 在线视频亚洲专区| 精品一区二区三区免费毛片| 动漫视频在线一区| 久久五月天婷婷| 久久久久久久久久久久久久久久久久久久| 亚洲影院在线看| 成人动漫视频在线观看| 国产三级精品网站| 日本一区二区中文字幕| 国产精品美女久久久久久免费 | 窝窝社区一区二区| 国产精品中出一区二区三区| 最新日韩一区| 国产精品黄色影片导航在线观看| 三妻四妾的电影电视剧在线观看| 亚洲**2019国产| 欧美极品videos大乳护士| 97热在线精品视频在线观看| 九色porny自拍视频在线观看 | 亚洲一区二区三区高清| 亚洲人精品午夜射精日韩 | 伊人精品在线观看| sese一区| 欧美日韩中文在线| 亚欧视频在线观看| 精品久久久视频| 国内精品福利视频| 色综合久久综合中文综合网| 久久久久久免费观看| 黄色一区二区在线| 日韩电影在线观看一区二区| 欧洲一区在线观看| 国产精品伊人久久| 精品久久国产老人久久综合| 丁香六月天婷婷| 亚洲美女视频网| 国产精品一区在线看| 日韩在线观看免费高清完整版| 国产黄色在线免费观看| 久久久久久欧美| 日韩成人动漫| 91色精品视频在线| 精品av导航| 精品欧美一区二区在线观看视频 | 黄色网在线免费观看| 久久视频在线播放| 色网在线观看| 欧美在线一区二区视频| 成人在线视频免费| 国产精品久久久久久久久久久久冷 | 久久影视一区| 欧美日韩dvd| 亚洲欧美日韩专区| 中文字幕中文在线| 91亚洲精品一区二区乱码| 国精产品久拍自产在线网站| 亚洲专区一二三| 国产偷人爽久久久久久老妇app | 538国产精品一区二区免费视频| 国产成人精品一区二三区在线观看| 91传媒视频在线观看| 亚洲三级精品| 97在线免费视频观看| 日韩国产在线一| 少妇丰满尤物大尺度写真| 欧美激情综合五月色丁香| 久久人人爽人人爽人人| 欧美午夜精品久久久久久孕妇| 亚洲av永久无码国产精品久久 | 午夜久久福利影院| 中文字幕一二区| 国产视频精品一区二区三区| 黄网站在线播放| 国产激情综合五月久久| 成人爽a毛片免费啪啪红桃视频| 亚洲视频电影| 先锋a资源在线看亚洲| 国产吃瓜黑料一区二区| 最新热久久免费视频| 中文字幕 国产精品| 亚洲精品大尺度| 色呦呦在线免费观看| 91精品久久久久久久久| 国产探花一区| 欧美a v在线播放| 国产精品一区二区三区99| 蜜桃av免费在线观看| 色婷婷av一区二区三区gif | 蜜乳av一区二区三区| 一级黄色片大全| 天天操天天综合网| 亚洲AV无码成人片在线观看| 久久黄色av网站| 青青久久精品| 午夜精品亚洲一区二区三区嫩草| 一区在线视频观看| 亚洲一区二区三区四区精品| 日韩一区中文字幕| 伊人影院中文字幕| 亚洲人成在线电影| 亚洲永久av| 玛丽玛丽电影原版免费观看1977 | 青青青免费在线视频| 国产精品视频区1| 国产精品手机在线播放| 91免费视频网站在线观看| 26uuu国产在线精品一区二区| 日本系列第一页| 亚洲激情自拍图| 超鹏97在线| 国产精品揄拍500视频| 久久久久国产精品| 天天久久综合网| 最新中文字幕一区二区三区| 国产精品久久久久久久成人午夜 | 99福利在线| 91一区二区三区| 黄色综合网站| 精品人妻一区二区免费视频| 香蕉成人伊视频在线观看| 性高潮久久久久久久久久| 日av在线播放中文不卡| 欧美精美视频| 中文字幕乱码人妻综合二区三区| 国产午夜精品美女毛片视频| 亚洲国产无线乱码在线观看| 深夜福利91大全| 国产视频一区二| 日韩五码在线观看| 91色在线porny| 中文字幕日本视频| 波霸ol色综合久久| 中文字幕日韩在线| 91传媒久久久| 中文字幕日韩一区二区| 性色av蜜臀av| 2020久久国产精品| 日本午夜一区| 女同性αv亚洲女同志| 欧美午夜激情小视频| av电影在线网| 99久久自偷自偷国产精品不卡| 亚洲人成久久| 97精品在线播放| 亚洲精品一区二区三区在线观看 | 亚洲一区影音先锋| 日韩二区三区|