分佈式系統事務解決方案選擇

解決方案一:

使用 Alibaba Seata 可以來解決 ,但是該種解決方案 不適合 大併發情況下,會影響性能,(使用於管理後臺各個微服務調用的增刪改查的事務管理)

解決方案二:

使用 MQ 來解決,(保證數據的最終一致性)

如: 在電商系統中,當下一個訂單後,要扣減庫存,我們先遠程調用 庫存接口,
(有可能會出現,庫存扣減成功,但是返回給訂單系統的數據,因爲網絡原因失敗了,此時訂單因爲調用庫存系統超時,訂單下單失敗。)

我們可以在庫存系統使用 rabbitMQ ,我們鎖庫存成功後,把消息放入到 rabbitMQ 延時隊列(利用死信實現),如果過了一段時間,延時隊列就發消息,確認訂單是否下單成功,如果沒有下單成功,就自動的解鎖庫存,保證數據的最終一致性。

在這裏插入圖片描述

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