主题:【原创】身为码农,为12306说两句公道话 -- 代码狗
拍卖法可以留给高铁和动车的一等座商务座观光座软卧什么的,反正坐这些座位的人多数都是市场经济的拥趸,就让他们爽一把。
抽签法:这个方法是比较公平的,但是时间上不能给乘客即时的结果。乘客需要一段时间才能知道自己买票是不是成功,这种情况下会非常纠结:要不要考虑别的回家方式呢?
如何防止黄牛?在现行抢票式售票方式下,我建议这样做:
1.预存票款,抢票成功后即时扣款。这个方式下,黄牛如果要抢票,需要大量的资金投入。
2.为了防止黄牛将退票款转嫁给购票人(其实也可以理解成购票人花高价委托黄牛购票——此时两者是利益共同体),本车次的票一旦售罄(判断车票是否热门),那么该车次的所有车票即进入“不准退票”状态。此规则可事先声明。也就是说,车票一旦售罄,找黄牛也没有用。黄牛抢下来也没法子把车票上的身份证号换成你的。
3.凭身份证进站。这是必须的。
以前焦点访谈还说了个黄牛卖票的方式:
譬如北京到上海的票紧张,黄牛先用自己的身份证买下若干北京到上海的票,让乘客以自己的身份证到窗口买一张同车次的短途站票(譬如北京到沧州的)并据此上车,上车后就可以坐黄牛给他的票的座位。要解决这个问题,还要加上一点:
4.列车发车后,没有上车的乘客的票即时回仓在下站继续出售。
收到退票,在网站上公布退票人,退票时间,身份证号码,总之,证明票不是铁路内部有意保留。
然后,退票进入拍卖系统,价高者得。
为啥只有铁老大的是“资深推荐”。而别人只能通宝推?
比如 用户在打开12306网站的购票页面的时候,12306的后台服 务器就同时开始计数,这个时间可以限定一个数字比如说60秒。只有过了这60秒才可以正常的购票程序,而这60秒的时间里,12036的后台可以给这个用户的IP排队,进入排队序列。
当用户正确输入验证码之后,12306的后台在给用户第二次排队60秒到180秒,这样理论上可以防止抢票插件带来的时间优势,因为这个时候,如过没有这个限速的化,使用插件的机器永远比人快。
同时这第二个限速时间也正好可以使12306的后台,有足够的时间来完成给用户购票的任务。
当用户确认购票之后,在来个二次确认,这个时间段在来个60秒左右的限时限速。同时使12306的后台把下个要购票的用户IP进入排队序列。
总的来说就是认为的放大12306购票时间的,这样的化,理论上就给了12306后台足够的时间来处理一系列看似变态的数据处理任务。
既然不能无限制的扩大后台的处理能力,那在后台处理能力的范围内,限制前台进入后台的进入量和进入时间,给后台留下足够的处理时间,可否。
同时 12306网上购票本身也要做个限制。就是把提前购票的时间放大,把结束购票的时间放短,比如楼主说的的G71 如果以前12306的购票时间是车次发车前的7-1天,现在(或是单单的春运及节假日),把它改成30-7天。
读多写少是确实的,但实际上也不需要为每个查询都查一遍。网页刷新一次怎么也要几秒时间,在用户查到余票后发出下单命令之前肯定又经过了若干秒,所以就算查到有余票也未必就能买到。反正余票显示不可能是实时的(只能算是准实时)。既然如此,网页显示的余票数量也不需要太精确。那么干脆这样好了:
系统定期(譬如每隔5秒)查询一下136个商品的数量,做好缓存。如果有网页来查询余票,只需要在这136个商品中查到期望的那1个就好。本来为每个网页请求都要查询一下的,现在只需要每5秒查询一次,每次实际查询136个商品数量,查询数量极大地缩小了。
如果出一张01号站到17号站的票,就把SKU01/SKU02....SKU16这16个SKU的库存都减一。
这样设计,就读写两便了。
大家都用就不是插队
都是在inventory。其实要说起来,航空公司的inventory更加复杂,还包含了定价的部分。火车票至少在固定车次固定日期的固定票价是一致的,不会随日期变动。而航空公司的定价是随若干因素变化的,包含历史因素,节假日因素,供应因素和剩余票量因素。所有这些因素都是实时计算来订出票价的。感兴趣的朋友可以去搜索一下,所有著名的相关系统,不管是sabre还是amadeus或者国内的航信,核心技术难题必定在这一块。
当然,12306的量确实大。我认为和amadeus的全球数据中心有得一拼,在春运的时候应该更高。但是前台电商的部分和后台inventory的部分一定要分开。
最后说一句,定价其实是一个很有趣的技术,也应该算是高精尖了,可惜据我所知国内没有公司做相关产品。目前国际流行的基本是美国公司的技术
技术再完美,对于购票人能否买上,关键靠运气(提交时间毫秒、微秒级的差异)。全额预交票款,然后抽签,退票款限定只能用于火车票消费。再现有条件下,一定要最大化黄牛的成本,阻止所有抢票插件,尽量公平才是王道。
没有网上售票前,铁路系统的票也是联网的。
他们肯定有最优化的模型/模式来售票,他们自己的事还得是他们自己人来搞。
毕竟他们卖火车票卖了那么多年,现在只不过是销售渠道变了。
技术上当然越完善越好,但是12306的关键性问题不是技术问题,而是运力与集中性的需求之间的矛盾。需要网站技术与其他规定相结合才能更好的解决问题。
要打击黄牛,严惩黄牛,必须把铁路车票黄牛与一般票务黄牛区分开来,严惩铁路黄牛,尤其是春运期间。黄牛一旦被抓蹲个三五年,看谁还敢倒票?
另外根据往年不同车次的热点程度做一下价格区别,比如,同样是从北京到贵州,最好的车次票价贵上20%-30%,依次区分开来,让需求分散。防止出现集中抢同一车次的票的情况。
另外网站注册实行实名制。每个ID买自己同名的车票无限制(也要限制一点,比如春运期间一个人最多只能购买多少公里以内的车票),如果是帮别人买票,一次春运期间只能买N张。连续时间最长没有改签或退票记录的ID,以后可以优先购票。
写到这里,我在想如果我们的身份证可以刷卡就好了,乘车用身份证刷。每个身份证留下铁路乘坐记录,按记录分等级,买票时等级高的人优先。从来没买过票的人等级当然不会太高,买过票并且每次都按时乘坐的,信用等级最高。这办法还算公平吗?
首先火车班次比飞机多多了。
再次飞机可没有中途下机的说法,就算转机就转一两次而已。
冻结黄牛的资金流 现在主要抢票的手段是占坑 那么现在一个对应办法就是
1 预购制度 我有意愿要买 在放票前三天就可以打钱进预购了
2 放票后 资金只出不进 如果黄牛占坑了 那么好给你三天时间出票 取票不收钱 以后每长一天取票也有收钱 哪怕退票也要给
3 也就是说 持有环节要加钱 而且资金只出不进 黄牛需要大量资金来抢退票
让整个交易环节成本增加,对于不要票的人来说,只要三天退票问题不大
对于没有买到票的人来说 只要资金不出去都机会
http://www.guancha.cn/society/2014_01_13_199420.shtml
这个链接作者几乎是指名道姓的批判楼主.......,当然,这个文章本身没有给出任何技术方案,档次还是差不少.