答:
幂等的意思是重复操作,接口的幂等性也就是接口被重复调用了,在前端不进行限制的情况下,同一个接口可能重复调用多次,为了避免类似重复下单的问题,可以通过以下几种方式来解决幂等性问题:
1、全局唯一ID,根据业务操作和内容生成全局唯一的ID,然后在执行操作前先判断是否已经存在该ID,如果不存在则将该ID进行持久化(存在数据库或者redis中),如果已经存在则证明该接口已经被调用过了。比如下单时可以生产一个流水号来作为该订单的唯一标识。
2、可以使用select+insert来进行判断,因为一般订单的ID都是唯一索引,在高并发场景下不推荐。
3、可以使用乐观锁解决,在表中可以添加一个version字段。
4、token机制,将token放在redis中。