84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
想做做个第三方支付接口,担心下订单这一块可能出现并发.
0); if($lock){ /***********拿到锁的用户执行********/ //在这里生成订单号,写入数据库, 跳转到支付页面..... flock($fp,LOCK_UN); fclose($fp); }else{ fclose($fp); die("系统繁忙,稍后再试"); }
闭关修行中......
楼主通过文件来加独占锁,是不是意味着每笔订单的生成都会,先获取锁,然后再创建订单?这就相当于把整个订单的创建变成了一个串行操作,下单的TPS可能会小的可怜
楼主说的并发是因为,用户下单按钮点了两次,导致重复下单么?如果是,那么这种场景的解决方案有很多,参照哪些分布式事务的中间件可以保证幂等性,通过requestId/token都可以解决你的问题
可以借助redis的原子行操作实现锁,设置一个key来做标志。
可以用nmq来搞。
楼主通过文件来加独占锁,是不是意味着每笔订单的生成都会,先获取锁,然后再创建订单?这就相当于把整个订单的创建变成了一个串行操作,下单的TPS可能会小的可怜
楼主说的并发是因为,用户下单按钮点了两次,导致重复下单么?如果是,那么这种场景的解决方案有很多,参照哪些分布式事务的中间件可以保证幂等性,通过requestId/token都可以解决你的问题
可以借助redis的原子行操作实现锁,设置一个key来做标志。
可以用nmq来搞。