介绍
幂等性就是同一个操作执行多次,产生的效果一样。如http的get请求,数据库的select请求就是幂等的
在分布式系统中,保证接口的幂等性非常重要,如提交订单,扣款等接口都要保证幂等性,不然会造成重复创建订单,重复扣款,那么如何保证接口的幂等性呢?
Dubbo在进行服务调用的时候,如果调用失败,默认会重试2次,此时保证接口的幂等性就非常重要了。
前端保证幂等性的方法
按钮只能点击一次
用户点击按钮后将按钮置灰,或者显示loading状态
RPG模式
即Post-Redirect-Get,当客户提交表单后,去执行一个客户端的重定向,转到提交成功页面。避免用户按F5刷新导致的重复提交,也能消除按浏览器后退键导致的重复提交问题。目前绝大多数公司都是这样做的,比如淘宝,京东等
后端保证幂等性的方法
使用唯一索引