为了账号安全,请及时绑定邮箱和手机立即绑定

本地减库存环节是否也存在并发问题?

今天面试遇到这么一个问题,在视频所讲的架构下,面试官提出这样一个疑问:“本地减库存环节一定也存在并发问题,能解决吗?”。我的理解是请求并发过来,同时获取本地已售数量self::$APCU_LOCAL_USE,那么apcu_inc(self::$APCU_LOCAL_USE);对于这些并发请求也都会得到相同的+1的结果,这样实际上放过去的流量就不止100了,会存在这样的可能吗?是否有必要解决呢?请问该怎么解决呢?

正在回答

1 回答

这是个好问题,可以flock函数加一个非阻塞的文件锁,抢到锁的用户去减本地库存;

0 回复 有任何疑惑可以回复我~
#1

慕粉1120538534 提问者

老师,flock,fopen应该会涉及到额外的io操作吧,那会不会影响性能呢?这种场景下能否考虑用fpm单进程去处理,单进程基于apcu能抗住那么高的流量吗?
2021-07-14 回复 有任何疑惑可以回复我~
#2

慕粉1120538534 提问者

因为fpm多进程+apcu+锁去做的话,那我觉得倒不如直接上redis,利用单线程的特性去处理还更简单,性能可能也差不多。
2021-07-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

本地减库存环节是否也存在并发问题?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信