春运开始!12306今年及格了吗?

  • 来源:中国计算机报
  • 关键字:春运,12306,购票,阿里云
  • 发布时间:2015-02-10 12:43

  2月4日,2015年春运开始的第一天。

  今年春运客流量预计将再创新高,达到突破历史的28亿人次。火车运输线路从今天开始繁忙起来,12306则凭借提前预售度过了业务高峰。看来,给12306提前打分的时候到了!你是28亿人次当中的一员吗?今年回家的火车票是通过12306购买的吗?你认为12306今年的表现及格了吗?

  我知道,你不是12306的粉丝。各大网站皆有粉丝,唯独12306可能是没有粉丝却登录者过亿的网站。我知道,你可能是吐槽一族,不过打分之前先放下情绪,真的有必要科普一下这个和你的幸福紧密相关的12306。

  云很受用 但不是神器

  你肯定要吐槽的是,每到春运购票期间12306就会瘫痪数次,这在技术上叫作无法有效应对高并发访问。很多网友早就高呼:让淘宝来解决吧,“双11”,“秒杀”,人家不都没问题嘛。

  前几天网上吐槽最多的就是,马云的阿里云今年果真帮了12306的忙。公开的信息是12306租用了阿里公有云,将75%的余票查询分流到公有云上,而火车票查询业务占12306流量的90%以上,因而云有效缓解了12306自有系统的压力。其实,诸如12306这种流量高峰低谷明显的网站,最适合利用云的弹性和按需付费的支付方式,在保障业务高峰稳定运行的同时,还可节省大量的系统采购成本。

  网民们惊呼淘宝有了大用,依旧有人吐槽12306低效和不包容。不可否认,云是今年12306的一大进步,不仅在技术上更在包容度上,但真实情况并不像看到的数字那么简单。是否买到火车票取决于购买而不是查询,即火车票的交易系统,阿里云支持的余票查询流量虽大,但交易核心就目前公开信息来看还主要是12306对自身系统进行了升级。

  复杂交易 一疏一堵

  为什么12306不能照搬淘宝的“双11”和“秒杀”技术呢?因为,12306的交易逻辑更为复杂,最主要的就是动态库存的复杂对应关系。简单理解就是,“双11”和“秒杀”基本都是拍走一个,后台库存就减一个,这是简单的一一对应关系。

  但是火车票堪称最复杂的商品交易逻辑,这源于车辆段内的多个站点。以北京到上海高铁G11为例,要途径济南、曲阜、南京、常州、上海共5站,而车票的品种却包括多种排列组合。如果北京出发,就包括北京到济南、北京到曲阜……北京到上海5种车票,而济南出发又包括4种,以此类推会出现15种不同的车票。如果卖出南京到常州车票,意味着后台多种车票的数据库都将同时发生变化,如果再遇退票,复杂程度超出想象。而12306必须采用疏堵并施的措施。

  “一疏”,即12306采用了关键的Pivotal GemFire内存计算技术,逐一改造了12306的余票查询系统、订单查询系统,以及订票系统。在内存计算之前,查询与购买的数据库并未进行分离,这就会出现数十人查询,而只有一个人购票的问题,而且,同一个数据库瞬间并发大流量检索,传统的从硬盘上读写数据的方式已经无法满足需求。而内存计算可以在内存上实现数据读写,因而可以通过增加服务器部署规模,实现线性性能扩展。

  “一堵”则是一种逆向思维的缓解方法,即为了避免流量过大引发系统瘫痪而设定上线阈值,阈值之外的请求必须排队。不明白?知道圆珠笔笔芯的故事吗?曾经圆珠笔和钢笔的笔芯一样粗,可一书写到2万字,圆珠就会因磨损而出现漏油。当大家苦于无法找到既耐磨又便宜的圆珠材料时,日本发明家中田藤山郎却出人意料地解决了这个问题:将笔芯油墨量控制在2万字以前用完。圆珠笔的笔芯就是这样变细的。

  移动购票 追赶BAT脚步

  今年12306还有一大看点,手机购票客户端应用程度大幅提高。其实从2013年开始,12306就尝试实现移动APP购票工作,经过2014年整年的部署和改进,今年移动端购票比例得到大幅提升,手机端最高每天卖出130万张车票,占整个互联网售票数量的1/4。对比一下淘宝就知道移动互联势头正劲,在去年的“双11”大促活动中,淘宝就专门计算了通过移动互联网产生的交易量,金额几乎占据半壁江山。12306作为用户数量最多的电子商务网站,自然也将手机购票客户端作为一大发展方向。

  其实这反映了12306 IT架构之变。12306先是采用通用x86服务器逐步替代原来的小型机,又在今年进行了大规模的基础设施扩容,扩容设备不仅包括传统的机架式x86服务器,也包括最新的浪潮SmartRack整机柜服务器,实现了从RISC向IA架构、从集中式到分布式架构、从通用到定制化、从国外产品到国产产品的转变。分布式系统更能应对弹性高并发的购票需求,而定制化的整机柜则能按需配置,并大幅降低总体拥有成本,在BAT等大型网站中从去年开始大规模流行。

  据悉,今年12306移动购票的后台系统,包括手机接入服务器、手机消息推送服务器、手机应用服务器、微信服务应用服务器也终于全面换成了SmartRack整机柜服务器。从技术上看,今年的12306不仅应用了公有云、移动互联,也用上了整机柜,这意味着12306终于跟上了BAT的脚步。

  当然,BAT可以帮你搜索到你想要的信息,购买到你想要的商品,联系到你想要联系的人,但是,12306却不能保证让你能拿到春节期间回家过年的火车票,而今年客流量已经达到28亿人次。技术问题也许不是问题,而人为因素实在太复杂,观念、机制、人口数量、地域经济的不平衡……你都有理由吐槽发泄,但是区区一个网站可能只能解决或者缓解技术问题。

  那么,你认为12306这个网站今年的表现及格了吗?

  本报记者 陈翔

关注读览天下微信, 100万篇深度好文, 等你来看……