天涯论坛

 找回密码
 立即注册
搜索
查看: 9|回复: 0

铁路12036系统又崩了

[复制链接]

3048

主题

119

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99159056
发表于 2024-11-10 15:18:11 | 显示全部楼层 |阅读模式

2019年即将过去,过年回家的火车票,你们买到了吗?

哈尔滨网络机构博主晓得你们非常多人都买到,我能感受到你们内心的绝望。

前几天12306崩了,非常多人在痛骂12306,有非常多人问为何12306总是动不动就崩溃,和月经同样不给力。

明明只是一个简单的卖票软件,怎么搞成这个鬼样子,人家QQ微X几亿人同期在线聊天,激情互动,还有各样小视频。

另一边双十一几亿人同期购物疯狂败家剁手都问题,为何12306一出手,便是炸穿裤衩的用户体验?

下面就让哈尔滨网站制作的博主来给你们科普一下。

12306到底面临多大的业务压力和挑战。

你们这么多人一拥而上,她们当然受不了,谁受得了呢。

虽然本篇文案会有海量极为硬核的技术术语,然则博主会说的尽可能简单,大众必定要认真听,多记笔记,过年在饭桌上吹牛的时候,这都是王炸,不消谢我了。

不是说你看了这篇文案就能买到票,实质上买票是一个玄学。

只是说,能死的明白点。

非常多人拿12306和双十一来比较,认为双十一这么多订单都能撑住,12306就撑不住,显然是由于技术水平不到位。

这一起始就走了弯路了伴侣,12306的业务模式和双十一是有本质区别的。

这种区别,就引起了12306的难度要比双十一大的多的多的多多多~

倘若说双十一的难度是人间模式,那样12306差不多相当于是地狱十八层,还要再挖个坑的难度。

1

第1,双十一的流量再大,不外是纯线上业务,什么叫纯线上业务?所有用户都是在网页APP下单,全部数据其实是闭环的。

这就引起双十一其实只是一个纯粹的线上流量问题, 处理起来相对纯粹,就像一个单纯的小伴侣同样好欺负。

而12306不是,12306不是仅有一个APP和网站的伴侣,所有人在线下售票厅以及线下设备里产生的交易,会影响全部12306的数据系统。

实质上现实生活中非常多的买火车票返乡的人,例如辛苦的农民和工人伴侣非常多都是不会线上操作的,她们只会线下彻夜排队,非常辛苦,因此12306必须照顾她们的感受,不可断掉线下业务。

这就引起了12306本身是一个线下与线上同享数据的繁杂业务,繁杂度要高出双十一 一个数量级的。

和纯粹简单的双十一相比,12306就像一个饱经社会摧残的老油条,你永远不晓得她们会什么时候会显现什么幺蛾子。

这就像一个纯洁男孩第1次和他的男伴侣约会,怕他不来,又怕他乱来。

2

第二,抛开线上线下不说,毕竟这是欺负12306,咱们谈谈业务本身的计划性和可预测性。

倘若认真思考,你会发掘,双十一是一个有知道计划和操作节点的业务,而12306不是。

双十一活动并不是仅有11月11号当天,其实是一月乃至几个月前就已然起始了,海量的用户都已然支付了定金,海量的商家已然锁定了库存和营销额,只不外最后的结算是在11月11号当天进行的罢了

这就表率着,双十一面对的是一个高确定性的任务,只要有确定性,流量再大不是尤其难的问题。

当你晓得困难会在什么时候出现的时候,这个困难就再也不困难了。

真正的困难,在于不可知。

什么叫不可知?12306便是不可知。

由于你永远不可能测算出会有多少人在哪一天去哪一个地区,一个从浙江回山东的人,他为了回家,选取的线路和时间会非常诡异多变。

能够买浙江到山东,能够买浙江到上海到山东,能够买浙江到南京到山东,能够买千岛湖到山东,能够买浙江到北京到山东,能够买浙江到黑龙江到山东,乃至能够买浙江到广东再飞回山东,只要能回山东,啊我的大葱。

能够接受1号出发,2号出发,3号出发,5号出发,10086号出发,只要能出发。

这就表率了谁晓得需要的流量会是多么的突发,购买的内容会是多么繁杂

哈尔滨seo优化的博主再举一个例子大众就懂了,博客厉害吧?每日这么大的流量,这么多的关注度。

然则为何经常忽然一个明星出轨结婚消极资讯博客就要挂掉?是技术实力还是服务器资源不足

都不是,是由于这种流量是突发性的,谁晓得忽然显现这种爆炸增长,因此服务器就挂掉了。

这就和泼水节上大众都做好了心理准备,然则你泼开水同样

这谁遭得住啊。

因此意见所有明星出轨之前,先博客报备一下,这般她们出轨的安心咱们吃瓜吃的安心。

他好,我好。

3

第三,电商场务不是一个一次性要完成所有流程的业务,然则12306必须一次性完成,这进一步加大了难度。

大众思考一下,电商购物,实质上是并不是一次性的。

一个典型的电商购物流程是,浏览,和商家撕逼价格,下单,和商家撕逼运费以及快递,物流发货,买家收货,和商家撕逼售后。

即使排除撕逼这些事情,电商购物流程是有非常多节点的。

全部流程下来最快最快次日达要24小时。

这就表率电商的数据压力想象中那样大,能够异步处理,完全能够所有付款完成,而后再慢慢处理发货,而后再慢慢处理售后。

就像你要刷B站,又要烧开水,你完全能够先烧开水,在烧水的过程中刷B站,这便是异步的好处,能够同期多任务并行,况且不影响用户的核心体验。

你下单后3小时发货和5小时发货,不影响用户,容错率高。

而12306不同样,卖票便是要立刻完成。

从下单,到付款,到锁定票,都是一气呵成的,任何缓冲时间,不存在我下单一个票2天后告诉我成功失败这种事情,头都给消费者打爆。因此12306等于是这种缓冲周期,需要直面所有的流量,在最短期内满足所有人的所有需要,所有的业务都要在极短期内处理完成,这便是会被一下子塞满。

一样是1亿用户,4个过程,电商能够分4个过程淡定处理,每一个过程处理1亿流量,况且能够分多小时,多天处理。

12306就只能一口气处理4亿,缓和,这个压力可想而知。

咱们晓得,再厉害的东西,被强行塞满,都是会坏掉的。

你们不要瞎想,我说的是公路。

4

第四,电商场务的库存管理是相对简单的,而12306是极其繁杂的,繁杂到我给你简单讲讲你都会抑郁。

想想看,做为电商平台,管理货物虽然有难度,但本身的统一不外固定制品的增删改查,有多少便是多少,付款了就减一,上量退货就加一,顶多显现最后一个商品被2人同期拍下的小概率事件,这都是小事儿。

而12306是完全区别的难度,二者难度差别大概相当于草履虫大战那美克星人。

哈尔滨微X研发博主举个例子,倘若你是一个在北京读书的人,家在北京南边,过年要回家。

随便选一辆北京往南开的车,G65这辆高铁,北京始发终到珠海,一共17个站,共计10小时55分钟。

就这一个路线,17个站,支持随意站上车,随意站落车,会有多少种可能性?

由于坐车不可能只做单站循环,便是不可北京到北京。

因此是从1加到16,一共136种可能性,重视哦,电商一样的场景仅有增删改查4种可能性。

这般一个线路的实时库存,做起来是非常令人头大的。

假如有人买了从北京到广州,那样对应的所有库存就要减1,然则广州到珠海的库存不减。

假如有人买了从武汉到珠海,那样对应的便是武汉到珠海沿途所有线路的库存减1,然则北京到武汉不减。

假如有人买了石家庄到漯河西,那样北京到保定,北京到石家庄不消变,漯河西到珠海段,不消变。

其余所有可能性都要变,由于只要经过这两个站点的路线,都受到影响。

实质业务中,这般的变动,会引起全部库存实时变动,并且是P级别的数据变动,倘若对数据库稍微有所认识,都晓得这种数据变动针对资源的消耗有多么恐怖,一个1GB的电子表格跑查找都能把非常多高性能电脑跑崩掉,初期电子表格乃至限制在6万5千行,便是防止把电脑跑崩。

而这种级别的数据,需要消耗的资源说出来都违反宣传法。

因此为何12306夜里11点到早上要守护这般的数据库倘若不是天天守护守护缓存,早就彻底完犊子了。

每一天,12306都是拿命来奋斗。

因此之后买票的时候,要宠溺一点,温柔一点,你买的不是票,是工程师们的头发。

5

第五,业务去重需要海量的判断。

商场务其实严格来讲是不需要用户实名制的,不需要对用户的身份去重,只要你付钱,有货就发货,除非是限购商品稍微拦截一下,然则面对黄牛党,便是象征性的挣扎一下,毕竟大众都是出来卖的,不会跟钱过不去。

而12306不同样,12306的模式是,每一个人都要限购。

同路线,同期间,要限购。

哈尔滨微X平台制作的博主就拿北京到珠海举例,12306是不准许一个人在同一天购买海量北京到珠海的车票的,这对其他人不公平,因此要限制人的出发时间和购买路线。

那样问题来了,倘若要加限购,那样就要把这个人的当前购买信息,时间,所有缓存下来,这个人的每一笔交易,都要和他当前的已有行程进行去重匹配。

这对数据资源的消耗是非常恐怖的。

并且,并且,查重还有另一个现实问题,便是12306本身是准许自己买票的,便是能够给我的爸妈买票,我爸妈能够给我买票,只要添加乘车人就能够了,这就表率着,同一个人的信息,完全能够区别的时间节点被区别的买家添加,这又带来了巨大的计算压力。

这就和人生同样,太难了。

6

第六,和12306比流量,什么机构资格。

非常多人真的以为双十一便是流量的巅峰的了,其实并不是,12306才是最恐怖的流量巅峰。

为何由于电商的业务模式不会引起用户重复点击,而12306无时无刻不在被所有用户重复点击。

哈尔滨微X营销推广博主举个例子,你在双十一买东西,是不是买了就走了?买不到你便是骂几句,而后走了。

一个用户的点击是有限的,你就算单身30年,给你放开了点,你能点多快?

晓得对系统而言,每一次点击,都是一次数据交换。

12306面对的点击流量,要大的多,你买票的时候,是会持续刷新操作的,你在查找余票的时候,每一次都是要跑所有的数据库来帮你同步当前的余票信息,这个负载量和计算量是天量。

况且此刻非常非常多的人在用抢票软件。

所说的抢票软件,原理便是一直地用设备去读取12306的数据接口,设备的速度绝对是比你单身30年的手速还要威猛几十倍,一秒刷几百次,1个人用抢票软件,能够导致几千个人一块刷产生的数据压力。

各大抢票软件机构加起来用户几千万是有的,14亿人刷出几百亿人的流量都绰绰有余。

晓得12306的流量负载有多强了么?

在12306上,人人都是火影忍者,天天影分身。

会有人问,既然挑战这么大,12306这么不易那样为何不去像国外先进技术取经?为何不去加大投入服务器?为何还在找借口?

为何12306不引入国外的先进技术呢?

答案其实很简单,国外罩不住啊。

早在2012年,12306就有公开招标,预算不设限,只要能处理问题,世界顶级公司都来竞标了,然则最后基本都放弃了。

由于当时的技术环境人能处理这个问题。

国外非常多技术的确先进,然则一个国家机构,历史上接受过14亿人的数百亿级别流量的挑战,你能说出来的世界顶级机构一家能承受这么强的即时交易流量。

她们有的流量更大,但就和电商场同样,是能够异步操作,不需要身份独一性,这么繁杂的路线存量计算的,你们晓得国外的高铁和轻轨是什么垃圾水平,咱们遇到的问题她们从来遇到过。

这是很现实的一件事情。

全中国14亿人的出行需要面前,大众都是同样菜。

说到这儿,想到了行业里的一个笑话,有个脸书的初期工程师回国加入阿里巴巴,离开前,他说要去拯救阿里巴巴的数据系统,结果回来之后才发掘,他在脸书遇到的数据挑战,和阿里巴巴比起来,简直是幼儿园水平。

在数据挑战上,咱们遇到的数据挑战绝对是世界最强梯队的,非常多时候之一。

那样为何不加服务器呢?技术不足,硬件来凑。

加服务器面临的核心问题有3个。

第1个,加服务器只是增多了储存能力,并不可处理数据库的问题,这就和一个女性孩儿要10个月,不表率你找10个女性就能在1个月内生孩儿

第二个,怎样驱动这些服务器?当年阿里云领先世界的技术,便是突破了同期驱动5000台服务器,作为世界三大云之一。

晓得,阿里云面对的只是双十一,而12306的挑战要更加恐怖,需要同期驱动的服务器数量更加多,这是有技术挑战在的。

另一,阿里云确实参与了12306的建设。

第三个,成本问题。

12306常常全年都表现良好,仅有重大节假日才会偶尔显现崩溃,你为了应付一年中为数不多的重大节假日,采购了这么多高折旧率的服务器,平时基本用不上,这是一种浪费钱的行径

中国铁路本身便是巨额亏损,国家连续补助的,这种状况下,为了短期需要,投入海量的成本,这笔账不消多说吧?

瞧瞧隔壁博客,宁可每次被流量击溃不愿长期维系海量服务器,博客看财报每年都是盈利的,金额都是根据亿来结算的,人家都是这个态度,你晓得12306有多不易了吧。

况且这可都是纳税人的钱。

到最后,买票问题的本质,还是供需关系。

全国这么多人,在这么短的时间内要完成这么多的出行,远远超过了铁路本身的运载能力,在这种供少于求的状况下,怎么调配资源,都办法处理供需问题。

东西就这么多,大众皆想要,能怎么办呢?

加钱,继续扩建?

晓得非常多线路仅有春节才爆满,平时都空车亏损,为了满足小部分人短期的出行,海量浪费资金投入到已然富余的路线中,并不划算的。

有这个钱,应该去投入到更加多地区

最后

12306这种基本设备,天然便是挨骂的,做的好,大众不会夸,做的有一点点欠好,会被骂到死,这是基本设备的悲哀,所有人都有不恰当的期待。

何况,12306在只花了这么少预算的状况下,做到此刻这个程度,已然是超神操作了。

思虑资金成本和技术成本张口就骂,是一种不太理智的行径

哈尔滨冷空气网络科技研发有限机构





上一篇:操作系统(10)-虚拟内存
下一篇:程序员的自我修养
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-23 00:02 , Processed in 0.118239 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.