幂等性

概念

幂等性原本是数学上的概念,即使公式:f(x)=f(f(x)) 能够成立的数学性质。用在编程领域,则意为 对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的

幂等有两个维度:一是空间维度上的幂等,即幂等对象的范围,是个人还是 机构,是某一次交易还是某种类型的交易...二是时间维度上的幂等,即 幂等的保证时间,是几秒、几分钟还是永久性的...

适用领域

第一次付款时实际支付成功,但是信息返回时网络中断导致系统误判; 又比如第一次付款的确失败了,但第二次付款时发生意外,导致支付请 求被重复发送等等。在一次支付的过程中,每个环节都有可能会发生问题 ,我们要如何规避这类问题引发的分险

常用解决方法

  • 并发控制

    多版本并发控制,使用乐观锁的实现方式,如CAS,版本号控制

  • 去重表

    表上构建唯一索引

  • TOKEN机制

    每一次操作生成一个唯一性的凭证,也就是token。 一个token在操作的每一个阶段只有一次执行权,一旦执行成功 则保存执行结果。对重复的请求,返回同一个结果。

参考 https://www.jianshu.com/p/475589f5cd7b

Last updated