没错,就是世界第一,而且极其牛逼。我很佩服设计这套算法和系统的人。
牛逼主要有以下三点:
另外,我还会和各个主要国家对比,告诉你为什么在世界上也是最牛逼的。(好像其他回答都忘了题目问的是在世界上属于什么水平?)
在电商平台上,每个商品对应一个SKU,有人购买1件,库存就减1。而12306的特殊性在于,火车票是一种动态的SKU,计算起来的数据量可能是普通电商产品的数百倍。
以北京西到深圳福田的G71次高铁为例,共有17个站、3种座位。表面看起来是3个SKU,即G71商务座、一等座、二等座,但实际上,G71次高铁有408个SKU。
原因很简单:从北京西站始发的车票,后面有16个车站,即16种不同的车票;涿州东站是第二站,有15种不同的车票,以此类推,单以上下车的站来计算,G71次高铁就会有16+15……+2+1=136个SKU,而每种票对应3种座位,一共是408个商品。
也就是说,如果旅客购买了一张北京西站到涿州东站的车票,G71次高铁的SKU要减去16;而如果购买的是北京西站到深圳福田站的车票,则要减去136个SKU。
以上只是SKU的减值。若旅客购买的是短途票,如北京西站到涿州东站,则在SKU减去16的同时,还要增加涿州东站到之后各站、之后各站相互间的SKU,即增加120个SKU。
若再叠加当前的选座功能(A、B、C、D、F),计算数量可能还要再翻倍。而这些计算数据,需要在大量购票者抢票的数秒,甚至数毫秒内完成。
中国有1805个客运火车站,且每条线路上一天有几十~数百班次的火车。如此排列组合算下来,SKU数是天文数字。
12306相比淘宝,“商品”间还会互相干涉。比如如果有人 买了济南到南京的高铁票,那么其他涉及同路段的高铁票也需要校验是否还能售卖。比如北京到天津的就不受影响(不重叠),但徐州到上海的可能就售空了。
而如果有退票、改签,同样需要相应给其他SKU加上库存,这是其他电商平台所没有的情况(例如南京到上海有人退票,北京到上海、上海到天津可能就有了一张票可以卖)。
这一切操作,还需要在无数的手机、车站窗口、自助售票机、代理商之间实时同步。一旦一边卖出,其他渠道就不能买被影响的任何库存。一旦一个渠道退票,其他渠道要能买到。否则两个渠道很有可能同时售出同一张票,尤其是春运抢票时。但我们几乎没有听说过这样的新闻。
据铁科院首席研究员、12306技术部主任单杏花介绍,2020年春运期间,12306在高峰日网络点击量高达1495亿次。
也就是说,12306在高峰日平均1秒就要承受170多万次点击,大概相当于每个中国人每天在12306上点击了100次。
12306面临的流量压力,可想而知。一名IT工程师在听到《中国经济周刊》记者转述的这组数据时,表示自己很难想象,“即便是百度,也很难有这样的点击量,可以说是一组天文数字。”
作为对比,2019年淘宝的订单创建峰值,是54.4万笔/秒。Trustdata的数据显示,淘宝APP 2019年“双11”当天的日活跃用户为4.76亿。
若以此计算,12306的最高访问量,相当于淘宝“双11”当天活跃用户每人点击超过300次。
对此,杨立鹏自嘲道,12306系统面临的,基本上是“天天被秒杀、天天被抢购、天天‘双11’”。
2020年春运期间,12306在高峰日网络点击量高达1495亿次。作为对比,著名视频网站P站每天访问量约1.15亿次。根据个人经验,每次访问浏览应该不超过10个网页,最多不超过50个,也就是点击量最多50余亿次。那么可以说,P站相比高峰的12306,点击量只是个零头。
(当然,视频和订票对系统的压力类型是不一样的。但是,缓存视频需要的校验、计算、操作也相对较少)
在这样的高难度下,12306几乎不挂,买票、查票反应较快,购买和退票能够实时返回结果,实在是一件很牛逼的事。
为了切题,让我们再来和各国对比一下。
人口太小和不太发达的国家跳过,一起比较一下以下几个国家的主要铁路公司:
首先,美国不用看了。一天五六万人,手工卖票都出不了问题。
其次,日本和欧洲诸国看起来运送旅客数量和铁道部可以一比(尤其是日本)。但在日本和欧洲,铁路不仅是在城市间通勤,很大程度上也和地铁共同承担着通勤的职责。以北京或者上海类比的话,相当于市区(五环或者外环线内)主要靠地铁,以外的近郊区域主要靠“铁路”。
例如德铁(DB)的26亿旅客中,其实24.3亿都是短途、通勤旅客,只有1.48亿长途旅客。日本JR的长途旅客运输绝大部分由新干线和特急(相当于K字头火车)承担,其中新干线又是绝对的大头。2010年新干线共运输旅客3.2亿人次。[6]
而通勤旅客,是几乎不需要提前买票的……跟地铁一样随到随走,一般是刷交通卡。所以“订票系统”也只是像卖地铁票一样,不需要具体到班次、座位的库存,毫无压力。
等于日本和德国能和铁道部对标的最多只有3-5亿人次(这已经是放很大了),对比我国2019年全国铁路旅客发送量36.60亿人,已经只有零头了。
即使是长途旅客,也有很大一部分是不固定车次、座位的。
以我比较熟悉的日本和英国为例。日本的新干线分为自由席和指定席,自由席票可以乘坐任何一班对应区间的列车,有座就坐,没有就站着。指定席是有固定车次、座位的,类似我国的火车票。从个人经验来说,指定席最多占一半。3.2亿人次大约只剩一半。
英国则是可以提前购买特定特价车次的票,会打折,只能坐这班车,但我印象中不具体到座位。而占绝大多数的常规票也是买了A站到B站后,做任何一班都可以,也没有固定座位。
不固定班次、座位的卖票系统,有何难度?
作为比较,2019年全国铁路旅客发送量完成36.60亿人,全部都是提前买好票,具体到哪一班火车,哪一个座位的。
业务量、计算量完全不在一个量级的情况下,我们可以放心地说,中国的铁路订票系统在世界上,是最牛逼的。
何况刚才我试着打开了下英国铁路,发现它的网站上只有“行程规划(Journey Planner),没有卖票。需要先选好乘坐的区间,再跳转到若干家外部的订票网站之一。而这个“行程规划”,我试着打开了下,结果直接报错:
现在可是伦敦时间下午6点。
嗯,我确定中国的铁路订票系统在世界上是坠流弊的了。
感谢大家的支持与建议,我把这篇文章升级成了7000字的上下篇。
除了说明得更形象易懂,还增加了:
发在公众号【上海古美门】,欢迎来阅读哦!
文中新闻引用来源:
《中国经济周刊》2020年1月16日,《探秘12306监控中心|最高日访问量1500 亿次,12306到底有多牛》
太长不看版:
它是人类历史上独特的艺术,而非纯粹的技术。
——————————分割线———————————
我国铁路客运曾长期使用常备客票+手工作业模式。这种模式的缺点极为明显:售票效率低、局限性大、席位管理混乱、工作人员劳动强度,不利于我国铁路的现代化发展。
为了提高客运服务质量、满足旅客要求,1996年原铁道部决定在全路主要干线和大站率先实现电子售票,其初期范围是京广、京沪、京哈三大干线及沿线快车停车站和全路43个大客运站[1]。当时按照铁科院客票总体组《铁路车站电子售票应用系统主要技术规定》[2]建立起的电子售票网,即是目前中国铁路客票发售与预订系统(China Railway Ticketing and Reservation System,TRS)的前身。该系统是第九个五年计划国家重点科技公关计划重中之重项目[3]。当时的计算机售票主要是为了以下有限目标[4]:
为促进客票系统发展,经国家计委批准,自1997年1月1日起,凡计算机发售的软纸车票均准在票价内加收铁路客票发展金[5]。铁道部根据该政策,出台了《客票系统发展金管理办法》[6],规定计算机软纸票客票系统发展金的具体核收方式。同年12月,我国铁路开始执行新的《铁路旅客运输规程》和《铁路旅客运输办理细则》,计算机发售的软纸车票作为铁路信息化发展的重要研究成果,正式写入旅客规章体系[7]。
为进一步强化铁路客运市场营销,推进铁路客运售票改革,1998年5月,原铁道部发布《铁路客运售票代理试行办法》[8],决定改革售票管理体制,通过计算机网络开展客运售票代理试点。同年10月原铁道部发布《全路客票发售和预订系统技术管理暂行办法》[9],对客票系统的内部管理、技术条件进一步细化,适应了联网售票时代的技术特点。
为占领市场、强化营销,原铁道部于1999年5月发布《全路联网异地售票管理暂行办法》,全路开始办理联网异地售票工作。彼时异地车票发售站分为路网性及地区性(即俗称的路网及局网)[10],联网车票发售范围也仅限铁路局自定,与现在的联网发售有很大的区别。随着异地售票的出现,异地票的核算工作也开始通过计算机网络完成[11],以计算机网络售票为代表的高技术应用开始改变铁路售票模式。同年,铁道部开始执行春运期间旅客浮动票价[12],涉及计算机售票车站不再使用常备定额处理上浮票价,而是采取改变售票系统数据的方式来处理浮动票价,降低了车站售票人员的负担。
2000年,中国铁路客票发售和预订系统获得国家科技进步一等奖。到2003年前后,我国铁路已经有1800多个车站建成了车站售票系统,联网车站达1000多个。[13]2004年12月8日,铁科院和广铁集团合作开通广铁电话订票系统[14],号码为95105105。
随着计算机售票的逐渐普及,铁路规章也在逐渐适应计算机,2006年夏季,铁路售票系统逐渐升级为5.0版本,这一版本是为适应铁路第六次大提速而设计的新版本。铁道部专门为此版本售票系统修改了客运基础规章和管理规则,如《关于客票系统5.0版本实施后修改规章的通知》、《关于实施客票系统5.0版本有关工作要求的通知》等[15]。这也是TRS系统至今最后一次全路范围的冷更新,根据当时参与更新的人员回忆,更新时如长春、沈阳北这样的大型车站,采取的是方向别发售代用票的方式维持售票,过渡期间的效率还不如90年代之前的手工操作。在此期间,全路各局通过自办网络售票、余票镜像,试水网络售票,但收效甚微[16]。
2007年4月18日,中国铁路第六次大提速,动车组上线。2008年8月1日,京津城际铁路开通。2010年、2011年春运,广铁开始试行实名制[17]。2011年6月12日,12306网站接入TRS售票核心网,开始办理京津城际铁路网络售票。至2011年末,12306网站服务范围已经覆盖全路几乎全部车次[18],但仅支持网银付款。2012年开始,铁路开始广泛推行实名制。[19]
以上就是TRS系统在网络售票之前的发展历程。至于支付宝微信付款、自动提交订单、12306客户端、车票快递、60天预售期、饱受诟病的图片验证码、开车后可当日改签、中铁银通卡、阶梯退票费率、变更到站、火车票改版预留广告区域、身份信息核验、接续换乘和网上选座、电子客票等服务,都是在2012到2020年这8年间,在1996年始建、2006年大幅更新的TRS(SMART)系统上添砖加瓦而形成的。
中国铁路能以形成于20世纪中叶的铁路客运规章体系兼容21世纪最先进的信息网络技术、高速铁路技术,中国铁路客票发售与预订系统功不可没。TRS不仅是让中国铁路客运告别铅与火、迎来光与电的纽带,更是向新一代客票系统迈进的桥梁,从这个角度讲,它是人类历史上独特的艺术,而非纯粹的技术。
附:全路43个较大车站(2006年公布)
哈尔滨、齐齐哈尔、沈阳、沈阳北、大连、长春、吉林、锦州、北京、北京西、天津、太原、石家庄、呼和浩特、郑州、西安、武昌、汉口、济南、青岛、徐州、上海、南京、杭州、合肥、南昌、福州、广州、广州东、深圳、长沙、株洲、南宁、柳州、桂林、成都、重庆、贵阳、昆明、兰州、西宁、银川、乌鲁木齐。
非典那年机缘巧合之下,做了个哈尔滨铁路分局的信息化项目,当时从侧面了解了一些铁路订票系统的故事,因时日太久,到底是当时的真实记忆,还是想象补充,都已经无从考证,这里只是写出来仅供参考讨论。
首先以前在铁路信息化之前,票务系统可以说是一片混乱,由于铁路客票一票难求,因此有无数黄牛以此为生,客票是不记名的,也给黄牛带来了滚滚生利。当时采取的对策,主要是采取保留票制度,例如北京发上海的车票,假设有10个车厢,那么中间途径济南南京两个大站的话,那么就给济南站留一个车厢,给南京站留一个车厢,这两个车厢北京站只出售短途车票,不售卖到上海的。这种票务分配是基于政策的,各个车站之间没有联网,互不知晓。
到了90年代,哈尔滨铁路局主持开发了全国第一套基于sco Unix 的,使用c语言开发的票务分配系统,在主机上将客票按照规定的策略将一趟车的所有客票进行分配,就是将上面的逻辑用程序实现。同时各车站加入了抢票功能,先把自己可以售卖的车票抢下来,再按照需要售卖给外面等票的人。
这是一个划时代的成果,在当时的网络条件下,采用上下位之间的通讯,实现了针对车站的订票,售卖,退票功能。当然还有后续的结算功能等等。这套系统是基于小型机开发的。这里车站和票务中心的通讯不是实时的售卖,而是在指定时间点,各车站先把自己能发售的票抢出来,下载到自己的本地服务器上,再在自己这个服务器上一张一张出票,卖不掉的票可以在一定时间段退回去,或者根据…【人工调度命令】把票退回去。
当时听到这个故事的时候很震撼,但当时不懂东西太多,无法理解他们是怎么做到的。
后来到了2000年左右,由于微机价格低廉,应用系统开发到了cs阶段,上面这套系统升级到了cs阶段。客户端用的是pb或者vb ,数据库用的是sybase,中间件选用的是tuxedo. 当时见过这个售票系统的界面,应该是pb开发的。当时仍然采用的是分布式的部署架构,各铁路分局部署自己的售票系统,再通过服务器从总的票务中心下载票务数据,批量订票,再到各个车站出票。这时各个铁路分局所属的各个车站逐渐实现了内部联网。当时联网用的好像是adsl拨号技术。
这套技术应该说很稳定的运行了十几年吧。
至于全国大集中的12306系统出现。
与一般人的理解完全相反的是,各种应用系统其实一开始都是大规模分布式的,尤其这个整体票务系统,一开始是大概三层的票务系统,铁道部一层,各铁路局一层,分局一层,车站一层。各层之间进行数据包传递来协同工作。这个和银行系统也有类似之处。
后来随着信息化的扩展,大约用了二十年的时间完成了大集中。银行业大约是2000年左右实现了全国大集中,央行大约是2010年完成了大集中,代表成果就是二代支付系统,大小额接入系统这些。而铁道部的大集中基本上是在12306之前就完成了,大约也是那个时代的产物。
中国的信息化有着自己鲜明的特色,就是大集中。这个有着行政上执行便利的考虑,也有人们思维惯性的考虑,这里就不细说了。
从这个意义上来讲,只有在中国现有的条件下,才有可能建立一整套的大集中系统,而这在其他地方是不具备条件的。
别的不说,光客票系统直接和公安的人口信息系统连接,在很多国家都是不可能完成的任务。因为绝大部分国家根本没有完整的户籍管理制度。
//-------//
谢谢大家捧场,补充一点其他内容。
想当年也是20年前了,曾经接触过一次飞机票的代理系统,当时每个代理点需要拉一条专线到航空公司的票务中心,然后利用telnet登录上远程终端。通过在终端输入命令,来完成飞机票的订票交易。当时订票的逻辑就是先可以锁定一张机票,然后再进行一次确认,或者把这张票退掉,如果超过锁定时间,可能会被强制退掉。这样就有以下几个交易代码:查询,预订,确认,取消。这套票务系统是全球通用的,后台是一套大机系统,然后通过层层分布的前置机推广到全球来使用。这套系统的开发时间,应该是上世纪七八十年代了。
那次交流的时候,订票点给我们详细介绍了飞机票的订票全流程。因此在后来又听别人介绍火车票的订票流程的时候,才有这样的共同点存在。
现在的人一想到票务系统,出于惯性会认为那个系统一定是基于数据库的,然后就掉到事务,数量这些细节里面了,不能自拔。其实最早期的票务系统是基于文件和报文来处理的,那时可能都没有成熟的数据库系统存在,因此也就不存在现在困扰大家的数据一致性问题和事务管理问题。而如果是完全基于文件系统来设计和开发票务系统,那就会走向完全不同的一个架构体系了。
国铁TRS用25年时间,就超越了JR从国有时代起建设了60年的MARS。
自称第二,没有人敢称第五的水平。
还选个毛
几个老头,谁能活到11月谁自动当选
希腊罗马伪史论,都已经够奇葩了。
还没过百年呢,没想到苏联伪史论的都有了。。。
这片先不说好坏,的确非常好莱坞。
1 片子的核心就是每个白人小伙都应该有一个黑人兄弟,这个黑人兄弟最后会通过牺牲自己帮助白人小伙完成的目标,当然,白人小伙也会复活他,最后黑人兄弟应该放下枪,和白人小伙牵手奔现。
2 印裔员工头脑聪明,惯于见风使舵,是工作中的好伙伴也是老板最忠心的属下(他都不需要老板的尊重),当然,印裔小伙最终还是欧美世界的好朋友,就算翻过错误最后还是会幡然悔悟,成为正义的朋友
3 只有GTA5游戏里面才会天天有人抢银行,天天看到尸体,这样的日子其实也没有意思,还不如最后玩动森或者恋与制作人。为什么,因为虽然电影里女主说没有,但现实生活中也有64万具疫情死亡尸体啊。
4 再度潜意识强调了华裔在社会甚至地球上在欧美视角应该有的地位:他们应该是公司里boss老板一出场衬托白人权威的那句“你被炒掉了”的一脸懵逼的对象(想象下如果这个片段对象是黑人会怎么样,当然黑人也似乎不太应该出现在it公司)他们应该是海边沙滩旁卖着冰淇淋的小商小贩,因为语言不过关,只能跟着顾客的欢乐而不明所以的尬笑。他们应该是全球直播时候几十个人挤在一个连年阴雨地方小面馆里抠脚吃面的迷茫群体,尤其是小孩只有看自由(城)游戏直播而没有玩自由(城)游戏的资格和条件,尤其是对比出门左转的日本小孩(还能上电视)。
5 补充一个,如果把游戏看成真正的社会,npc是社会里的底层老百姓,那么本片给出的指引就是,如果觉得对目前阶级固化后一成不变的生活不满了,要么就是接受,要么就是自己(划重点:自己)找点事做,比如学新的咖啡煮法或者写本书让自己经济独立,这个系统是不会来管你的,因为他只是为有钱的玩家们设计的,需要照顾的是有钱的玩家的体验。如果这样还是实在忍不了,你们可以聚众喝喝小酒听听小歌,别搞暴力活动,这样最终会等到有一个救世主(guy)站出来把你们一起带到幸福的彼岸。
6 最后来扯个蛋:如果把free city视作隐喻的美国社会,npc就是可以任由社会制度摆布的最底层大众,充钱的player就是有投票权和一定掌控权的资本,boss就是随时随地可能歇斯底里的特朗普式总统(他被观众嘲讽的用斧子看服务器的行为像不像川国要建墙?)。那么当free city发现可能的混乱时,boss两次选择了shutdown,结果就是被愤怒的player拒绝买游戏的方式投掉了他在游戏领域的地位,最后更追求环保生态体验的游戏版本得到了更多npc和player的推崇。敢情这东西还是民主党的宣传片?
商场运营方的本质是物业公司,
想各种办法吸引人流过来,接着招商,目的是收取租金,然后涨租金。
所以这个问题的本质,是来福士想要吸引的大批顾客群体,他们是不是在意棒棒入内。
如果他们其实希望棒棒不入内,那么来福士不过是个手套防火墙而已,抵挡了来自网络和外界的骂名。
如果他们反对禁止棒棒不入内,那么就算没有这个报道一段时间后来福士自己也会被用脚投票的顾客教做人。
商场是否以为棒棒影响了形象不重要,最终用户怎么想的才重要,想想谁掏钱?
所以,到底是顾客有这样的需求而商场才这么去干?还是商场自以为是的猜测了顾客的需求呢?这只有顾客自己知道了。