?
一種方案是創建唯一索引。在數據庫中針對我們需要約束的資源字段創建唯一索引,可以防止插入重復數據。但是,遇到分庫分表的場景,唯一索引也就不那么好使了,
此時,我們可以先查詢數據庫,判斷約束的資源字段是否存在,不存在時再進行插入。注意,在并發場景,可以通過鎖機制,保證數據的唯一性。分布式鎖是一種常用的方案。
另一種方案是引入狀態機,通過狀態機進行狀態的約束以及狀態的流轉,確認同一業務的流程化執行,從而實現冪等。
參考
https://mp.weixin.qq.com/s/m1TCrfbNXvm7OOhEg-Iv6w