冪等性要求的場景:
1、表單提交,重復點擊問題,產生兩條相同數據。
2、接口超時重試,出現重復操作數據問題。
3、mq消費者讀取消息,讀取重復消息問題。
接口冪等性是指用戶對於同一操作發起的一次請求或者多次請求的結果是一致。
如何解決請求重復,就需要接口的冪等
冪等解決方案:
1、insert前進行select,例如用戶注冊,相同賬號提示錯誤。查詢到插入業務需加鎖控制。
加鎖,分布式長期,用redis進行分布式鎖處理。
請求賬戶設置為鎖key。相同請求則第二次請求直接返回。
次場景適用於,請求需唯一標識,如各支付平台,請求號唯一,相同請求號第二次請求直接返回錯誤。
2、使用token方案。
兩個請求完成同一件事。
接口1請求token
接口2請求,帶上接口1請求token,同樣token存到redis中。驗證token成功,刪除token進行后續操作。第二個請求,此時token已刪除,直接返回錯誤。
