高并发下单锁的问题

来源:13-2 通用电商下单服务+库存高并发控制逻辑实现(上)

眺望未来er

2017-07-25

高并发下单的时候,如果用这种写锁的话,就会造成点击该商品查看商品详情的时候就会出现bug的情况。老师,也可以用文件锁吧?

http://szimg.mukewang.com/59775c1600017b9d08940066.jpg

写回答

2回答

哈七八搭

2018-08-07

文件锁也是可以解决高并发的问题的。在runtime里面生成一个文件,在用户进来减少库存时,把文件lock住,当用户操作完毕,把文件unlock。后面的人在前面的人没操作之前是不能修改的。

0
0

编程浪子

2017-07-26

文件锁,啥意思?
你说遇到的问题应该是那一刻卡住了,但是往往一个事物在30ms之内处理完成的,所以对于一般网站够用了,我在课程中讲解了2种锁,一种悲观锁 一种乐观锁,在并发量高到一定程度会使用其他手段辅助,例如每年的火车票秒杀,或者常规秒杀,在那一会总会出现服务很慢的情况,一般会加入redis之类解决

0
1
眺望未来er
老师用的第二种锁给了很好的启发。之前开发的时候,我用了另外一种PHP的文件锁机制,在减库存量的代码前面$fp = fopen('./order.lock', 'r');flock($fp, LOCK_EX);库存量更新完后释放锁 flock($fp, LOCK_UN);fclose($fp); 由于高并发秒杀的时候mysql的锁会造成商品表相关操作处于阻塞状态,整个网站跟这个表相关的功能都被拖慢,用户体验不太好。
2017-07-26
共1条回复

微信服务号+Yii2.0构建商城系统全栈应用

传统PC后端与火热微信结合,打造一个摩登的商业电商系统

757 学习 · 744 问题

查看课程