分佈式事務-本地消息表實現方案
2019年02月27日 16:09:02 shine0312 閱讀數 274
一、背景
用單下單的時候需要先鎖庫存,然後再生成訂單,庫存所在的庫和訂單是兩個庫,這裏就涉及到了分佈式事務的處理,下面說下兩種解決方案吧
二、方案
1、定時任務+本地消息表
這種方案還有一個優化點就是:
可以去掉消息的定時任務,然後就是在生成訂單的事務中如果失敗,那麼就再開啓一個事務(事務中會強制走主庫查詢)查詢下該訂單是否存在,如果存在就正常進行流程,如果不存在那麼就直接設置消息的狀態是釋放未售出,然後進行庫存的回滾
2、消息隊列+本地消息表
這種就不自己畫圖了,盜用一下其他作者的圖吧,附上鍊接
三、總結
方案不是怎麼複雜,主要是出問題的時候定位需要做好相應的方案處理吧