什么是幂等?
简单讲,幂等性是指相同的参数调用同一个 API,执行一次或多次效果一样。
在函数式编程里面,这叫“无副作用”,Pure Function。
用业务的语言将,就是:对于同一笔业务操作,不管调用多少次,得到的结果都是一样的。
问题场景
假如你有个服务提供一个接口,结果这个服务部署在了5台机器上,接着有个接口就是付款接口。
然后用户在前端上操作的时候,不知道为啥,总之就是一个订单不小心发起了两次支付请求,然后这俩请求分散在了这个服务部署的不同的机器上,结果造成一个订单扣款扣两次。
所谓幂等性,就是说一个接口,多次发起同一个请求,你这个接口得保证结果是准确的,比如不能多扣款,不能多插入一条数据,不能将统计值多加了1等等。
例如一个用户在一次购买中不能重复下单;
例如库存剩下了1个商品,现在有10个人抢购