rocketmq分佈式事務

1.技術背景

爲何會產生分佈式事務?

微服務分佈式架構,按照服務拆分應用、DB,事務跨庫。

2.解決方案

分佈式事務消息解決方案:

1. 發送半消息

   生產者Producer 接收Web請求,投遞給Broker(此消息無法被Consumer消費),這裏必須採用同步消息發送的方法

2.半消息發送成功

   Broker收到消息,ACK確認回覆Produer

3.執行本地事務

   Producer本地執行 本地業務邏輯事務代碼

4.Commit OR Rollback

   根據本地事務執行的結果向Broker 二次確認,Commit 則 該消息可以被Consumer消費;Rollback 則該消息將會被Broker刪除

5.定時消息回查

   Producer 和Broker 之間有網絡問題(即本地事務提交成功,但是無法告知Broker)或Broker 重啓時,事務成功與否無法被Broker確認,此時Broker 會定時回查Producer 

6.檢查本地事務狀態

   Producer查詢本地事務是否成功 

7.二次確認Commit OR Rollback

  二次確認  步驟5定時消息回查的引起的    步驟6本地事務狀態檢查的    結果

 

代碼地址:https://github.com/youmustbekiddingme/rocketmq_transaction.git

需要搭建Rocketmq  環境4.4

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章