国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

分布式事務(wù) — 可靠消息最終一致性方案

開發(fā) 前端 分布式
可靠消息最終一致性方案是指當(dāng)事務(wù)發(fā)起方執(zhí)行完成本地事務(wù)后發(fā)出消息到消息中間件,事務(wù)參與方(消息消費(fèi)者)一定能夠接收到消息并處理事務(wù)成功,此方案強(qiáng)調(diào)的是只要消息發(fā)給事務(wù)參與方,則最終事務(wù)要達(dá)到一致。

[[405809]]

大家好,我是狼王,一個(gè)愛打球的程序員

事務(wù)想必大家并不陌生,比如經(jīng)常被人提起的ACID,但是為了后續(xù)的分布式事務(wù)的內(nèi)容,我們先來(lái)聊聊 ACID,然后再介紹下什么是分布式事務(wù),最后著重講下基于可靠消息的分布式事務(wù)解決方案。

什么是事務(wù)

嚴(yán)格意義上的事務(wù)應(yīng)該是具備原子性、一致性、隔離性和持久性,簡(jiǎn)稱 ACID。

  1. 原子性(Atomicity),可以理解為一個(gè)事務(wù)內(nèi)的所有操作要么都執(zhí)行,要么都不執(zhí)行。
  2. 一致性(Consistency),可以理解為數(shù)據(jù)是滿足完整性約束的,也就是不會(huì)存在中間狀態(tài)的數(shù)據(jù),比如你錢包有100,我錢包有100,你給我打50塊,此時(shí)你錢包的錢應(yīng)該是50,我錢包的錢應(yīng)該是150,不會(huì)存在我錢加了,你錢沒扣的中間狀態(tài)。
  3. 隔離性(Isolation),指的是多個(gè)事務(wù)并發(fā)執(zhí)行的時(shí)候不會(huì)互相干擾,即一個(gè)事務(wù)內(nèi)部的數(shù)據(jù)對(duì)于其他事務(wù)來(lái)說(shuō)是隔離的。
  4. 持久性(Durability),指的是一個(gè)事務(wù)完成了之后數(shù)據(jù)就被永遠(yuǎn)保存下來(lái),之后的其他操作或故障都不會(huì)對(duì)事務(wù)的結(jié)果產(chǎn)生影響。

而通俗意義上事務(wù)就是為了使得一些更新操作要么都成功,要么都失敗。

什么是分布式事務(wù)

分布式事務(wù)顧名思義就是要在分布式系統(tǒng)中實(shí)現(xiàn)事務(wù),它其實(shí)是由多個(gè)本地事務(wù)組合而成。

一次大的操作由不同的小操作組成的,這些小的操作分布在不同的服務(wù)器上,分布式事務(wù)需要保證這些小操作要么全部成功,要么全部失敗。從本質(zhì)上來(lái)說(shuō),分布式事務(wù)就是為了保證不同數(shù)據(jù)庫(kù)的數(shù)據(jù)一致性。

常見的分布式事務(wù)的解決方案有以下幾種:2PC,3PC,TCC,本地消息表、可靠消息最終一致性、盡最大努力通知等

今天我們就著重講講可靠消息最終一致性的解決方案

什么是可靠消息最終一致性方案

可靠消息最終一致性方案是指當(dāng)事務(wù)發(fā)起方執(zhí)行完成本地事務(wù)后發(fā)出消息到消息中間件,事務(wù)參與方(消息消費(fèi)者)一定能夠接收到消息并處理事務(wù)成功,此方案強(qiáng)調(diào)的是只要消息發(fā)給事務(wù)參與方,則最終事務(wù)要達(dá)到一致。

這個(gè)方式存在哪些問(wèn)題?

此方案是通過(guò)消息中間件實(shí)現(xiàn)的,事務(wù)發(fā)起方(消息生產(chǎn)方)將消息發(fā)給消息中間件,事務(wù)參與方從消息中間件接收消息,由于網(wǎng)絡(luò)通信的不確定性會(huì)導(dǎo)致分布式事務(wù)問(wèn)題,如下圖:

1.本地事務(wù)與消息的原子性問(wèn)題

如上圖在虛線框內(nèi),存在以下幾種情況:

  • 1)本地事務(wù)提交失敗,則消息不發(fā)送。
  • 2)本地事務(wù)成功,消息發(fā)送失敗,本地事務(wù)回滾。
  • 3)本地消息成功,消息超時(shí),本地事務(wù)回滾,消息最終失敗。
  • 4)本地消息成功,消息超時(shí),本地事務(wù)回滾,消息最終成功。

綜上所述,存在第四種情況,造成本地事務(wù),與消息參與方的事務(wù)不一致。

2.事務(wù)參與方接收消息的可靠性。

消息中間件與事務(wù)參與方要確保能夠成功消費(fèi)到消息。

3.消息重復(fù)消費(fèi)

注意事務(wù)參與方的接口冪等性問(wèn)題,消息參與方可能已經(jīng)成功消費(fèi),由于網(wǎng)絡(luò)問(wèn)題導(dǎo)致消息中間件認(rèn)為消息未消費(fèi),發(fā)起重試之后產(chǎn)生的問(wèn)題。

解決方案

1.本地消息表

本地消息表的關(guān)鍵在于本地有一張存儲(chǔ)消息日志的記錄表,需要啟動(dòng)一個(gè)定時(shí)任務(wù)去不停地掃描消息日志記錄,確保消息能夠被發(fā)送。具體流程如下圖:

上圖流程:

  • 1)事務(wù)發(fā)起方本地事務(wù)執(zhí)行成功,在本地消息表中記錄消息日志。
  • 2)啟動(dòng)定時(shí)任務(wù),循環(huán)掃描本地消息表。
  • 3)定時(shí)任務(wù)掃描到消息則發(fā)送消息到消息中間件。
  • 4)消息中間件收到消息,成功返回消息發(fā)送成功通知給事務(wù)發(fā)起方。
  • 5)事務(wù)發(fā)起方收到消息發(fā)送成功則刪除日志消息。
  • 6)事務(wù)參與方訂閱消息,消費(fèi)消息。
  • 7)事務(wù)參與方處理本地事務(wù)。
  • 8)本地事務(wù)處理成功,發(fā)送成功ack給消息中間件。

需要注意的點(diǎn):

事務(wù)參與方保證接口冪等性。

2.RocketMq事務(wù)消息方案

Apache RocketMQ 4.3之后的版本正式支持事務(wù)消息,為分布式事務(wù)實(shí)現(xiàn)提供了便利性支持。在RocketMQ 4.3后實(shí)現(xiàn)了完整的事務(wù)消息,實(shí)際上其實(shí)是對(duì)本地消息表的一個(gè)封裝,將本地消息表移動(dòng)到了MQ內(nèi)部,解決 Producer 端的消息發(fā)送與本地事務(wù)執(zhí)行的原子性問(wèn)題。

實(shí)現(xiàn)流程:

  • 1)事務(wù)發(fā)起方發(fā)送Half事務(wù)消息
  • 2)RocketMq回復(fù)Half發(fā)送成功
  • 3)事務(wù)發(fā)起方執(zhí)行本地事務(wù)
  • 4)事務(wù)發(fā)起方執(zhí)行本地事務(wù)成功,發(fā)送commit到RocketMq,mq投遞消息到事務(wù)參與方;事務(wù)發(fā)起方執(zhí)行本地事務(wù)失敗,發(fā)送rollback到RocketMq,mq刪除消息。
  • 5)當(dāng)RocketMq一定時(shí)間內(nèi)未收到來(lái)自事務(wù)發(fā)起方的確認(rèn)信息,會(huì)對(duì)事務(wù)發(fā)起方進(jìn)行事務(wù)回查。
  • 6)事務(wù)發(fā)起方查詢本地事務(wù)狀態(tài)。
  • 7)事務(wù)發(fā)起方根據(jù)查詢到的事務(wù)狀態(tài)發(fā)送commint/rollback到RocketMq。
  • 8)當(dāng)RocketMq發(fā)起commit后,收到失敗或一定時(shí)間未收到成功ack,則會(huì)發(fā)起重試。

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

消息數(shù)據(jù)獨(dú)立存儲(chǔ),降低業(yè)務(wù)系統(tǒng)與消息系統(tǒng)之間的耦合。

吞吐量?jī)?yōu)于本地消息表方案。

缺點(diǎn):

一次消息發(fā)送需要兩次網(wǎng)絡(luò)請(qǐng)求(half消息 + commit/rollback)。

需要實(shí)現(xiàn)消息回查接口。

其實(shí)每種分布式事務(wù)的解決方案都有優(yōu)劣,我們需要權(quán)衡利弊,選擇最合適業(yè)務(wù)場(chǎng)景的一種才是王道!

好了。今天就說(shuō)到這了,我還會(huì)不斷分享自己的所學(xué)所想,希望我們一起走在成功的道路上!

本文轉(zhuǎn)載自微信公眾號(hào)「狼王編程」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系狼王編程公眾號(hào)。

 

責(zé)任編輯:姜華 來(lái)源: 狼王編程
相關(guān)推薦

2023-07-25 09:52:00

本地事務(wù)宕機(jī)

2022-07-21 06:54:28

微服務(wù)系統(tǒng)RocketMQ

2025-08-05 04:22:00

2015-10-19 10:42:37

分布式一致性應(yīng)用系統(tǒng)

2024-06-04 10:58:30

2022-12-19 19:12:17

分布式事務(wù)

2019-10-11 23:27:19

分布式一致性算法開發(fā)

2021-06-06 12:45:41

分布式CAPBASE

2017-09-22 12:08:01

數(shù)據(jù)庫(kù)分布式系統(tǒng)互聯(lián)網(wǎng)

2019-09-05 08:43:34

微服務(wù)分布式一致性數(shù)據(jù)共享

2021-11-22 16:30:30

分布式一致性分布式系統(tǒng)

2024-01-31 09:54:51

Redis分布式

2024-11-28 10:56:55

2017-09-21 10:59:36

分布式系統(tǒng)線性一致性測(cè)試

2021-06-03 15:27:31

RaftSOFAJRaft

2022-06-07 12:08:10

Paxos算法

2021-07-28 08:39:25

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

2025-03-27 03:00:00

2023-08-22 09:32:44

邊緣計(jì)算管理

2025-06-19 02:15:00

點(diǎn)贊
收藏

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

国产乱一区二区| 国产精品久久久久久久久动漫| 久久天天躁狠狠躁夜夜躁2014| 精品亚洲一区二区三区四区| 亚洲精品资源| 久久久久久久色| 超碰高清在线| 亚洲精品伦理在线| 久久精品xxx| 亚洲午夜视频| 日本乱人伦a精品| 九九热这里有精品| 欧美精品一区二| 国产综合在线观看| 日韩理论在线观看| 日韩在线一级片| 久久视频一区| 精品免费日产一区一区三区免费| 男男gay无套免费视频欧美| 久久视频免费观看| 好看的中文字幕在线播放| 色视频欧美一区二区三区| 国产男小鲜肉同志免费| 久久综合九色欧美综合狠狠| 艳母动漫在线免费观看| 母乳一区在线观看| 国产精品加勒比| 久久久久久美女精品 | 五月天色一区| 99精品在线观看| 国产成人免费av电影| 伊人久久噜噜噜躁狠狠躁| 日韩中文在线视频| 国精产品一区二区三区有限公司| 欧美精品一区二区三区在线| 91高清在线观看视频| 欧美夫妻性生活| 在线看一级片| 欧美电影精品一区二区| 最近中文字幕免费mv2018在线 | 国产裸体舞一区二区三区| 国产福利91精品| 欧美一级免费播放| a在线欧美一区| 亚欧无线一线二线三线区别| fc2成人免费人成在线观看播放| 91免费国产精品| www.欧美亚洲| 亚洲色图38p| 亚洲三级在线播放| 亚洲男人天堂| 欧美熟乱第一页| 国产日产一区二区三区| 亚洲国产天堂久久国产91| 精品人人视频| 日韩一区视频在线| 波多野结衣欧美| 国产成人高潮免费观看精品| 成人黄色av| 久久精品欧美| 国产精品亚洲一区二区三区妖精| 妞干网在线观看视频| 综合在线观看色| 成人三级黄色免费网站| 亚洲精品动漫久久久久| 欧美专区视频| 成人精品久久av网站| 亚洲在线网站| www..com日韩| 亚洲一区二区三区激情| 久久久久久国产精品免费无遮挡 | 日本一区二区三区免费观看| 国产主播一区二区| 超碰在线97免费| 黑人巨大精品欧美一区二区一视频| 草碰在线视频| 日韩成人av在线| 欧美日韩看看2015永久免费| 51精品国产人成在线观看| 免费成人你懂的| 国产高清视频网站| 欧美视频日韩视频在线观看| 成人欧美magnet| 国产精品久久9| 日本伊人精品一区二区三区观看方式 | 亚洲男人的天堂网站| 亚洲精品伊人| 91成人理论电影| 国产不卡高清在线观看视频| 日本免费专区| 精品日韩在线观看| 欧美a级网站| 日韩资源av在线| 国产精品乱人伦中文| 国产成人l区| 国产91精品高潮白浆喷水| 国产欧美另类| 久久久久久久久久久久久国产精品| 一本到不卡免费一区二区| 麻豆精品蜜桃| 成人免费在线看片| 91麻豆免费在线观看| 国产1区2区3区在线| 九九久久综合网站| 性色av一区二区怡红| 成人au免费视频影院| 日韩风俗一区 二区| 国产精品久久久久9999赢消| 国产精品无码人妻一区二区在线 | 99这里只有久久精品视频| 玩弄japan白嫩少妇hd| 9191久久久久久久久久久| 欧美三级一区| 久久综合福利| 亚洲综合在线第一页| 成人在线高清| 欧美一区二区三区在线播放| 亚洲欧美视频一区| 六九午夜精品视频| 日韩色妇久久av| 日韩欧美在线观看| 鲁大师精品99久久久| 青娱乐自拍偷拍| 亚洲精品一线二线三线| 欧美国产专区| 亚洲精品一区二区| 久久久亚洲国产| 国产精品 日产精品 欧美精品| 在线观看麻豆蜜桃| 国产日韩亚洲欧美| 综合久久久久久| 国语自产精品视频在线看抢先版结局| 日本三级中国三级99人妇网站| 色综合久久综合网欧美综合网| 极品束缚调教一区二区网站| 亚欧无线一线二线三线区别| 日韩av中文字幕在线| 蜜桃伊人久久| 麻豆影视国产在线观看| 亚洲综合中文字幕在线| 亚洲一级二级三级| 亚州综合一区| 激情五月俺来也| 色综合久久精品亚洲国产| www.欧美日韩| 久久天堂av| 国产精品videossex国产高清| 亚洲国产精品va在线观看黑人| 欧美亚洲一级| 超碰在线最新| 日本不卡久久| 欧美日韩一级黄| 国产欧美一区二区色老头| 精品一二三区视频| 91亚洲精品久久久久久久久久久久| 一区二区三区精品久久久| 欧洲专线二区三区| 日本一区二区三区电影| 国产精品久久一区主播| 亚洲欧美国产高清| 国产在视频线精品视频www666| 国产毛片毛片| 国产日韩在线观看av| 亚洲444eee在线观看| 天天射综合网视频| www.亚洲免费| 免费亚洲精品视频| 欧美一级专区免费大片| 丝袜美腿成人在线| 国产拍在线视频| 国产伦精品一区二区三区四区视频_ | 色yeye香蕉凹凸一区二区av| 国产成a人亚洲| 成人在线观看免费播放| 久久婷婷五月综合色国产香蕉| 久久久av一区| 亚洲欧美自拍偷拍色图| 视频精品在线观看| 国产三级在线免费观看| 欧美在线3区| 中文字幕在线视频日韩| 国产肉丝袜一区二区| 欧美日韩精品在线一区| 国产三级电影在线观看| 亚洲蜜桃av| 欧美日本啪啪无遮挡网站| 亚洲成人av在线电影| 香蕉国产精品偷在线观看不卡| 成人欧美magnet| 91蝌蚪视频在线观看| 亚洲自拍偷拍一区| 欧美精品一区二区在线播放 | 久久99久久精品| 国产亚洲高清在线观看| 天天操夜夜干| 日本一区二区三区免费观看| 久久精品最新地址| 图片区小说区国产精品视频| 轻轻草成人在线| 成人知道污网站|