表示N次变换和1次变换的结果相同(就是函数执行一次和N次结果是一样的)
高并发的系统如何保证幂等性:
- 查询: 查询是天然的幂等
- MVCC方案: 乐观锁
- 去重表: 如果涉及到的去重的地方特别多,可以单独搞一张去重表,在插入数据的时候,插入去重表,利用数据库的唯一索引特性,保证唯一的逻辑
- 分布式锁: 在业务系统插入数据或者更新数据,获取分布式锁,然后做操作,之后释放锁
- 删除数据: 仅仅第一次删除是真正的操作数据,第二次甚至第三次删除,直接返回成功,这样保证了幂等
- 插入数据的唯一索引: 通过唯一性索引保证插入的等幂性
- 状态机幂等: 利用状态机的状态检查机制
- 表单的UUID: 用UUID随表单一起提交,处理过的UUID则不再被处理