由於各種不可控因素導致同乙個介面使用相同的引數被呼叫了n次,而不影響其結果。
1、查詢和刪除天然冪等;
2、在插入操作中,可使用部分字段建立唯一索引或組合唯一來防止髒資料的產生;
3、在前端操作時,可在開啟頁面時向伺服器申請乙個token令牌,使用一次之後刪除,用來防止重複提交;
4、悲觀鎖:假設每次操作都會發生併發衝突的情況下,由第乙個獲取資源的請求對資源進行鎖定;
5、樂觀鎖:假設每次操作都不會發生衝突,使用version或者時間戳的方式來控制資源的更新操作;
6、使用有序不可逆的狀態碼來控制資源變化的情況;
關於介面冪等性的設計
關於支付相關,訂單相關以及一些涉及費用的操作在業務上都是要求介面具有冪等性的。否則在高併發的場景下,同一筆交易請求多次,則會造成損失,這是不可忽視的錯誤。例如一筆訂單,因為網路或者操作的原因,造成同時發起了兩次申請。一般的介面設計中,對於重 起的交易都是先查詢是否存在這筆訂單,如果不存在,則繼續進行...
介面冪等性設計
在系統中,乙個介面執行多次,與執行一次的效果是一致的 冪等性的核心思想 通過唯一的業務單號保證冪等 update自身帶鎖。直接update不會出現併發修改問題。樂觀鎖是先查詢在修改 update 商品表 set 庫存 庫存 購買量 version 查詢version值 1 where version...
介面冪等性
例如 在http協議中,get請求,會得到同樣的資料 bool get money id,amount 1引數 id 使用者的賬戶 amount 表示取多少錢 返回值 true 表示取錢成功 false 表示取錢失敗 情景一 1 一位使用者a 取100塊錢,這個請求,傳送到了伺服器 2 伺服器正常的...