幂等简单介绍

1、概念
【幂等简单介绍】幂等 , 多次执行与一次执行结果是一样的 。
幂等就是一个操作 , 不论执行多少次 , 产生的效果和返回的结果都是一样的 。
幂等性是数学上的概念;
幂等与并发

  • 幂等是不管执行多少次 , 执行结果都是一样的 , 而并发是指多个线程在同一时刻对共享资源操作会导致意想不到的问题;
  • 如 , 系统响应很慢 , 用户短时间内连续点击多次 , 因网络传输问题 , 有可能导致这些多次请求同时到达服务器 , 此时就有可能因并发导致幂等性问题 , 因为多次请求的结果不一样了;
  • 幂等性问题 , 有可能是不同时间调同一个接口 , 传参一样但结果不一样;
2、技术方案
  • Token 机制 ,
  • Post / Redirect / Get (PRG) , 前端方式
表单提交后调成功页 , 防刷新页面重复提交表单;
  • 在表中加唯一索引 , 从而不会产生脏数据;
  • 状态机;
  • 乐观锁 , version 字段
  • 防重表;
  • select + insert (高并发下不适合 , 可能不会幂等);
  • 分布式锁
  • 缓冲队列(放入队列后 , 异步处理队列中的数据);
  • 全局唯一号码实现幂等(seqNo + source)
3、分布式锁
基于 Redis 实现的分布式锁
4、实际场景运用
  • 分布式/微服务系统接口的幂等性;
  • 对外提供API接口需保证幂等;
  • MQ消息重复消费幂等问题;


    推荐阅读