服务幂等性设计

1.什么是幂等性

一次和多次请求某一个资源对于资源本身应该具有同样的副作用(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同

2.如何保证幂等性

幂等需要通过唯一的业务单号来保证。也就是说相同的业务单号,认为是同一笔业务。使用这个唯一的业务单号来确保,后面多次的相同的业务单号的处理逻辑和执行效果是一致的。

3.方案

  • 防重表 使用订单号orderNo做为去重表的唯一索引,每次请求都根据订单号向去重表中插入一条数据。
  • 乐观锁  UPDATE tab1 SET col1=1,version=version+1 WHERE version=#version#
  • 分布式锁
  • token令牌,redis
原文地址:https://www.cnblogs.com/april-chen/p/11012065.html