分散式事務解決方案(三)【基於可靠訊息的最終一致性(獨立訊息服務實現)】
3. 最終一致性設計與實現——獨立訊息服務
3.1 整體架構
3.2 訊息服務子系統
3.2.1 基本功能
- 儲存預傳送訊息(主動方業務執行之前進行,預傳送的訊息儲存後狀態為待確認)
- 確認併傳送訊息(主動方業務完成之後,主動方或訊息狀態確認系統通過此介面將訊息變為取消或傳送中)
- 查詢狀態確認超時的訊息(訊息狀態確認系統使用)
- 確認訊息已被成功消費(被動方業務執行完成之後呼叫)
- 查詢消費確認超時的資訊
3.2.2 資料庫設計
欄位名 | 含義 |
---|---|
id | 主鍵ID |
version | 版本號 |
cuser | 建立人 |
muser | 修改人 |
ctime | 建立時間 |
mtime | 修改時間 |
message_id | 訊息ID |
message_body | 訊息內容 |
message_try_times | 訊息重試次數 |
message_queue | 訊息佇列名 |
message_dead | 訊息是否死亡 |
status | 訊息狀態 |
remark | 備註 |
3.3 訊息管理子系統
- 主要用來用於手動管理死亡訊息,重發等
3.4 訊息狀態確認子系統
3.4.1 介面設計
- 處理待確認的超時訊息(注意排序,超時時間越長應該越早處理)
3.5 訊息恢復子系統
- 主動方呼叫方業務執行成功,訊息服務子系統中訊息狀態已變成傳送中.我們必須保證訊息被被動方消費
3.6 實時訊息服務子系統
- 使用MQ實現
3.7 非同步確認(防止可補償流程錯誤導致主流程回滾)
- 主動業務方流程
- 預傳送訊息
- 執行業務
- 確認傳送(如果這一步超時會回滾前面的業務,但是訊息已被髮送到訊息服務子系統並並持久化)
相關文章
- 分散式事務解決方案(二)【基於可靠訊息的最終一致性】分散式
- 分散式事務解決方案-RocketMQ實現可靠訊息最終一致性分散式MQ
- 分散式事務:基於可靠訊息服務分散式
- 分散式事務(5)---最終一致性方案之可靠訊息分散式
- 基於可靠訊息方案的分散式事務(四):接入Lottor服務分散式
- 分散式事務(八)Spring Cloud微服務系統基於Rocketmq可靠訊息最終一致性實現分散式事務分散式SpringCloud微服務MQ
- 分散式事務(六)之可靠訊息最終一致性分散式
- 基於可靠訊息方案的分散式事務(二):Java中的事務分散式Java
- 基於可靠訊息方案的分散式事務:Lottor介紹分散式
- 曹工雜談:分散式事務解決方案之基於本地訊息表實現最終一致性分散式
- 分散式訊息佇列RocketMQ--事務訊息--解決分散式事務的最佳實踐分散式佇列MQ
- 分散式事務:訊息可靠傳送分散式
- RocketMQ訊息丟失解決方案:事務訊息MQ
- RocketMQ 分散式事務訊息MQ分散式
- 搞懂分散式技術19:使用RocketMQ事務訊息解決分散式事務分散式MQ
- 分散式事務利器——RocketMQ事務訊息的啟示分散式MQ
- 分散式事務方案 - 最終一致性分散式
- 遊戲陪玩app原始碼的可靠訊息最終一致性方案的實現遊戲APP原始碼
- RocketMQ系列(七)事務訊息(資料庫|最終一致性)MQ資料庫
- 基於RocketMq的分散式事務解決方案MQ分散式
- 解析 RocketMQ 業務訊息——“事務訊息”MQ
- 分散式事務之最終一致性實現方案分散式
- 分散式柔性事務之事務訊息詳解分散式
- 分散式事務(2)---強一致性分散式事務解決方案分散式
- 分散式事務 | 使用 dotnetcore/CAP 的本地訊息表模式分散式NetCore模式
- 分散式事務(4)---最終一致性方案之TCC分散式
- .NetCore中使用分散式事務DTM的二階段訊息NetCore分散式
- 基於Seata探尋分散式事務的實現方案分散式
- Rocket MQ 4.3.0分散式事務訊息初析MQ分散式
- 【FAQ】關於華為推送服務因營銷訊息頻次管控導致服務通訊類訊息下發失敗的解決方案
- 分散式事務解決方案分散式
- KafkaConsumer對於事務訊息的處理Kafka
- 分散式事務解決方案——柔性事務與服務模式分散式模式
- 基於RocketMQ實現分散式事務MQ分散式
- 基於訊息佇列(RabbitMQ)實現延遲任務佇列MQ
- 老生常談——利用訊息佇列處理分散式事務佇列分散式
- 分散式架構-可靠通訊-服務安全分散式架構
- 常用的分散式事務解決方案分散式