JAVA秒杀系统的设计与实现
主要逻辑流程
存在问题:
一:用户多次下单
解决方案:
1.1前端控制,
1.2分布式锁实现redis(key:商品id+用户id)不存在则设置代表获取锁成功,否则失败。
二:库存超卖
解决方案:
思路 :(redis redission zookpeer等)
分布式锁实现,在原子操作中,获取key的锁,来一套扣减库存,生成订单的操作。
同时可以用sql where stock > 0 或者加版本号来实现。
理解分布式锁:(附带了优化思路)
参考:https://blog.****.net/u010391342/article/details/84372342
加锁代码参考:
https://www.cnblogs.com/linjiqin/p/8003838.html
整体实现:TODO