什么是幂等性
如果一个接口满足:
同样的请求数据,提交多次,造成接口的调用多次,和调用一次的结果相同
就说这个接口实现了幂等性
考虑幂等性的情况
- 重试机制 (如rpc的重试机制)
- post请求,比较常简
如新建用户, - put请求,不一定要实现幂等性
a. 改商品价格到200,发送多次仍然是一样,不需要考虑,(put多是这种情况)
b.购物车中的商品增加商品数量,需要考虑幂等性 - get 和 delete不需要考虑
如何解决
- 设置唯一索引:如注册请求的手机号,或邮箱,或用户名
- 设置辅助日志表,下次请求来了,先去查这张表,执行过的操作,不需要再执行。这里又会用到分布式锁,解决并发查表