每售出一张票,都会造成巨大的资源浪费;而我觉得可以用预售票这个方法解决。 火车票难买一般就发生在国庆和春运。以前是线下找黄牛买,现在转变为线上加价买,可以理解为黄牛正规军了!以前习惯能买到票的方法,如今都不怎么好用,而且每年都会有新的变化,还要去寻找更好的买到票的方法(守株待兔12306的人是最傻的)。 数据分析 2018春运期间 12306 日均页面浏览量 556.7 亿次,最高峰1月12日,一天之内涌入了 813.4 亿人次,余票查询服务720亿次,当天发售车票1029.7万张。在1小时点击量方面,最高也达到了59.3亿次,这意味着平均每秒就有 164.8 万人次在和你争夺这张车票。 文字看不出细节,弄成表格,1.12号当天,预估2亿人在刷票的话,每人会打开12306网站至少360次,来看余票量: 上面的数据不准的地方是:2018年云抢票已经很火了,消耗用户的精力就是一两次,大部分的浏览,查询都是程序在后台发起,默默的帮用户在看余票,抢票。 按用户购买火车票的场景:访问首页>输入时间和地点,进入余票页>选中车次,预订,进入订票页 > 输入乘客信息,选座,提交订单,进入购买成功页 当车票充分空闲时,最常见的就是购买成功1张票,进入首页1次,进入余票页1次 而2018.1.12号达到了多大的浪费? 购买成功一张火车票:额外付出了7000多倍的成本。 互联网购票还是有成本的: 网络带宽成本 耗电成本 高峰期占用机器成本(虽然阿里云有动态调节能力) 研发支持更高并发,更高处理性能的软件成本 而且这种成本是翻倍的,因为一端是发起抢票的服务器,一端是等着被抢票的12306服务器 而他们每年不断技术升级带来的只会是单张火车票抢购次数的增加(上万次查询次数),而无法刷出更多的火车票来。 解决方案 在有限资源无限需求场景下,无论哪种解决方案,最后的结果都是一部分买到票,一部分人买不到票;当前的抢票模式以及未来可以预见的技术升级,只会带来更多的互联网资源浪费 火车票目前还属于国家资源,12306是拿着国家的钱在做技术升级道路上越跑越远,这就是浪费国家资源啊! 购票的商业模式需要做大的转变: 与固定的几家企业签署协议,开放接口,按使用次数进行付费调用;做到业务又开放,又不乱开放。(成功案例比较多,Twitter,布隆伯格,新浪微博等) 牵引用户使用12306移动客户端买票(移动客户端容易识别是人在买票,人消耗资源就可控了,不会像机器升级那么快的消耗资源) 火车售票高峰期采用预售票模式,减少资源浪费,尽量保证公平性。采用计划经济思路对待春运高峰。 预售票的规则 规则的制定,会带来一部分人得利,一部分人失利,被失利人士吐槽/抨击是必然的。但是总要有所取舍,有所导向的; 规则会有各方人士博弈,最后会有权衡结果,达到所谓的平衡。 后台使用算法,对订票的用户进行权重计算,判断哪一位更适合拿到这张车票 规则1:对忠诚用户的倾斜(年度乘车次数最多的,年度里程数最多的) 规则2:对加价用户的倾斜(用户主动加价,给国家创收,让国家能更好的调度资源为他们服务) 规则3:对提前的用户倾斜(用户提前花钱下单,提前越久说明计划性越强, 农名工就是这样的群体,他们基本上都是一年来回一趟,值得倾斜) 规则4:对军人/残疾人士的倾斜,符合国策,当前买火车票也是对他们倾斜的 规则5:对于包容性强的用户倾斜(车次时间有好有坏,换乘比直达更差,对这个包容性强的可以倾斜,买到票,而且还可以在价格上优惠) 预售票的好处 提前半年就开始预售春运火车票,更准确的统计全国大迁移的整体趋势,以前依托往年的春运经验更多是预估,偏差会大; 提前得到用户动向,能够做班次的调整;以前只能在AB两点增加运力。现在可以增加换乘解决方案,将用户导流到其他主干线上(A->C->B),(A->D->B)只要目的地还是B,中间换乘还能尽量考虑用户下车就能换乘上, 比用户自己去折腾多张票效率高; 计算力的节约是肯定的了,80%用户的票都提前买好,剩下的用户再购票对服务器的压力就小很多了。 用户省心了,很多用户都是一年回一趟老家,然后又出来奋斗。 提前订好票能让他们更集中精力奋斗。 预售票的坏处 对临时性购票用户的不公平,他们可能只能分流到更差的时间(除夕当天),更贵的交通(飞机),更拥挤的空间(站票), 在任何售票模式都存在这样的分流,只是落在谁头上的区别; 春运期间如果有突发情况(大雪,机车故障,事故),会导致预订车票用户走不了,形成连锁反应,又会激发新一轮的抢票,导致系统奔溃。 春运40天,如果是局部地区,某几天的影响,需要再次购票人数基本固定的情况下,影响波及范围有限,服务器可以平滑扩展,比现有抢票机制占用的资源少很多。 用户更换行程的不方便,有舍有得,得到票就要限制自由;想自由,就变成临时性购票用户;