一次併發的update引起的血案 ----rocketMQ 多實例消費致使的錯誤。

事故現場:mysql       系統引入了rocketMQ,用來對某些訂單進行狀態的更新操做。部署的時候2臺消費實例。在測試環境中只考慮了用樂觀鎖來控制併發,但在生產中,樂觀鎖並沒有法保證數據的正確性。redis   具體的消費狀況參考上圖。spring 假定消息A和消息B 都是爲了更新表中的同一行數據,更新邏輯是,拿到消息A 進行更新,拿到消息B 在更新一次。最終獲得的結果爲,消息B。sql
相關文章
相關標籤/搜索