一年一度的春运来临,上亿人开启抢票之旅,办公室问得最多的是票抢到了吗?对于迫切回家的异乡游子来说,能抢到一张票,就意味着春节能和家人团聚,可以说这抢的是一张张团圆票。火车是人们春节回家首选的交通工具,因此铁路系统售出的火车票数量庞大,据统计,从2018年12月23号到2019年1月20号这段时间里,国内出售了3.83亿张车票,平均一天卖出1320万张。这大部分票是从铁路售票系统12306上卖出。12306日均页面浏览量达到556.7亿次,最高峰时页面浏览量达813.4亿次,1小时最高点击量59.3亿次,平均每秒164.8万次,这是多么高的点击访问量,12306系统承受不了,几乎每年都会崩溃。
2019年,12306系统又崩溃了,这一崩溃,急坏了归心似箭的游子。到底是什么原因让这个系统崩溃了呢。
12306系统崩溃的原因
A.12306系统是个售票系统,这个系统明显特征并发量很高。例如200W人,抢2000张票,通道上点击和查询的人很多,但是实际写数据的人只有2000个,这就要充分利用缓存。否则让请求都压到了后端数据层,数据读写锁冲突严重,并发高响应慢,几乎所有请求都超时;
B.抢票的人太多了,同一时间点,超大量的访问点击率(上千万次的访问),带宽不够,我们看到页面卡住,进不了下一个页面;
C.12306系统的服务器CPU算力不够,处理不了那么多数据。服务器直接卡死,导致页面直接崩溃;
D.黄牛党的一些刷票软件,每时每刻刷票,点击访问量惊人,人为制造网络拥堵。
2012年,铁路12306售票系统开始上线运行。由于系统能力较差,卡断非常严重,秒级售出仅仅几十张,低的时候甚至只有几张。经过这几年不断的优化,12306售票系统改进了很多。
怎么保障12306系统正常运行
第1, 优化12306系统架构,读的数据采用缓存,并且排队进入,如果票已经抢完,表明队排完,多余的点击只显示暂无余票的界面,使得再多的访问也冲击不了缓存和数据库;
第2, 分离票务查询系统,12306系统已经和阿里云合作,把票务查询系统搬到阿里云上了,这样大大减轻了12306系统的运算负担;
第3, 提高系统服务器的性能,服务器扩容,增加服务器的算力;
第4, 打击那些黄牛党和刷票助手,减少网络拥堵,提高有效的抢票请求。
还有一个根本的原因,春节作为中华民族的传统节日,团圆节日。很多人想回家,因为工作的地方没有家,有家的地方没有工作,漂泊的身躯在异乡找不到归属,只有那个魂牵梦绕的故乡,才消解我们思乡之情。为了过个团圆节,人们不得不从工作的地方回到老家,这样就造成了庞大的人口流动,火车票作为最安全的出行选择,人们都希望得到一张回家的火车票,造成一票难求的局面。还有一个提议,落实休假制度,错开春运高峰,让每个人都能够选择合适的时间与家人团结,让团聚不在受时间的约束。
,