购票高并发场景中疑惑
来源:4-13 分析高并发场景下缓存数据一致性难题

慕斯卡3278568
2023-02-15
老师,您好,关于12306抢票的这个高并发的场景,我这边有两点疑问,一是当第一层缓存显示有票,就会导致大量的用户进入下一个查询数据库的阶段。这个是不是同样会对数据库造成巨大的访问压力?二是,我感觉购票这种场景比普通的抢购还要复杂,比如当一个列车从上海开往南京,途径苏州,无锡。假设A、B、C三位用户同时购票,A用户买上海到无锡的,B用户买苏州到南京的,C用户买无锡到南京的。如果此时只剩下一个从上海到南京的空位,假设在查询页面A,B,C同时看到还剩一张票,于是A,B,C三位用户都同时进入了购票界面,请问系统应该怎么控制出票,才能保证最大程度的保证客户乘车的需要。不知道老师是否能帮忙给予一些解决思路,期待您的回复,谢谢。
写回答
1回答
-
大能老师
2023-02-17
同学你好,
第一个问题:首先这里“读”请求是走缓存没问题的,不能每一个“读”请求都打到数据库;而当用户进到购票页面时,还不会去查数据库,而是到下单的时候才再去检查是否能出票,所以这个阶段可以缓解一部份请求压力;当真正到了“写”数据库阶段,还可以通过排队、限流的机制去保护底层资源。
第二个问题:这个主要考虑业务逻辑的设计,简单思路可以参考一下这个文章 https://zhuanlan.zhihu.com/p/434639689
112023-03-12
相似问题