rocketmq事務

事務消息

解決的問題:保證本地事務和發送消息同時成功, 保證分佈式系統的最終一致性。

 

其他方案的問題:

1. 先發消息, 再執行本地事務。 

問題: 消息發成功之後, 系統宕機,本地事務沒有執行成功。

 

2. 先執行本地事務, 再發消息。

問題: 本地事務執行成功, 系統宕機, 消息沒有發送成功。

 

 

3.  先執行本地事務, 再發消息。 並放到同一個事務中。

問題: 本地事務發送成功, 發送消息超時。 本地事務回滾。

3.1  消息實際發送失敗, 符合預期

3.2  消息實際發送成功,不符合預期。

 

綜上: 

1. 使用事務消息 可以有效地解決以上問題 -- 建議1

2. 如果感覺事務消息實現複雜,可以使用2 + 重試 + 離線數據對賬 + 補償 的形式, 保證消息不漏發。

 

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