訊息佇列實現分布式事務

2021-10-09 16:58:48 字數 459 閱讀 3665

訊息佇列中的「事務」,主要解決的是訊息生產者和訊息消費者的資料一致性問題。

電商下單步驟

1、生成訂單

2、刪除購物車

在分布式系統中, 任何乙個步驟都有可能失敗, 可能出現訂單資料與購物車資料不一致的情況,比如說

1、建立了訂單,沒有清理購物車;

2、訂單沒建立成功,購物車裡面的商品卻被清掉了。

訂單系統給訊息佇列傳送訂單訊息並開啟事務(此時訂單訊息並未被購物車系統可見)

訂單系統執行本地事務,生成訂單成功,給訊息佇列訊息讓其訊息對購物車系統可見

購物車系統消費訊息

在 rocketmq 中的事務實現中,增加了事務反查的機制解決事務訊息提交失敗的問題

broker 會定期去 producer 上反查這個事務對應的本地事務的狀態,然後根據反查結果決定提交或者回滾這個事務。

介紹下用訊息佇列實現分布式事務

在oie的時代,上層應用開發人員總是認為資料庫足夠強大,所以很多業務可以做的非常簡單。比如a轉賬50元給b這個過程,只要寫乙個簡單sql語句塊就ok了。開始事務 a賬戶減去50 b賬戶增加50 提交事務。這個實現簡單明瞭,a賬戶錢減少的同時b賬戶的錢得到增加。但是當系統規模逐步擴大的時候,只能不斷要...

分布式訊息佇列

以下是訊息佇列以下的大綱,本文主要介紹訊息佇列概述,訊息佇列應用場景和訊息中介軟體示例 電商,日誌系統 訊息佇列概述 訊息佇列應用場景 訊息中介軟體示例 jms訊息服務 見第二篇 大型 架構系列 分布式訊息佇列 二 常用訊息佇列 見第二篇 大型 架構系列 分布式訊息佇列 二 參考 推薦 資料 見第二...

分布式訊息佇列

訊息佇列中介軟體是分布式系統中重要的元件,主要解決應用耦合,非同步訊息,流量削鋒等問題。實現高效能,高可用,可伸縮和最終一致性架構。是大型分布式系統不可缺少的中介軟體。目前在生產環境,使用較多的訊息佇列有activemq,rabbitmq,zeromq,kafka,metamq,rocketmq等。...