# 代码篇:接口幂等性的 8 种解决方案

作者:Tom哥
公众号:微观技术
博客:https://offercome.cn (opens new window)
人生理念:知道的越多,不知道的越多,努力去学

幂等是一个数学与计算机学概念。

  • 在数学中某一元运算为幂等时,其作用在任一元素多次后会和其作用一次的结果相同,用公式描述为 f(x) = f(f(x))。比如:绝对值函数
  • 在计算机科学中,一次或者多次请求资源接口带来的结果是一样的。

归纳起来就是一句话,访问结果跟请求的次数无关,也就是说你可以重试多次,不用担心有什么副作用。

# 一、为什么需要幂等?

我们先来看个示例

用户在电商网站下了一笔交易订单,当付款的时候,支付系统由于某些原因并没有及时响应,此时订单系统并不知道是否已经支付成功?

此时就会比较尴尬,如果贸然引导用户再次支付,可能会出现扣款两次。

对于这种场景,我们可以考虑引入 幂等 解决方案,支付系统做好幂等控制,对于异常未知结果 ,上游系统可以按照一定的规则策略不断重试,直到成功。这样既可以保证支付成功,也不会多付钱。

那么具体如何处理呢?

上次更新: 2023/3/4