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

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