JAVA库存的幂等_聊聊之 幂等

1. 什么是幂等  ?

幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。

2. 幂等特点

在程序设计中,多次执行与一次执行产生的影响结果一样 。

3. 举例说明

例如:用户在一次消费扣款时,无论点击了多少次,或网络震荡引起多次付费请求,一个订单最终的结果也只是完成一次付费。

4. 技术方案

a. 查询操作(在数据不变的前提下,SELECT 为幂等操作)

b. 删除操作(数据删除一次和多次影响的结果是一样的。DELETE为幂等操作)

c.创建唯一索引或唯一组合索引 。通过数据的唯一性,保证在操作时不会产生脏数据,并且程序也会返回相应的约束提醒,当并发出现时,则再查询一次返回结果即可。

d. token机制。请求操作数据前,先获得此次操作的token,然后再与数据共同提交完成token验证,操作完成则token失效。

e. 悲观锁。 select * from tableName where id='唯一标识'  ,值得注意的是要建立好主键或唯一索引,否则会引起锁表,影响服务正常运行。

f. 乐观锁。在表中加入 version 字段,操作数据时 update tableName set remark='备注' ,version=version+1 where 1=1 and version='源数据版本' ,仅仅锁定一条记录,所以性能要比悲观锁高一些。

总结:在涉及支付、库存等操作时要重点考虑到幂等,防止出现多次扣费、扣库存等问题影响用户体验。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值