幂等性

156 阅读1分钟

前端幂等性(不可靠)

按钮只可操作一次,消除重复点击的副作用。别人可以用工具调用你的接口,不可靠

token机制(前端)

当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发给客户端(一般通过构造hidden表单)。
下次客户端提交请求时,Token会随着表单一起提交到服务器端。

服务器端第一次验证相同过后,会将session中的Token值更新下,若用户重复提交,第二次的验证判断将失败,因为用户提交的表单中的Token没变,但服务器端session中Token已经改变了。


后端幂等性 使用唯一索引

重复插入会报错,保证不会出现脏数据,报错再查一次看是否已经存在

token+redis

image.png

状态机

比如订单有待支付,支付中,支付成功,支付失败等,最好状态不可逆,在更新时加上where status =期望的状态,多次调用也会只执行一次。

乐观锁

image.png