说说12306,呆在深圳就只能一直抢票

    修改一下文章,标题也修改一下,之前叫《决定软件不是技术》,其实主要是写决定软件并不是技术本身,而是你对软件本身的定义或者说是对软件解决问题的定义,而技术只是实现的一种手段,感觉自己表达能力太烂,还是直接吐槽一下12306好了。


    在深圳工作,每年过年都免不了要抢火车票,最开始思考这个抢火车票问题是15年底。一年内离职两次,在家呆了有四个月,过年回家的意愿并不太高,下了几个抢票软件用手机慢慢在抢,突然无聊想到自己为什么要抢票?——因为回家需要火车票;那为什么要抢?——因为火车运力有限,总有人拿不到,只能靠这个来选人。

    然后突然感叹了一把:“火车票作为特定时间内的稀缺资源,就应该摇号。每天一个身份提交一次就够了,根据其最近订票、退票、联程需要、要求时间、随机因子等信息加权处理。要不就所有人都订阅,然后内部随机排序,有票时挑前面的人进行推送,反正看脸,也省得浪费时间。硬要所有人都开着软件狂刷你的服务器,打破各种没有商业意义记录,体现你们的技术含量才爽。”

    当时刚吐槽完不久,12306开始走商业化广告,现在好像撤了,反正我很少自己登陆上去抢票,基本也是手机软件。


    12306开推出时,便遇到各种问题,网上也流行过一波为其解决刷票的技术讨论,但从那个时候开始,我不再认为12306是一个海量并发请求问题,而认为是一个海量筛选信息筛选问题,如何选出真正需要火车票的人,而只所以成了海量并发请求问题,不过是系统设计者设计成了这样。


    抢火车票根因是运力问题,但这个根因很难解决,涉及方面也非常多,所以不讨论根因,只讨论问题。对于竞价市场调节机制都忽略,因为这是一种公共社会资源,还不敢明目张胆。

    将12306视为一个筛选系统,那抢不过只是一种筛选手段,以速度来决定,看起来也非常公平,也符合逻辑,但引发的问题也很糟糕:火车票可能随时放出,没有票的人就会一直查询,因为快慢决定结果,所以会用各种插件来加快,从而带来恶性循环。这个行为很正常,但却没有意义!抢火车票是一个只在乎结果不在乎过程的问题,不会因为你手工抢几万次而产生价值。

    采用摇号机制便不会再有上述问题,但会引入其他问题。信息被盗用是目前最常见,虽然现在可能也存在盗用真身份证信息锁其他区间票,但摇号会这问题影响扩大,所以身份认证和信用机制对行为加以惩戒;无手机号者可让代售点进行预约;算法中的加权因子对外公布保证公平性,采用加权因子来规范订票过程中的屯票行为。

    做为一个筛选系统,筛选出正确的人才是系统价值所在,如果能降消耗便更好。首先是正确的人,对于花精力抢票的人,每一个都需要火车票,给谁都是正确的;然后便是消耗,抢票最大消耗在服务器和人们花在抢上面的精力,摇号最大问题在核心算法公平性。

    抢行为的无意义性就不讨论了,说说摇号算法公平性。摇号决定优先级的因子很难做到绝对公平,如买票后退票,很可能是客观原因造成,却影响后面再抢优先级,对当事人肯定不公平,但如速度决定一样,你也没有绝对把握能抢第二次,甚至系统可以剔除这个因子,直接所有人随机,之所以引入因子是引导行为,有时软件并不只是实现功能,她本身就可以体现设计者意志与初衷。可预见的是算法的复杂度会非常高,场景也会非常多,可能从某种意义上倒和现在的人工智能或大数据比较贴切。


    当下黄牛盛行,各种云抢票软件猖狂,但从某种意义救了12306。当年12306刚出来,被各种刷票软件刷崩,一直在提升后台技术应对,拉高门槛。现在一些抢票软件并未大面积流行,而且高性抢票软件并未流入到个人,全民刷票时代结束,转而进入黄牛时代,让量级得到收敛。云抢票盛行,让通道也得到收敛,他们并不敢太过分,云抢票可以控制大量账号在1s内用不同账号到毫秒级别的查询,有票时根据加价来筛选下单账号,这也就是他们的资源,至于查询次数随便写也一样。

    上面的方法并没有什么不对,每个号查了去下单,和一个号查了所有号去下单一样,只是在之前的速度筛选,由于黄牛的存在已经变成了金钱筛选,而筛选的人是云平台,而参与筛选的人是用云平台的人,双方都是你情我愿,和12306无关。12306甚至可以站在道德角度斥责黄牛(云平台也是黄牛),但这和没有买卖就没有伤害是一个道理,更应该斥责找黄牛的人吧。


    其实这些年,铁路局也做了不少事,首先火车票收益是随着运力在变的,尤其是春节这种时候从一开始便注定了多少收益(票全部售完是必然事件)。但为了更好的购票从最传统排队买票到电话订票,再到互联网订票,一直在方便用户,但资源的有限让这种方便成了更好的死循环,没有票所以一直要打电话,而且一堆人帮着打,没有票所以一直要抢票,而且是一堆工具帮着抢。看似减少的社会消耗却在另一些地方增长,并扩大至整个预售期。


    当年想着摇号机制是先交钱的,这样在整个售票期便会形成一个很大的资金池,想着还能赚个利息钱,然后明白了当年60天售票期的意义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值