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

来源:4-2 极致性能的扣库存服务如何实现

慕粉1120538534

2021-05-25 21:59

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

写回答 关注

1回答

  • 皮奇
    2021-07-14 15:23:10

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

    慕粉1120...

    因为fpm多进程+apcu+锁去做的话,那我觉得倒不如直接上redis,利用单线程的特性去处理还更简单,性能可能也差不多。

    2021-07-14 15:43:10

    共 2 条回复 >

PHP秒杀设计

利用php+redis打造一个高性能的订单秒杀系统

11612 学习 · 61 问题

查看课程

相似问题