订单详细设计

总体:
SpringBoot实现Java高并发

  1. 乐观锁思路

是相对于“悲观锁”采用更为宽松的加锁机制,大都是采用带版本号(Version)更新。实现就是,这个数据所有请求都有资格去修改,但会获得一个该数据的版本号,只有版本号符合的才能更新成功,其他的返回抢购失败。这样的话,我们就不需要考虑队列的问题,不过,它会增大CPU的计算开销。但是,综合来说,这是一个比较好的解决方案

不同订单相同订单号的处理:订单表中给ordre_sn订单号这个字段加上唯一索引(数据库)

2.redis锁处理并发问题
Redis分布锁 / increment原子操作
Redis分布锁+解锁
分布锁:基于缓存Redis、基于Zookeeper、基于 数据库

3.DAO层、controller层
Redis分布锁乐观锁+业务逻辑各层

你可能感兴趣的:(订单详细设计)