多次重复请求原因:
1)微服务框架超时重试。
2)快速点击按钮多次。
3)MQ消息中间件,消息重复消费
4)第三方平台的接口(如:支付成功回调接口),因为异常也会导致多次异步回调
5)其他中间件/应用服务根据自身的特性,也有可能进行重试。
1、堵重
定义:多次重复提交,系统必须去重,防止重复执行。
场景:订单支付输入密码,多次输入会导致多扣款;
解决办法:全局唯一id
2、幂等
定义:多次重复提交,即使重复执行,系统也必须始终提供与一致的状态,而不能有其他的副作用。
场景:订单减少库存,100减减少1,网络抖动多次发送,同笔订单最后只能是库存剩99件。