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

RocketMQ進階必學:事物消息

開發(fā) 后端
RocketMQ 自身會存儲消息,相當于幫我們實現了消息發(fā)送的記錄;發(fā)送半消息相當于插入一條消息發(fā)送記錄;發(fā)送確認消息相當于更新消息發(fā)送記錄;消息回查相當于后臺任務的補償和重試。

分布式事務在微服務中是比較常見且又比較棘手的難題,當然,它也并不是無解的,如果熟悉分布式事務的同學,應該知道 XA、2PC/3PC、TCC 、事務消息等解決方案。

事務消息是分布式事務解決方案的一種,也是我們今天要討論的主題。

什么是事務消息?

事務消息的目標,是為了實現可靠性消息最終一致性。

這個又是怎么理解呢?舉個例子可能大家就比較容易理解。

還是我們比較常見的支付場景:用戶支付下單,修改訂單狀態(tài)為完成,然后會通過 MQ 發(fā)送訂單消息。

下游服務比如積分系統更新用戶的積分、物流系統需要更新訂單的物流信息、推送系統需要給用戶推送消息或者廣告等。

圖片圖片

可以說這算是一個比較標準的微服務架構,根據業(yè)務領域劃分不同業(yè)務系統,各業(yè)務系統通過 MQ 消息來實現訂單業(yè)務的解耦,流程上看似沒什么問題。

但我們仔細看一下,在訂單系統訂單更新和發(fā)送消息的這個步驟中,實際上會發(fā)生不一致的情況:

  1. 訂單更新成功,消息發(fā)送失敗。
  2. 訂單更新成功,消息發(fā)送超時。
  3. 訂單更新失敗,消息發(fā)送不管成功還是失敗,整個事務都會回滾。
  4. 訂單更新成功,消息發(fā)送成功,業(yè)務端消費失敗。

我們逐一來分析這幾種情況:

  • 第1種訂單更新成功,消息發(fā)送失敗。這時下游的業(yè)務系統和支付系統的訂單數據是不一致的。不過我們既然明確知道是消息發(fā)送失敗,是可以對消息進行重試或者補償。
  • 第2種訂單更新成功,消息發(fā)送超時。這種情況我們是無法確定消息是否發(fā)送成功,如果要進行重試或補償,就需要對投遞的消息進行反查詢,不然可能會重復發(fā)送。
  • 第3種情況比較簡單,訂單執(zhí)行失敗,這時是拋出異常或者直接返回,都不會走到消息發(fā)送的流程。
  • 第4種情況我們可以不用考慮,因為消息發(fā)送成功了之后,訂單服務就完成了自己的任務,至于下游是否消費成功,是各自業(yè)務系統各自負責的。

在這里其實可能有人會有疑問,包括我自己。如果把發(fā)送消息和訂單更新邏輯放在一個事務里面,執(zhí)行事務成功就發(fā)送普通消息,失敗就回滾是不是也可以?

這里就是對應的第2種情況,如果事務執(zhí)行失敗是因為消息發(fā)送超時,但是我們無法確定消息是否就真的成功發(fā)送到消息服務中。

總結一下,消息發(fā)送失敗或者超時,其實已經造成了數據不一致的情況,也就是訂單系統和下游的積分系統、物流系統、推送系統的訂單數據不一致。

而對消息進行重試或者補償,是為了保證訂單數據最終能同步到下方各業(yè)務系統,這就是所說的消息最終一致性。

如果我們要解決這個問題,實現消息最終一致性,有什么方案嗎?

增加一個消息發(fā)送記錄表,在訂單執(zhí)行成功的同時,插入一條當前訂單的消息發(fā)送記錄,消息發(fā)送成功后,再更新數據的發(fā)送狀態(tài)。如果是消息發(fā)送失敗或者超時,由程序后臺任務來補償重發(fā)。

圖片圖片

這個方法比較簡單好理解,就是通過記錄消息發(fā)送的狀態(tài),來確保訂單更新成功后,消息最終一定能觸達到 MQ,后臺的定時任務則是對發(fā)送超時的消息補償。

如果對于要求消息最終一致性的業(yè)務場景,是不是都要這么實現一套繁瑣的流程呢?沒錯,這個確實很麻煩。

不過,事務消息可以幫我們解決這個問題。

事務消息原理

RocketMQ 事務消息流程??

圖片圖片

我們結合上面用戶支付的例子,看一下使用 RocketMQ 如何實現事務消息:

  1. 首先,在訂單執(zhí)行操作之前,先發(fā)送一條半事務消息到 RocketMQ,表示即將開始執(zhí)行本地事務,RocketMQ 收到這個半事務消息之后,不會馬上投遞,而是把消息暫存在臨時隊列中。
  2. 半消息發(fā)送成功之后,訂單系統就開始執(zhí)行本地事務,即更新訂單的操作。執(zhí)行完成后會發(fā)送一條確認消息到 RocketMQ 中,告知訂單執(zhí)行的結果。如果訂單執(zhí)行成功,RocketMQ 會將之前收到的半事務消息投遞到目標隊列中,消費端可馬上訂閱消費;如果訂單執(zhí)行失敗,RocketMQ 則會刪除之前收到的半事務消息,保證消息不會被消費。

當然,我們也要考慮到極端的情況:假如訂單更新后就宕機或者重啟,那么發(fā)給 RocketMQ 確認消息就會丟掉,訂單數據還是會發(fā)送不一致的情況。

所以,這里就需要消息回查的機制。RocketMQ 收到半事務消息后,在特定的時間內如果沒有收到確認消息,那么 RocketMQ 會反過來請求本地事務執(zhí)行的最終狀態(tài)(即訂單更新的執(zhí)行結果),根據返回的執(zhí)行結果再對半事務消息做處理。

不過換個角度來看,其實 RocketMQ 的事務消息與我們上面使用消息記錄表來實現消息一致性的方案有異曲同工之妙。或者可以說其實我們已經逆向實現了這一套事務消息。

RocketMQ 自身會存儲消息,相當于幫我們實現了消息發(fā)送的記錄;發(fā)送半消息相當于插入一條消息發(fā)送記錄;發(fā)送確認消息相當于更新消息發(fā)送記錄;消息回查相當于后臺任務的補償和重試。

再從另外一個角度來看,無論是我們自己實現的事務消息還是 RocketMQ 的事務消息,其實都是二階段提交(2PC)的實現。第一階段的提交與第二階段的確認,目的都是保證本地事務與消息的一致性。

適用場景

事務消息是保證消息的最終一致性,在中間階段可能會出現數據不一致的情況。

所以適用于一些需要異步更新數據,并且對數據實時性要求不太高的場景。

比如在用戶支付訂單后,可能會出現在短暫的幾秒里,用戶積分沒有變動、購物車的商品沒有被處理等,這些情況是可以接受的,只要保證最終用戶積分、購物車的數據和訂單數據保持一致就可以。

原文鏈接:https://mp.weixin.qq.com/s/c5F_12thON73lrmYZVyFxw

責任編輯:武曉燕 來源: 宅小年
相關推薦

2021-07-14 17:18:14

RocketMQ消息分布式

2024-10-29 08:34:27

RocketMQ消息類型事務消息

2024-11-11 13:28:11

RocketMQ消息類型FIFO

2022-12-22 10:03:18

消息集成

2022-06-02 08:21:07

RocketMQ消息中間件

2023-07-17 08:34:03

RocketMQ消息初體驗

2025-04-09 08:20:00

RocketMQ消息隊列開發(fā)

2022-03-31 08:26:44

RocketMQ消息排查

2023-12-21 08:01:41

RocketMQ消息堆積

2014-08-26 09:49:02

程序員

2020-11-13 16:40:05

RocketMQ延遲消息架構

2024-09-25 08:32:05

2024-08-22 18:49:23

2021-10-03 21:41:13

RocketMQKafkaPulsar

2024-08-06 09:55:25

2021-04-15 09:17:01

SpringBootRocketMQ

2023-12-26 18:22:05

RocketMQ延遲消息

2021-07-08 07:16:24

RocketMQ數據結構Message

2022-08-09 08:31:29

RocketMQ消息中間件

2023-12-15 13:08:00

RocketMQ中間件消費順序
點贊
收藏

51CTO技術棧公眾號

国产伦视频一区二区三区| 日韩一区国产二区欧美三区| 欧美日韩精品久久久免费观看| 99热只有这里有精品| 免费观看久久av| 欧美日韩在线电影| 日韩精品一区二区三区四| 亚洲 国产 欧美 日韩| 日韩精品一级中文字幕精品视频免费观看 | 久久人人九九| 黄色片视频免费| 日韩精品免费| 日韩免费在线观看| 91传媒久久久| 婷婷国产在线| 视频一区视频二区中文| 伊是香蕉大人久久| 成人午夜激情av| 影音先锋男人资源在线| 91蜜桃免费观看视频| 国产精品综合不卡av| 久草免费新视频| 奇米亚洲欧美| 欧美一区二区福利视频| 久久精品视频16| 欧美18hd| 91小视频免费观看| 91久久在线观看| 国产九色在线播放九色| 综合天堂av久久久久久久| 欧美mv日韩mv国产| 99视频精品免费| 日本无删减在线| 国产日韩欧美a| 国产高清精品一区| 黄色大全在线观看| 在线日韩电影| 久久精品一偷一偷国产| 成人乱码一区二区三区av| 亚洲人成网站在线在线观看| 精品av在线播放| 伊人久久大香线蕉午夜av| 婷婷国产在线| 成人精品鲁一区一区二区| 国产精品网站入口| 91玉足脚交嫩脚丫在线播放| 亚洲欧美综合国产精品一区| 一区三区二区视频| 成人网站免费观看| 高清日韩欧美| 日韩三区在线观看| 极品粉嫩美女露脸啪啪| 欧美性suv| 精品国产乱码久久久久酒店| 欧美在线观看黄| 欧美三级黄网| 国产精品麻豆欧美日韩ww| 蜜桃999成人看片在线观看| 国产高清第一页| 国内成人自拍视频| 国产主播欧美精品| 制服丝袜在线一区| 久久久999| 欧美一级电影免费在线观看| √天堂中文官网8在线| 久久爱www成人| 亚洲国产毛片完整版| 欧美性猛交xx| 97精品资源在线观看| 欧美综合久久久| 国产综合av在线| 国产网红在线观看| 亚洲三级免费观看| 色噜噜狠狠一区二区三区| 成人亚洲性情网站www在线观看| 91一区二区三区在线播放| 黑人巨大精品欧美一区二区小视频 | 九九免费精品视频在线观看| 精品无人区乱码1区2区3区在线| www.四虎精品| 老牛影视av一区二区在线观看| 精品国产1区二区| wwwxx日本| 欧美巨大xxxx| 亚洲欧美国产精品久久久久久久| 亚洲精品成人无码熟妇在线| 国产成人精品一区二区免费看京| 亚洲国产天堂网精品网站| 欧美午夜精品一区二区| 国内精品久久久久久99蜜桃| 亚洲精品欧美综合四区| 亚洲欧美日韩不卡| 黄色网址视频在线观看| 亚洲欧美日韩国产手机在线| 最新av网址在线观看| 国产嫩草在线视频| 精品动漫一区二区三区| aaa毛片在线观看| 日本综合视频| 欧美一区二区视频网站| 日韩高清一二三区| 香蕉久久精品| 日韩在线视频国产| 一区二区成人免费视频| 韩日成人在线| 国产成人久久精品| 国产免费高清视频| 99精品久久只有精品| 天天爽天天狠久久久| 国产黄色在线网站| 天天色综合成人网| 日本美女视频一区| 国产成人夜色高潮福利影视| 日韩一区二区三| 久久精品老司机| 亚洲成人精品| 日韩av电影在线播放| 99在线精品视频免费观看软件| 成人黄色在线视频| 亚洲免费久久| 亚洲深夜视频| 91精品一区二区三区久久久久久 | 日本在线一二三| 国产精品久久三| 极品粉嫩国产18尤物| 韩国成人在线| 精品99久久久久久| 青青青手机在线视频| 国产情侣一区| 亚洲尤物视频网| 国产片在线观看| 亚洲午夜电影网| 亚洲成人av免费看| 久久a爱视频| 精品国产依人香蕉在线精品| 特黄视频免费看| 国产乱子轮精品视频| 色噜噜一区二区| 华人av在线| 日韩一区二区三区视频在线观看| 人人妻人人藻人人爽欧美一区| 欧美激情 亚洲a∨综合| 国产精品老女人精品视频| 人人妻人人玩人人澡人人爽| 亚洲日本在线看| 三级在线视频观看| 欧美成人一区在线观看| 欧美夫妻性视频| 91精东传媒理伦片在线观看| 国产婷婷一区二区| 国产精品沙发午睡系列| 国产精品chinese在线观看| 色偷偷88888欧美精品久久久 | 一区二区在线影院| 国产97在线亚洲| 天天插天天干天天操| 亚洲一区二区四区蜜桃| 亚洲精品乱码久久久久久动漫| 欧美偷拍综合| 国产成人91久久精品| 日韩一二三四| 日韩欧美在线播放| av2014天堂网| 一区二区三区精品视频在线观看 | 99久久免费国产精精品| 国产精品短视频| 在线观看av网页| 欧美日韩中文一区二区| 国产精品午夜一区二区欲梦| 国产免费永久在线观看| 在线亚洲精品福利网址导航| av中文字幕免费观看| 久久精品人人做人人爽电影蜜月| 久久精品人成| 色黄视频在线观看| 亚洲精品在线视频| 亚洲欧美综合自拍| xf在线a精品一区二区视频网站| ww国产内射精品后入国产| 秋霞影院一区二区三区| 欧美在线不卡区| 国产在线视频你懂得| 欧美午夜精品一区二区三区| 日韩av片在线免费观看| 国产一区二区网址| av在线免费观看国产| 国产伦精品一区二区三区在线播放 | 久久久久久噜噜噜久久久精品| 色wwwwww| 欧美在线视频日韩| 美女视频久久久| 国产一区二区91| 美脚丝袜脚交一区二区| 偷拍自拍一区| 国产精品高潮呻吟久久av无限| 午夜视频在线观看免费视频| 欧美一区二区三区四区在线观看| 国产小视频在线看| 96av麻豆蜜桃一区二区| 熟女人妇 成熟妇女系列视频| 欧美电影免费观看高清| 97人人模人人爽视频一区二区| heyzo在线| 在线观看精品自拍私拍| 亚洲av无码乱码国产麻豆| 欧美日韩国产精品专区| 在线观看日本黄色| 成人一区二区在线观看| 免费午夜视频在线观看| 91精品国产乱码久久久久久久| 国产欧美日韩伦理| a成人v在线| 久久久亚洲国产天美传媒修理工| 毛片免费在线| 欧美一区二区视频在线观看2020| 影音先锋亚洲天堂| 成人免费在线视频观看| 亚洲天堂成人av| 国产综合色产在线精品| 成人一级片网站| 亚洲综合色网| 日本高清一区| 亚洲网一区二区三区| 国产精品视频地址| gratisvideos另类灌满| 日韩亚洲精品电影| 人成在线免费视频| 日韩视频国产视频| 又污又黄的网站| 欧美性猛交xxxx久久久| 欧美日韩在线视频免费| 国产欧美综合在线观看第十页 | 成人天堂资源www在线| 久久综合伊人77777麻豆最新章节| 欧美日韩精品| 亚洲图片欧洲图片日韩av| 欧美重口另类| 99九九视频| 自拍偷拍亚洲| 国产成人精品最新| 欧美私密网站| 欧美激情综合色综合啪啪五月| 久久精品视频观看| 一区二区三区久久精品| 亚洲av片一区二区三区| 精品国产乱码久久| 国产免费久久久| 8v天堂国产在线一区二区| 亚洲精品无码久久久久| 91激情在线视频| 69视频免费在线观看| 婷婷中文字幕综合| 在线免费观看毛片| 亚洲地区一二三色| 国产亚洲小视频| 玉米视频成人免费看| 久久久久久久久久97| 亚洲国产成人私人影院tom| 野外性满足hd| 99久久99久久免费精品蜜臀| 久久精品aⅴ无码中文字字幕重口| 国产专区欧美精品| 青娱乐国产精品视频| 精品一区二区三区香蕉蜜桃| 五月天视频在线观看| 精品一区二区av| 国产欧美激情视频| 精品亚洲成a人| 一级黄色在线播放| 国产又黄又大久久| 毛片毛片毛片毛片毛| 国产精品 日产精品 欧美精品| 中文字幕第三区| 国产精品123| 亚洲高清无码久久| 99免费精品视频| 四虎永久免费影院| 亚洲国产精品成人久久综合一区 | 中文字幕视频一区| 免费中文字幕日韩| 一区二区三区在线免费播放| 久久精品国产亚洲av麻豆色欲 | 香蕉视频亚洲一级| 国产精品18久久久久久首页狼| 国产免费不卡| 国产精品色午夜在线观看| 99re8精品视频在线观看| 亚洲在线一区二区| 都市激情亚洲| 乱一区二区三区在线播放| 欧美日韩国产在线观看网站 | 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | 93在线视频精品免费观看| 欧美一区二区在线| 99久久99久久精品国产片桃花| 久久久一二三四| 影视一区二区| 国产av麻豆mag剧集| 日韩**一区毛片| 国产xxxxhd| 99久久精品国产网站| 亚洲一级理论片| 亚洲第一福利视频在线| 在线观看你懂的网站| 日韩一级黄色片| 偷拍自拍在线视频| 久久国产一区二区三区| 国产丝袜精品丝袜| 国产精品女视频| 91精品国产乱码久久久竹菊| 欧美一区二视频在线免费观看| 在线一区免费| 国产激情在线观看视频| 国产成人自拍网| 五月婷婷欧美激情| 亚洲一区二区三区国产| 久久精品无码av| 日韩一区二区三区免费看| 欧美日韩国产综合视频| 欧美大胆在线视频| 欧美成人黑人| 国产精品乱码一区二区三区| 成人久久综合| 黄色一级片在线看| 青青草精品视频| yy1111111| 亚洲视频中文字幕| www.欧美色| 亚洲精品在线观看网站| 日本免费视频在线观看| 97精品久久久| www 久久久| 免费看污久久久| 欧美日韩视频| 九九热免费在线观看| 国产视频一区二区三区在线观看| 日韩精品一区三区| 这里是久久伊人| 成人影视在线播放| 国产不卡在线观看| 宅男在线一区| 久色视频在线播放| 国产成人av电影免费在线观看| a一级免费视频| 在线观看日韩电影| 欧洲成人av| 18一19gay欧美视频网站| 91大神精品| 欧美视频在线第一页| 国内精品伊人久久久久av一坑| 成人黄色a级片| 欧美在线综合视频| 玖玖综合伊人| 欧美做受高潮电影o| 欧美成a人免费观看久久| 欧美午夜性视频| 波多野洁衣一区| 久久久美女视频| 精品久久久网站| 毛片网站在线看| 99伊人久久| 欧美三区在线| 亚洲一区和二区| 亚洲国产成人av好男人在线观看| 性生活三级视频| 久久久伊人日本| 精品五月天堂| 99re在线视频免费观看| 国产亚洲美州欧州综合国| 日本成人一级片| 丝袜美腿精品国产二区| 在线日韩三级| 久久精品在线免费视频| 捆绑调教美女网站视频一区| av资源在线免费观看| 这里只有精品电影| 制服丝袜中文字幕在线| 亚洲一区二区中文| 无码一区二区三区视频| 在线免费黄色小视频| 亚洲图片欧美一区| 五月婷婷久久久| 国产精品国语对白| 日韩国产一区二区三区| 国内自拍第二页| 一区二区三区影院| 婷婷国产在线| 国产欧美一区二区三区在线| 国产精品毛片一区二区在线看| 免费黄色在线播放| 欧美日韩亚洲一区二区三区| 九色在线观看| 91天堂在线视频| 亚洲精品看片| 国产探花视频在线播放| 日韩欧美国产综合| 亚洲成人看片| 每日在线观看av| 中国色在线观看另类| 视频二区在线观看|