答:
冪等的意思是重復操作,接口的冪等性也就是接口被重復調用了,在前端不進行限制的情況下,同一個接口可能重復調用多次,為了避免類似重復下單的問題,可以通過以下幾種方式來解決冪等性問題:
1、全局唯一ID,根據業務操作和內容生成全局唯一的ID,然后在執行操作前先判斷是否已經存在該ID,如果不存在則將該ID進行持久化(存在數據庫或者redis中),如果已經存在則證明該接口已經被調用過了。比如下單時可以生產一個流水號來作為該訂單的唯一標識。
2、可以使用select+insert來進行判斷,因為一般訂單的ID都是唯一索引,在高並發場景下不推薦。
3、可以使用樂觀鎖解決,在表中可以添加一個version字段。
4、token機制,將token放在redis中。
