为什么12306上显示有余票,但是无法下单
现在的12306使用的人数非常的多,如果每次余票的数据都实时计算的话,12306服务器是难扛得住的这样的查询压力,所以针对余票的数据是放在缓存中的,真正下单扣减余票的数量的是在其主库中操作的,然后计
现在的12306使用的人数非常的多,如果每次余票的数据都实时计算的话,12306服务器是难扛得住的这样的查询压力,所以针对余票的数据是放在缓存中的,真正下单扣减余票的数量的是在其主库中操作的,然后计算出余票的数量在同步到缓存中。
每到长假的时候我们要到12306上买火车票,大家也经常遇到给你希望但是又让你失望的崩溃的情况,在12306APP查火车余票的时候,如下图所示:
图片
在APP上明明显示有1张二等座的余票,但是一顿操作选择购买二等座,然后点击提交订单,突然就提示二等座位余票不足,如下图所示:
图片
但是,我们回到车票的查询页面后,发现二等座还有1张余票,这是为什么呢?在12306的最新页面也给了一些常见的原因:
图片
在12306正式或铁路12306手机APP上查询有票,但预订不成功,有以下可能:
(1)在预订的同时有其他旅客也在申请相同需求车票,特别是所剩车票不多时,先发起请求的旅客将获得剩余车票,此时回到12306正式或铁路12306手机APP再次查询先前所选择的车次时已经没有所需车票,请更换车次再次购买;
(2)当上网环境发生网络故障时,12306正式或铁路12306手机APP对旅客订票的申请无法响应,请更换网络环境再次尝试;
(3)由于其他未知原因导致预订车票没有成功,可以稍后再试;如果12306正式或铁路12306手机APP的其他页面访问正常而订票申请总是出现故障,且最新没有发布升级或停机通知时,可以根据页面中的提示服务电话进行咨询。
为什么12306会出现显示有票但是买不了,根本的原因是APP查询到的是脏数据的,12306的库存扣减是一个十分复杂的流程,它不像电商商品扣减库存那样的纯粹,如下图是A、B、C、D和E五个售票区间:
图片
从A到E这个5个区间的售票有如上的10种售卖情况,如果区间更多的话,售卖车票的种类就更多了。假设每个区间的可售票的情况如下所示:
图片
如果有乘客买了1张B到C的票,那么此时在12306中不仅要将B到C的余票数量减1,而且还要将区间A到C、A到D,A到E,B到D,B到E等包含B到C区间的余票数量都要相应的减1张,如下图所示:
图片
没有包含B到C的区间,也就是A到B、C到D、C到E以及D到E这些区间不用更新余票数量,这种牵一发而动全身的余票售卖逻辑实际在售票中更为复杂。
现在的12306使用的人数非常的多,如果每次余票的数据都实时计算的话,12306服务器是难扛得住的这样的查询压力,所以针对余票的数据是放在缓存中的,真正下单扣减余票的数量的是在其主库中操作的,然后计算出余票的数量在同步到缓存中。
这样设计的优势是查询不仅速度快,而且也减轻了服务器的计算压力,缺点是由于缓存的数据没有及时更新,导致了用户可见不可买的情况,如下图所示:
图片
缓存没及时更新下,我们看到的余票可能已被别人买走了,提交订单时就会出现余票不足。这里我们发现缓存如果刷新时间越短,那么展示的余票数据就越准确,但系统运算的压力就越大;如果缓存刷新太长的话,就容易碰到看得见买不到的情况。
当了春节国庆这样的售票高峰期,为了做到即快又准,设想我们将中间区间的票锁住,优先卖A到E的的车票,那么这样的话余票计算的复杂度就降下来了,票的刷新速度也就更快,如下图所示:
图片
目前的12306的车票的预售制也是类似的原理,不同的区间的票提前预售,这样起到了分流的作用。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
地下室发现尘封12年AMD前CEO旧PC苏姿丰签名推土机硬件
一位技工在客户家地下室发现一台属于AMD前CEORoryRead的旧PC,机箱上留有苏姿丰等高管签名,配置为推土机时代硬件且从未开机。这台电脑封存了AMD从推土机失败到Zen架构崛起的关键转折历史。
Laravel 12生态成熟助力全栈开发效率提升
Laravel12延续开发体验优势,在项目结构、查询构建、API开发、调试及性能上持续优化。其生态日趋成熟,形成Reverb、Pulse等完整工具链,覆盖API、SaaS、企业后台及AI应用开发。与Next js的组合逐渐流行,Laravel已演变为现代Web开发平台,保持社区活力。
Linux内核持续演进:Rust语言与零拷贝网络成新焦点
LinuxKernel6 15重大更新:Rust驱动正式入主线,NOVADRM成为首个实践案例;io_uring新增零拷贝网络接收,降低CPU开销与延迟;Btrfs增强实时zstd压缩、DirectIO及稳定性。内核同步推进安全化与高性能网络化。
谷歌Gemini进入Agent时代 打造全天候AI助理
Google推出GeminiSpark、Omni等新功能。Spark可全天候在后台运行,主动处理邮件、日历等任务;Omni侧重视频理解与环境推理,布局世界模型。AI正从被动回答转向主动观察、规划与执行,标志着竞赛进入新阶段。
CPU-Z 2.20.2正式版发布 支持Intel三大平台及AMD锐龙AI Max
CPU-Z2 20 2正式版发布,新增支持IntelPantherLake、WildcatLake、BartlettLake三大架构及AMD锐龙AIMax、Pro系列,加入锐炫G3识别库,修复缓存错误和锐龙77700X3D检测问题,免费下载。
- 热门数据榜
相关攻略
2026-07-10 10:06
2026-07-10 10:06
2026-07-10 10:06
2026-07-10 10:05
2026-07-10 10:05
2026-07-10 10:05
2026-07-10 10:05
2026-07-10 10:05
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

