每到长假的上显示时候我们要到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的车票的预售制也是类似的原理 ,不同的区间的票提前预售 ,这样起到了分流的作用 。 |
10 款酷酷的 Android 应用三星s6重力感应问题是否常见掌握WTGU盘的完整教程(一站式学习WTGU盘操作,轻松应对各种数据存储需求)苹果系统如何重装win7系统教程(详细教你在苹果系统上重装win7系统的方法)简单三步 Android 5.0版本就能更省电酷派G3手机(功能强大,性能卓越,细节设计精良)C2C1080p(以消费者为中心的全高清购物体验)康佳58寸9600电视4k怎么样?(性能超群,画质出众,细节震撼!)华硕ZX50笔记本电脑的性能和功能如何?(探索华硕ZX50笔记本电脑的一切)选择虚拟光驱软件,享受便捷光盘管理(比较虚拟光驱软件,找到最佳解决方案)香港物理机亿华云企业服务器b2b信息平台源码库网站建设云服务器