购票高并发场景中疑惑

来源: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

1
1
慕斯卡3278568
了解了,非常感谢
2023-03-12
共1条回复

Java分布式架构设计与开发实战

项目贯穿式讲解,真正将理论与实战相结合

325 学习 · 74 问题

查看课程