日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

在如今的分布式盛行的時(shí)代,分布式事務(wù)永遠(yuǎn)都是繞不開(kāi)的一個(gè)話題,今天就談?wù)劮植际绞聞?wù)相關(guān)的一致性與實(shí)戰(zhàn)解決方案。

01 為什么需要分布式事務(wù) 

由于近十年互聯(lián)網(wǎng)的發(fā)展非常迅速,很多網(wǎng)站的訪問(wèn)越來(lái)越大,集中式環(huán)境已經(jīng)不能滿足業(yè)務(wù)的需要了,只能按照業(yè)務(wù)為單位進(jìn)行數(shù)據(jù)拆分(包含:垂直拆分與水平拆分),以及按照業(yè)務(wù)為單位提供服務(wù),從早期的集中式轉(zhuǎn)變?yōu)槊嫦蚍?wù)架構(gòu)的分布式應(yīng)用環(huán)境。

舉一個(gè)典型的例子,阿里的淘寶網(wǎng)站隨著訪問(wèn)量越來(lái)越大,只能按照商品、訂單、用戶、店鋪等業(yè)務(wù)為單位進(jìn)行數(shù)據(jù)庫(kù)拆分,以及按照業(yè)務(wù)為單位提供服務(wù)接口。

什么是“分布式事務(wù)”?這回徹底懂了

 

這個(gè)時(shí)候 為了完成一個(gè)簡(jiǎn)單的業(yè)務(wù)功能,比如:購(gòu)買(mǎi)商品后扣款,有可能需要橫跨多個(gè)服務(wù),涉及用戶訂單、商品庫(kù)存、支付等多個(gè)數(shù)據(jù)庫(kù),而這些操作又需要在同一個(gè)事務(wù)中完,這就涉及到到了分布式事務(wù)。

本質(zhì)上來(lái)說(shuō),分布式事務(wù)就是為了保證不同資源服務(wù)器的數(shù)據(jù)一致性。

02 分布式的一致性理論 

最早加州大學(xué)伯克利分校 Eric Brewer教授提出一個(gè)分布式系統(tǒng)特性的CAP理論。

1.CAP 理論的不可能三角

什么是“分布式事務(wù)”?這回徹底懂了

 

  • 一致性(Consistency)
  • 可用性(Availability)
  • 分區(qū)容錯(cuò)性(Partition tolerance)

在分布式系統(tǒng)中,是不存在同時(shí)滿足一致性 Consistency、可用性 Availability和分區(qū)容錯(cuò)性 Partition Tolerance三者的。

一句話總結(jié):一致性、可用性和分區(qū)容錯(cuò)在分布式事務(wù)中不可兼得。

在絕大多數(shù)的場(chǎng)景,都需要犧牲強(qiáng)一致性來(lái)?yè)Q取系統(tǒng)的高可用性,系統(tǒng)往往只需要保證最終一致性。

這也是是后來(lái)發(fā)展出的BASE理論的基礎(chǔ)。

2.BASE 理論

什么是“分布式事務(wù)”?這回徹底懂了

 

  • Basically Available(基本可用)
  • Soft state(柔軟狀態(tài))
  • Eventually consistent(最終一致性)三個(gè)短語(yǔ)的簡(jiǎn)寫(xiě)。

BASE是對(duì)CAP中一致性和可用性權(quán)衡的結(jié)果,其來(lái)源于對(duì)大規(guī)模互聯(lián)網(wǎng)系統(tǒng)分布式實(shí)踐的結(jié)論,是基于CAP定理逐步演化而來(lái)的,其核心思想是即使無(wú)法做到強(qiáng)一致性(Strong consistency),但每個(gè)應(yīng)用都可以根據(jù)自身的業(yè)務(wù)特點(diǎn),采用適當(dāng)?shù)姆绞絹?lái)使系統(tǒng)達(dá)到最終一致性(Eventual consistency)。

 

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

1.基于XA協(xié)議的兩階段提交 2PC(2-phase commit protocol)

XA是一個(gè)分布式事務(wù)協(xié)議,XA中大致分為兩部分:事務(wù)管理器和本地資源管理器,其中本地資源管理器往往由數(shù)據(jù)庫(kù)實(shí)現(xiàn),而事務(wù)管理器作為全局的調(diào)度者,負(fù)責(zé)各個(gè)本地資源的提交和回滾。

什么是“分布式事務(wù)”?這回徹底懂了

 

大致的流程:

  • 第一階段是表決階段,所有參與者都將本事務(wù)能否成功的信息反饋發(fā)給協(xié)調(diào)者;
  • 第二階段是執(zhí)行階段,協(xié)調(diào)者根據(jù)所有參與者的反饋,通知所有參與者,步調(diào)一致地在所有分支上提交或者回滾。

優(yōu)缺點(diǎn)

盡量保證了數(shù)據(jù)的強(qiáng)一致,實(shí)現(xiàn)成本較低,在各大主流數(shù)據(jù)庫(kù)都有自己實(shí)現(xiàn),存在單點(diǎn)故障問(wèn)題、性能問(wèn)題、跨數(shù)據(jù)庫(kù)問(wèn)題。

2.事務(wù)補(bǔ)償TCC模式

TCC方案其實(shí)是兩階段提交的一種改進(jìn),將整個(gè)業(yè)務(wù)邏輯的每個(gè)分支顯式的分成了Try、Confirm、Cancel三個(gè)操作。

Try部分完成業(yè)務(wù)的準(zhǔn)備工作,confirm部分完成業(yè)務(wù)的提交,cancel部分完成事務(wù)的回滾,基本原理如下圖所示:

什么是“分布式事務(wù)”?這回徹底懂了

 

優(yōu)缺點(diǎn)

對(duì)代碼有侵入性,降低了鎖沖突,提高了吞吐量,缺點(diǎn)是有時(shí)候并沒(méi)有那么好實(shí)現(xiàn)。

案例

螞蟻金服的DTS(prepare、commit、rollback)

3.消息隊(duì)列最終一致性方案

通過(guò)異步解耦的方式,通過(guò)第三方中間件

什么是“分布式事務(wù)”?這回徹底懂了

 


案例

RocketMQ RabbitMQ等均可實(shí)現(xiàn),RocketMQ 還有專門(mén)的事務(wù)型消息,新版的kafka也有。

總之,分布式系統(tǒng)中事務(wù)更多的是對(duì)CAP權(quán)衡,在實(shí)際應(yīng)用中,根據(jù)業(yè)務(wù)要求、開(kāi)發(fā)人員情況以及所用框架不同進(jìn)行調(diào)整。

本文轉(zhuǎn)載于:https://youzhixueyuan.com/distributed-transaction.html

分享到:
標(biāo)簽:分布式 事務(wù)
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定