美文网首页
幂等总结

幂等总结

作者: 知止9528 | 来源:发表于2019-01-26 20:52 被阅读158次

幂等性概念

幂等就是一个操作,不论执行多少次,产生的效果和返回的结果都是一样的

常见技术方案
1.mysql一致性读下面的select,多次查询应该是一致的

2.删除数据,删除一次和删除多次应该是一致的

3.插入数据(可以通过唯一索引,来防止重复插入)

4.token机制,防止页面重复提交
处理流程

  1. 数据提交前要向服务的申请token,token放到redis或jvm内存,token有效时间
  2. 提交后后台校验token,同时删除token,生成新的token返回

说明:Redis是单线程的,多个命令是需要排队的,而一次删除和多次删除又是一致的,每次的token也应该是唯一的

5.加锁
(1)悲观锁

select * from table_xxx where id='xxx' for update;

id字段一定是主键或者唯一索引(行锁,innodb的锁是加在索引上的),不然有可能会锁多行,更甚者锁表

(2)乐观锁
通过版本号实现

update table_xxx set name=#{name}#, version=version+1 where version=#{version}#

(3)分布式锁
常见的分布式锁方案
①数据库唯一主键
②redis锁
③zk锁
详细见锁的分析文章

6.状态机幂等

在设计单据相关的业务,或者是任务相关的业务,肯定会涉及到状态机(状态变更图),就是业务单据上面有个状态,状态在不同的情况下会发生变更,一般情况下存在有限状态机,这时候,如果状态机已经处于下一个状态,这时候来了一个上一个状态的变更,理论上是不能够变更的,这样的话,保证了有限状态机的幂等。

相关文章

  • 幂等总结

    幂等性概念 幂等就是一个操作,不论执行多少次,产生的效果和返回的结果都是一样的 常见技术方案1.mysql一致性读...

  • 幂等测试总结

    幂等是什么? 百度百科: 幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象...

  • mq消费幂等总结

    mq消费幂等总结针对mq新增场景:1、单个新增:1)首先查本地db是否已存在,存在则幂等2)加redis乐观锁,加...

  • 幂等

    再谈幂等机制 一、什么是幂等性? 幂等性(Idempotence)。在HTTP/1.1规范中幂等性的定义是: Me...

  • 幂等性控制

    看到一篇总结得不错的关于应用系统控制幂等性的方案。摘用以便以后参考。 首先,为啥要做幂等呢?原因很简单,在系统调用...

  • 一口气说出8种幂等性解决重复提交的方案,面试官懵了!(附代码)

    文末有彩蛋哦~ 1.什么是幂等 在我们编程中常见幂等 select查询天然幂等 delete删除也是幂等,删除同一...

  • SpringBoot接口幂等性实现的4种方案!

    目录 什么是幂等性 什么是接口幂等性 为什么需要实现幂等性 引入幂等性后对系统的影响 Restful API 接口...

  • 3.3:幂等设计

    在分布式场景下,我们经常会有需要实现幂等的场景,幂等分为请求幂等和业务幂等。 请求幂等 下面将从以下三步来整理请求...

  • 一口气说出8种幂等性解决重复提交的方案,面试官懵了!(附代码)

    1.什么是幂等 在我们编程中常见幂等 1)select查询天然幂等 2)delete删除也是幂等,删除同一个多次...

  • 无处不在的幂等f(f(x)) = f(x)

    幂等的基本概念 可能我们经常在看网上文章的时候会看到幂等这个概念,那么幂等到底是什么呢? 幂等:在编码中谈的幂等一...

网友评论

      本文标题:幂等总结

      本文链接:https://www.haomeiwen.com/subject/dshwjqtx.html