什么是幂等性
幂等性定义:
一次和多次请求某一个资源对于资源本身应该具有同样的结果
任意多次执行对资源本身所产生的影响均与一次执行的影响相同
幂等性定义的几个重点:
幂等不仅仅只是一次或者多次请求对资源没有副作用...,不如超时,而导致不知道结果或者请求失败的异常情况下,发起多次请求
幂等的目的是请求多次确认第一次请求成功,不会因为多次请求而出现多次的状态变化
保证幂等性的情况
在SQL中,有以下三种场景,只有第三种场景需要保证幂等性...:
相同的业务单号,认为是同一业务
使用唯一的业务单号确保:后面多次相同业务单号的处理逻辑和执行效果是一致的
幂等实现示例-支付:
先查询订单是否支付过
如果已经支付过,返回支付成功
如果没有支付,...,只要保证version值自增就不会出现ABA的问题
防重表
使用orderNo作为去重表中的唯一索引,每次请求都根据订单号orderNo向去重表中插入一条数据:
第一次请求查询订单支付状态:
订单没有支付...如果缓存中不存在,表示非法请求
支付缓冲区
支付缓冲区:
将订单的支付请求都快速地接收下来,是一个快速接收请求的缓冲管道
使用异步任务处理管道中的数据,过滤调掉重复的待支付的数据
优点: 同步转异步,