idempotent 幂等是什么意思?

该术语由拉丁语词根组合而成,是一个数学概念:

  • idem:相同、同一个
  • potent:有能力的、有作用的,源自“力量、幂”

合起来大致意为“保持同样作用”或“重复执行,效果不变”。

示例

例如,“将订单状态设为‘已付款’”:

第一次执行:

未付款 → 已付款

网络超时后,客户端无法确认操作是否成功,于是再次执行:

已付款 → 已付款

无论执行一次还是十次,最终结果均为“已付款”,不会重复扣款。这就是幂等性。

相反,“从账户扣除 100 元”通常不是幂等操作:

执行一次:余额减少 100 元  
执行两次:余额减少 200 元

因此,支付系统通常为每次付款分配唯一的订单号或请求编号;当相同编号的请求被重复提交时,系统直接返回首次处理的结果,从而避免重复扣款。