分布式事務(wù)主流解決方案優(yōu)缺點(diǎn)大pk

基于 XA 協(xié)議的應(yīng)用場(chǎng)景

XA 協(xié)議在架構(gòu)上與 TCC 模型相比,最大的不同是 XA 直接作用于資源層,而后者作用于服務(wù)層番枚。

image

資源層更普適,并且對(duì)業(yè)務(wù)幾乎沒有侵入损敷,但為了適應(yīng)各種業(yè)務(wù)場(chǎng)景使用葫笼,需要嚴(yán)格遵循事務(wù) ACID 特性;服務(wù)層更接近業(yè)務(wù)拗馒,可以針對(duì)不同業(yè)務(wù)做特定的優(yōu)化處理路星,追求更高的極限性能。

當(dāng)然诱桂,并不是說(shuō) XA 協(xié)議只能作用于單個(gè)服務(wù)內(nèi)部的多資源場(chǎng)景洋丐,跨服務(wù)的多資源場(chǎng)景也是可以的,只不過(guò)同樣需要額外的事務(wù)傳遞機(jī)制挥等。

image

XA 協(xié)議通過(guò)每個(gè) RM(Resource Manager友绝,資源管理器)的本地事務(wù)隔離性來(lái)保證全局隔離,并且需要通過(guò)串行化隔離級(jí)別來(lái)保證分布式事務(wù)一致性肝劲。但是迁客,串行化隔離級(jí)別存在一定的性能問(wèn)題,如下所示:

image

在串行化隔離級(jí)別下辞槐,會(huì)為本來(lái)不加鎖的 Select 快照讀操作都加上讀鎖掷漱,導(dǎo)致鎖持有時(shí)間增加,并發(fā)性能進(jìn)一步降低催蝗。當(dāng)實(shí)現(xiàn)了無(wú)鎖的全局一致性讀取后切威,比如分布式 MVCC育特,可以大幅減少鎖持有時(shí)間丙号,并發(fā)性能會(huì)獲得較大提升。

但不管怎么優(yōu)化實(shí)現(xiàn)缰冤,分布式事務(wù)的熱點(diǎn)數(shù)據(jù)并發(fā)性能最高就是趨近于單機(jī)本地事務(wù)犬缨。所以,無(wú)論是基于 XA 協(xié)議實(shí)現(xiàn)的分布式事務(wù)棉浸,還是單機(jī)本地事務(wù)怀薛,都是存在熱點(diǎn)數(shù)據(jù)并發(fā)性能極限的。

那么 XA 協(xié)議最大的作用是什么呢迷郑?其最大的作用在于數(shù)據(jù)庫(kù)資源橫向擴(kuò)展時(shí)枝恋,能保證多資源訪問(wèn)的事務(wù)屬性创倔。

當(dāng)單臺(tái) RM 機(jī)器達(dá)到資源性能瓶頸,無(wú)法滿足業(yè)務(wù)增長(zhǎng)需求時(shí)焚碌,就需要橫向擴(kuò)展 RM 資源畦攘,形成 RM 集群。通過(guò)橫向擴(kuò)展資源十电,提升非熱點(diǎn)數(shù)據(jù)的并發(fā)性能知押,這對(duì)于大體量的互聯(lián)網(wǎng)產(chǎn)品來(lái)說(shuō),是至關(guān)重要的鹃骂。

image

以上圖為例台盯,假設(shè)單臺(tái) RM 的非熱點(diǎn)數(shù)據(jù)并發(fā)性能為 100 TPS,那么 5臺(tái) RM 就是 500 TPS畏线,就算一個(gè)分布式事務(wù)平均涉及 2 臺(tái) RM静盅,也有 250 TPS,提升了 2.5 倍的非熱點(diǎn)并發(fā)能力寝殴。

綜上所述温亲,基于 XA 協(xié)議實(shí)現(xiàn)的分布式事務(wù)并不能提升熱點(diǎn)并發(fā)性能,其意義在于橫向擴(kuò)展資源提升非熱點(diǎn)數(shù)據(jù)并發(fā)性能時(shí)杯矩,能嚴(yán)格保證對(duì)多資源訪問(wèn)的事務(wù) ACID 特性栈虚。

至于熱點(diǎn)數(shù)據(jù)并發(fā)性能問(wèn)題,對(duì)于一般的應(yīng)用來(lái)說(shuō)史隆,經(jīng)過(guò) SQL 層面一定的性能優(yōu)化之后,其并發(fā)性能基本能夠滿足業(yè)務(wù)的需求泌射。如果經(jīng)過(guò)優(yōu)化粘姜,達(dá)到性能極限之后,還不能滿足熔酷,就需要上升到業(yè)務(wù)層面孤紧,根據(jù)業(yè)務(wù)特點(diǎn),通過(guò)專門的業(yè)務(wù)邏輯或業(yè)務(wù)架構(gòu)優(yōu)化來(lái)實(shí)現(xiàn)拒秘。

直接在資源層實(shí)現(xiàn)分布式事務(wù)的另一點(diǎn)好處是其普適性号显,可以對(duì)上層業(yè)務(wù)屏蔽底層實(shí)現(xiàn)細(xì)節(jié)。這一點(diǎn)在云服務(wù)時(shí)代特別有用躺酒,云服務(wù)面對(duì)的是大量的中小企業(yè)押蚤,甚至是個(gè)人開發(fā)者,業(yè)務(wù)訴求不盡相同羹应,普適揽碘、標(biāo)準(zhǔn)的分布式事務(wù)產(chǎn)品是非常有必要的,可以讓開發(fā)者從底層技術(shù)細(xì)節(jié)中脫離出來(lái),更專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)雳刺,從而獲得更高效劫灶、快速的業(yè)務(wù)發(fā)展。

基于 TCC 模型的應(yīng)用場(chǎng)景

image

TCC 分布式事務(wù)模型直接作用于服務(wù)層掖桦。不與具體的服務(wù)框架耦合浑此,與底層 RPC 協(xié)議無(wú)關(guān),與底層存儲(chǔ)介質(zhì)無(wú)關(guān)滞详,可以靈活選擇業(yè)務(wù)資源的鎖定粒度凛俱,減少資源鎖持有時(shí)間,可擴(kuò)展性好料饥,可以說(shuō)是為獨(dú)立部署的 SOA 服務(wù)而設(shè)計(jì)的蒲犬。

TCC 模型優(yōu)勢(shì)

對(duì)于 TCC 分布式事務(wù)模型,筆者認(rèn)為其在業(yè)務(wù)場(chǎng)景應(yīng)用上岸啡,有兩方面的意義原叮。

1、跨服務(wù)的分布式事務(wù)

這一部分的作用與 XA 類似巡蘸,服務(wù)的拆分也可以認(rèn)為是資源的橫向擴(kuò)展奋隶,只不過(guò)方向不同而已。

橫向擴(kuò)展可能沿著兩個(gè)方向發(fā)展:

  • 功能擴(kuò)展悦荒。根據(jù)功能對(duì)數(shù)據(jù)進(jìn)行分組唯欣,并將不同的功能組分布在多個(gè)不同的數(shù)據(jù)庫(kù)上,這實(shí)際上就是 SOA 架構(gòu)下的服務(wù)化搬味。

  • 數(shù)據(jù)分片境氢,在功能組內(nèi)部將數(shù)據(jù)拆分到多個(gè)數(shù)據(jù)庫(kù)上,為橫向擴(kuò)展增加一個(gè)新的維度碰纬。

下圖簡(jiǎn)要闡釋了橫向數(shù)據(jù)擴(kuò)展策略:

image

橫向擴(kuò)展的兩種方法可以同時(shí)進(jìn)行運(yùn)用:用戶信息(Users)萍聊、產(chǎn)品信息(Products)與交易信息(Trans)三個(gè)不同功能組可以存儲(chǔ)在不同的數(shù)據(jù)庫(kù)中。

另外悦析,每個(gè)功能組內(nèi)根據(jù)其業(yè)務(wù)量可以再拆分到多個(gè)數(shù)據(jù)庫(kù)中寿桨,各功能組可以相互獨(dú)立地進(jìn)行擴(kuò)展。

因此强戴,TCC 的其中一個(gè)作用就是在按照功能橫向擴(kuò)展資源時(shí)亭螟,保證多資源訪問(wèn)的事務(wù)屬性。

2酌泰、兩階段拆分

TCC 的另一個(gè)作用就是把兩階段拆分成了兩個(gè)獨(dú)立的階段媒佣,通過(guò)資源業(yè)務(wù)鎖定的方式進(jìn)行關(guān)聯(lián)匕累。資源業(yè)務(wù)鎖定方式的好處在于陵刹,既不會(huì)阻塞其它事務(wù)在第一階段對(duì)于相同資源的繼續(xù)使用,也不會(huì)影響本事務(wù)第二階段的正確執(zhí)行。

image

XA模型的并發(fā)事務(wù)

image

TCC 模型的并發(fā)事務(wù)

可以發(fā)現(xiàn) 衰琐,TCC 模型進(jìn)一步減少了資源鎖的持有時(shí)間也糊。同時(shí)從理論上來(lái)說(shuō),只要業(yè)務(wù)允許羡宙,事務(wù)的第二階段什么時(shí)候執(zhí)行都可以狸剃,反正資源已經(jīng)業(yè)務(wù)鎖定,不會(huì)有其它事務(wù)動(dòng)用該事務(wù)鎖定的資源狗热。

這對(duì)業(yè)務(wù)有什么好處呢钞馁?

拿支付寶的擔(dān)保交易場(chǎng)景來(lái)說(shuō),簡(jiǎn)化情況下匿刮,只需要涉及兩個(gè)服務(wù)僧凰,交易服務(wù)和賬務(wù)服務(wù)。交易作為主業(yè)務(wù)服務(wù)熟丸,賬務(wù)作為從業(yè)務(wù)服務(wù)训措,提供 Try、Commit光羞、Cancel 接口:

  • Try 接口扣除用戶可用資金绩鸣,轉(zhuǎn)移到預(yù)凍結(jié)資金。預(yù)凍結(jié)資金就是業(yè)務(wù)鎖定方案纱兑,每個(gè)事務(wù)第二階段只能使用本事務(wù)的預(yù)凍結(jié)資金呀闻,在第一階段執(zhí)行結(jié)束后,其他并發(fā)事務(wù)也可以繼續(xù)處理用戶的可用資金潜慎。

  • Commit 接口扣除預(yù)凍結(jié)資金总珠,增加中間賬戶可用資金(擔(dān)保交易不能立即把錢打給商戶,需要有一個(gè)中間賬戶來(lái)暫存)勘纯。

假設(shè)只有一個(gè)中間賬戶的情況下局服,每次調(diào)用支付服務(wù)的 Commit 接口,都會(huì)鎖定中間賬戶驳遵,中間賬戶存在熱點(diǎn)性能問(wèn)題淫奔。

但在擔(dān)保交易場(chǎng)景中,七天以后才需要將資金從中間賬戶劃撥給商戶堤结,中間賬戶并不需要對(duì)外展示唆迁。因此,在執(zhí)行完支付服務(wù)的第一階段后竞穷,就可以認(rèn)為本次交易的支付環(huán)節(jié)已經(jīng)完成唐责,并向用戶和商戶返回支付成功的結(jié)果,并不需要馬上執(zhí)行支付服務(wù)二階段的 Commit 接口瘾带,等到低鋒期時(shí)鼠哥,再慢慢消化,異步地執(zhí)行。

image

可能部分讀者認(rèn)為擔(dān)保交易比較特殊朴恳,其實(shí)直付交易(直接把錢打到商戶賬戶的交易模式抄罕,Commit 接口扣除預(yù)凍結(jié)資金以后,不是轉(zhuǎn)移到中間賬務(wù)于颖,而是直接轉(zhuǎn)移到商戶賬戶)也可以這樣使用呆贿,只要提前告知商戶,高峰期交易資金不是實(shí)時(shí)到賬森渐,但保證在一定時(shí)間之內(nèi)結(jié)算完成做入,商戶應(yīng)該也是可以理解的。

這就是 TCC 分布式事務(wù)模型的二階段異步化功能同衣,從業(yè)務(wù)服務(wù)的第一階段執(zhí)行成功母蛛,主業(yè)務(wù)服務(wù)就可以提交完成,然后再由框架異步的執(zhí)行各從業(yè)務(wù)服務(wù)的第二階段乳怎。

通用型 TCC 解決方案

通用型 TCC 解決方案就是最典型的 TCC 分布式事務(wù)模型實(shí)現(xiàn)彩郊,所有從業(yè)務(wù)服務(wù)都需要參與到主業(yè)務(wù)服務(wù)的決策當(dāng)中。

image
  • 適用場(chǎng)景

由于從業(yè)務(wù)服務(wù)是同步調(diào)用蚪缀,其結(jié)果會(huì)影響到主業(yè)務(wù)服務(wù)的決策秫逝,因此通用型 TCC 分布式事務(wù)解決方案適用于執(zhí)行時(shí)間確定且較短的業(yè)務(wù),比如互聯(lián)網(wǎng)金融企業(yè)最核心的三個(gè)服務(wù):交易询枚、支付违帆、賬務(wù):

image

當(dāng)用戶發(fā)起一筆交易時(shí),首先訪問(wèn)交易服務(wù)金蜀,創(chuàng)建交易訂單刷后;然后交易服務(wù)調(diào)用支付服務(wù)為該交易創(chuàng)建支付訂單,執(zhí)行收款動(dòng)作渊抄,最后支付服務(wù)調(diào)用賬務(wù)服務(wù)記錄賬戶流水和記賬尝胆。

為了保證三個(gè)服務(wù)一起完成一筆交易,要么同時(shí)成功护桦,要么同時(shí)失敗含衔,可以使用通用型 TCC 解決方案,將這三個(gè)服務(wù)放在一個(gè)分布式事務(wù)中二庵,交易作為主業(yè)務(wù)服務(wù)贪染,支付作為從業(yè)務(wù)服務(wù),賬務(wù)作為支付服務(wù)的嵌套從業(yè)務(wù)服務(wù)催享,由 TCC 模型保證事務(wù)的原子性杭隙。

image

支付服務(wù)的 Try 接口創(chuàng)建支付訂單,開啟嵌套分布式事務(wù)因妙,并調(diào)用賬務(wù)服務(wù)的 Try 接口痰憎;賬務(wù)服務(wù)在 Try 接口中凍結(jié)買家資金票髓。一階段調(diào)用完成后,交易完成信殊,提交本地事務(wù)炬称,由 TCC 框架完成分布式事務(wù)各從業(yè)務(wù)服務(wù)二階段的調(diào)用汁果。

支付服務(wù)二階段先調(diào)用賬務(wù)服務(wù)的 Confirm 接口涡拘,解凍買家資金;增加賣家可用資金据德。調(diào)用成功后鳄乏,支付服務(wù)修改支付訂單為完成狀態(tài),完成支付棘利。

當(dāng)支付和賬務(wù)服務(wù)二階段都調(diào)用完成后橱野,整個(gè)分布式事務(wù)結(jié)束。

異步確保型 TCC 解決方案

異步確保型 TCC 解決方案的直接從業(yè)務(wù)服務(wù)是可靠消息服務(wù)善玫,而真正的從業(yè)務(wù)服務(wù)則通過(guò)消息服務(wù)解耦水援,作為消息服務(wù)的消費(fèi)端,異步地執(zhí)行茅郎。

image

可靠消息服務(wù)需要提供 Try蜗元、Confirm、Cancel 三個(gè)接口系冗。Try 接口預(yù)發(fā)送奕扣,只負(fù)責(zé)持久化存儲(chǔ)消息數(shù)據(jù);Confirm 接口確認(rèn)發(fā)送掌敬,這時(shí)才開始真正的投遞消息惯豆;Cancel 接口取消發(fā)送,刪除消息數(shù)據(jù)奔害。

消息服務(wù)的消息數(shù)據(jù)獨(dú)立存儲(chǔ)楷兽,獨(dú)立伸縮,降低從業(yè)務(wù)服務(wù)與消息系統(tǒng)間的耦合华临,在消息服務(wù)可靠的前提下拄养,實(shí)現(xiàn)分布式事務(wù)的最終一致性。

此解決方案雖然增加了消息服務(wù)的維護(hù)成本银舱,但由于消息服務(wù)代替從業(yè)務(wù)服務(wù)實(shí)現(xiàn)了 TCC 接口瘪匿,從業(yè)務(wù)服務(wù)不需要任何改造,接入成本非常低寻馏。

  • 適用場(chǎng)景

由于從業(yè)務(wù)服務(wù)消費(fèi)消息是一個(gè)異步的過(guò)程棋弥,執(zhí)行時(shí)間不確定,可能會(huì)導(dǎo)致不一致時(shí)間窗口增加诚欠。因此顽染,異步確保性 TCC 分布式事務(wù)解決方案只適用于對(duì)最終一致性時(shí)間敏感度較低的一些被動(dòng)型業(yè)務(wù)(從業(yè)務(wù)服務(wù)的處理結(jié)果不影響主業(yè)務(wù)服務(wù)的決策漾岳,只被動(dòng)的接收主業(yè)務(wù)服務(wù)的決策結(jié)果)。比如會(huì)員注冊(cè)服務(wù)和郵件發(fā)送服務(wù):

image

當(dāng)用戶注冊(cè)會(huì)員成功粉寞,需要給用戶發(fā)送一封郵件尼荆,告訴用戶注冊(cè)成功,并提示用戶激活該會(huì)員唧垦。但要注意兩點(diǎn):

  • 如果用戶注冊(cè)成功捅儒,一定要給用戶發(fā)送一封郵件;

  • 如果用戶注冊(cè)失敗振亮,一定不能給用戶發(fā)送郵件巧还。

因此,這同樣需要會(huì)員服務(wù)和郵件服務(wù)保證原子性坊秸,要么都執(zhí)行麸祷,要么都不執(zhí)行。不一樣的是褒搔,郵件服務(wù)只是一種被動(dòng)型的業(yè)務(wù)阶牍,并不影響用戶是否能夠注冊(cè)成功,它只需要在用戶注冊(cè)成功以后發(fā)送郵件給用戶即可星瘾,郵件服務(wù)不需要參與到會(huì)員服務(wù)的活動(dòng)決策中走孽。

對(duì)于此種業(yè)務(wù)場(chǎng)景,可以使用異步確保型TCC分布式事務(wù)解決方案死相,如下:

image

由可靠消息服務(wù)來(lái)解耦會(huì)員和郵件服務(wù)融求,會(huì)員服務(wù)與消息服務(wù)組成 TCC 事務(wù)模型,保證事務(wù)原子性算撮。然后通過(guò)消息服務(wù)的可靠特性生宛,確保消息一定能夠被郵件服務(wù)消費(fèi),從而使得會(huì)員與郵件服務(wù)在同一個(gè)分布式事務(wù)中肮柜。同時(shí)陷舅,郵件服務(wù)也不會(huì)影響會(huì)員服務(wù)的執(zhí)行過(guò)程,只在會(huì)員服務(wù)執(zhí)行成功后被動(dòng)接收發(fā)送郵件的請(qǐng)求审洞。

補(bǔ)償型 TCC 解決方案

補(bǔ)償型 TCC 解決方案與通用型 TCC 解決方案的結(jié)構(gòu)相似莱睁,其從業(yè)務(wù)服務(wù)也需要參與到主業(yè)務(wù)服務(wù)的活動(dòng)決策當(dāng)中。但不一樣的是芒澜,前者的從業(yè)務(wù)服務(wù)只需要提供 Do 和 Compensate 兩個(gè)接口仰剿,而后者需要提供三個(gè)接口。

image

Do 接口直接執(zhí)行真正的完整業(yè)務(wù)邏輯痴晦,完成業(yè)務(wù)處理南吮,業(yè)務(wù)執(zhí)行結(jié)果外部可見;Compensate 操作用于業(yè)務(wù)補(bǔ)償誊酌,抵消或部分抵消正向業(yè)務(wù)操作的業(yè)務(wù)結(jié)果部凑,Compensate操作需滿足冪等性露乏。

與通用型解決方案相比,補(bǔ)償型解決方案的從業(yè)務(wù)服務(wù)不需要改造原有業(yè)務(wù)邏輯涂邀,只需要額外增加一個(gè)補(bǔ)償回滾邏輯即可瘟仿,業(yè)務(wù)改造量較小。但要注意的是比勉,業(yè)務(wù)在一階段就執(zhí)行完整個(gè)業(yè)務(wù)邏輯劳较,無(wú)法做到有效的事務(wù)隔離,當(dāng)需要回滾時(shí)敷搪,可能存在補(bǔ)償失敗的情況兴想,還需要額外的異常處理機(jī)制幢哨,比如人工介入赡勘。

  • 適用場(chǎng)景

由于存在回滾補(bǔ)償失敗的情況,補(bǔ)償型 TCC 分布式事務(wù)解決方案只適用于一些并發(fā)沖突較少或者需要與外部交互的業(yè)務(wù)捞镰,這些外部業(yè)務(wù)不屬于被動(dòng)型業(yè)務(wù)闸与,其執(zhí)行結(jié)果會(huì)影響主業(yè)務(wù)服務(wù)的決策,比如機(jī)票代理商的機(jī)票預(yù)訂服務(wù):

image

該機(jī)票服務(wù)提供多程機(jī)票預(yù)訂服務(wù)岸售,可以同時(shí)預(yù)訂多趟行程航班機(jī)票践樱,比如從北京到圣彼得堡,需要第一程從北京到莫斯科凸丸,以及第二程從莫斯科到圣彼得堡拷邢。

當(dāng)用戶預(yù)訂機(jī)票時(shí),肯定希望能同時(shí)預(yù)訂這兩趟航班的機(jī)票屎慢,只預(yù)訂一趟航班對(duì)用戶來(lái)說(shuō)沒有意義瞭稼。因此,對(duì)于這樣的業(yè)務(wù)服務(wù)同樣提出了原子性要求腻惠,如果其中一趟航班的機(jī)票預(yù)訂失敗环肘,另外一趟需要能夠取消預(yù)訂。

但是集灌,由于航空公司相對(duì)于機(jī)票代理商來(lái)說(shuō)屬于外部業(yè)務(wù)悔雹,只提供訂票接口和取消預(yù)訂接口,想要推動(dòng)航空公司改造是極其困難的欣喧。因此腌零,對(duì)于此類業(yè)務(wù)服務(wù),可以使用補(bǔ)償型 TCC 分布式事務(wù)解決方案唆阿,如下:

image

網(wǎng)關(guān)服務(wù)在原有邏輯基礎(chǔ)上增加 Compensate 接口益涧,負(fù)責(zé)調(diào)用對(duì)應(yīng)航空公司的取消預(yù)訂接口。

在用戶發(fā)起機(jī)票預(yù)訂請(qǐng)求時(shí)酷鸦,機(jī)票服務(wù)先通過(guò)網(wǎng)關(guān) Do 接口饰躲,調(diào)用各航空公司的預(yù)訂接口牙咏,如果所有航班都預(yù)訂成功,則整個(gè)分布式事務(wù)直接執(zhí)行成功嘹裂;一旦某趟航班機(jī)票預(yù)訂失敗妄壶,則分布式事務(wù)回滾,由 TCC 事務(wù)框架調(diào)用各網(wǎng)關(guān)的 Compensate 補(bǔ)償接口寄狼,其再調(diào)用對(duì)應(yīng)航空公司的取消預(yù)訂接口丁寄。通過(guò)這種方式,也可以保證多程機(jī)票預(yù)訂服務(wù)的原子性泊愧。

總結(jié)

對(duì)于現(xiàn)在的互聯(lián)網(wǎng)應(yīng)用來(lái)說(shuō)伊磺,資源橫向擴(kuò)展提供了更多的靈活性,是一種比較容易實(shí)現(xiàn)的向外擴(kuò)展方案删咱,但是同時(shí)也明顯增加了復(fù)雜度屑埋,引入一些新的挑戰(zhàn),比如資源之間的數(shù)據(jù)一致性問(wèn)題痰滋。

橫向數(shù)據(jù)擴(kuò)展既可以按數(shù)據(jù)分片擴(kuò)展摘能,也可以按功能擴(kuò)展。XA 與 TCC 模型在這一點(diǎn)上的作用類似敲街,都能在橫向擴(kuò)展資源的同時(shí)团搞,保證多資源訪問(wèn)的事務(wù)屬性,只不過(guò)前者作用于數(shù)據(jù)分片時(shí)多艇,后者作用于功能擴(kuò)展時(shí)逻恐。

XA 模型另外一個(gè)意義在于其普適性,拋開性能問(wèn)題的情況下峻黍,幾乎可以適用于所有業(yè)務(wù)模式复隆,這對(duì)于一些基礎(chǔ)性的技術(shù)產(chǎn)品來(lái)說(shuō)是非常有用的,比如分布式數(shù)據(jù)庫(kù)奸披、云服務(wù)的分布式事務(wù)框架等昏名。

TCC 模型除了跨服務(wù)的分布式事務(wù)這一層作用之外,還具有兩階段劃分的功能阵面,通過(guò)業(yè)務(wù)資源鎖定轻局,允許第二階段的異步執(zhí)行,而異步化思想正是解決熱點(diǎn)數(shù)據(jù)并發(fā)性能問(wèn)題的利器之一样刷。

本文結(jié)合具體的業(yè)務(wù)場(chǎng)景和例子仑扑,對(duì)比分析了各分布式事務(wù)解決方案在性能、熱點(diǎn)沖突置鼻、接入復(fù)雜度和適用場(chǎng)景等方面的能力镇饮,希望能幫助各位讀者對(duì)分布式事務(wù)有更深一層的理解。

業(yè)務(wù)各有各的不同箕母,有些業(yè)務(wù)能容忍短期不一致储藐,有些業(yè)務(wù)的操作可以冪等俱济,無(wú)論什么樣的分布式事務(wù)解決方案都有其優(yōu)缺點(diǎn),沒有一個(gè)銀彈能夠適配所有钙勃。因此蛛碌,業(yè)務(wù)需要什么樣的解決方案,還需要結(jié)合自身的業(yè)務(wù)需求辖源、業(yè)務(wù)特點(diǎn)蔚携、技術(shù)架構(gòu)以及各解決方案的特性,綜合分析克饶,才能找到最適合的方案酝蜒。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市矾湃,隨后出現(xiàn)的幾起案子亡脑,更是在濱河造成了極大的恐慌,老刑警劉巖洲尊,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件远豺,死亡現(xiàn)場(chǎng)離奇詭異奈偏,居然都是意外死亡坞嘀,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門惊来,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)丽涩,“玉大人,你說(shuō)我怎么就攤上這事裁蚁∈冈ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵枉证,是天一觀的道長(zhǎng)矮男。 經(jīng)常有香客問(wèn)我,道長(zhǎng)室谚,這世上最難降的妖魔是什么毡鉴? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮秒赤,結(jié)果婚禮上猪瞬,老公的妹妹穿的比我還像新娘。我一直安慰自己入篮,他們只是感情好陈瘦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著潮售,像睡著了一般痊项。 火紅的嫁衣襯著肌膚如雪锅风。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天鞍泉,我揣著相機(jī)與錄音遏弱,去河邊找鬼。 笑死塞弊,一個(gè)胖子當(dāng)著我的面吹牛漱逸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播游沿,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼饰抒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了诀黍?” 一聲冷哼從身側(cè)響起袋坑,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎眯勾,沒想到半個(gè)月后枣宫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吃环,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年也颤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郁轻。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡翅娶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出好唯,到底是詐尸還是另有隱情竭沫,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布骑篙,位于F島的核電站蜕提,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏靶端。R本人自食惡果不足惜谎势,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望躲查。 院中可真熱鬧猜旬,春花似錦脚曾、人聲如沸酗失。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至镊折,卻和暖如春胯府,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背恨胚。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工骂因, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赃泡。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓寒波,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親升熊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子俄烁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容