如何在使用分布式锁时保证高并发
来源:16-5 使用Redis分布式锁是否能解决库存超卖?

weixin_慕娘1305685
2023-09-27
老师,今天面试碰到个问题,在解决超卖问题时我们使用 redis 分布式锁,但是锁上了的话一次就只能有一个线程进行购票,那这样并发度就降低了,因为购票是个比较长的流程,计算各种票的用时会比较长。这样的话就会造成并发量急速下降,我们有什么办法能解决这种问题么。
我想到的解决方案是降低锁的粒度,我们现在是锁住了 日期 + 车次;能否改为 日期 + 车次 + 座位等级,但是这样感觉粒度也很大。
写回答
1回答
-
甲蛙
2023-09-28
这样的话,锁会有很多,而且有可能死锁,注意我们一单是可以买多个座位的,比如A买了座位1和2,B也选择座位1和2,A拿到了1的锁,B拿到了2的锁,这时AB就死锁了
222023-12-27
相似问题