您现在的位置是:首页 > 领风资讯 > >> 返回

[行业动态]分布式内存数据技术为12306网站查询提速75倍

中國(guó)铁路客户服务中心网站(www.12306.cn)是世界规模最大的实時(shí)交易系统之一,媲美Amazon.com,节假日尤其是春节的访问 高峰,网站压力巨大。据统计, 在2012年初的春运高峰期间,每天有2000万人访问该网站,日点击量最高达到14亿。大量同時(shí)涌入的网络访问造成(chéng)12306几近瘫痪。 中國(guó)铁道(dào)科學(xué)院电子计算技术研究所作为12306互联网购票系统的承建单位,急需寻求办法解决问题。


2012年3月開(kāi)始,铁路总公司(原铁道(dào)部)開(kāi)始调研、改造12306。2012年6月选择了Pivotal GemFire分布式内存计算平台(Distributed In-memory computing)改造12306,由铁科院项目小组负责人王明哲主任和资拓宏宇(IISI)信息科技有限公司在铁科院主管朱建生所長(cháng)领导下提供技术实 施。一期先改造12306的主要瓶颈——余票查询系统。9月份完成(chéng)代码改造,系统上线。2012年國(guó)庆,又是网上订票高峰期间,大家可以显著發(fā)现,可以登录12306,虽然還(hái)是很难订票,但是查询余票很快。2012年10月份,二期用GemFire改造订单查询系统(客户查询自己的订单记录)。2013年春节,又是网上订票高峰期间,大家可以显著發(fā)现,可以登录12306,虽然還(hái)是很难订票,但是查询余票很快,而且查询自己的订票和下订单也很快。

  根据系统运行数据记录,技术改造之後(hòu),在只采用10几台X86服务器实现了以前数十台小型机的余票计算和查询能(néng)力,单次查询的最長(cháng)時(shí)间从之前的15秒左右下降到0.2秒以下,缩短了75倍以上。2012年春运的极端高流量并發(fā)情况下,系统几近瘫痪。而在改造之後(hòu),支持每秒上万次的并發(fā)查询,高峰期间达到2.6万个查询/秒吞吐量,整个系统效率显著提高。如上图所示。

  订单查询系统改造,在改造之前的系统运行模式下,每秒只能(néng)支持300-400个查询/秒的吞吐量,高流量的并發(fā)查询只能(néng)通過(guò)分库来实现。改造之後(hòu),可以实现高达上万个查询/秒的吞吐量,而且查询速度可以保障在20毫秒左右。

  新的技术架构可以按需弹性动态扩展,并發(fā)量增加時(shí),還(hái)可以通過(guò)动态增加X86服务器来应對(duì),保持毫秒级的响应時(shí)间。

  梦裡(lǐ)寻它:技术革命一步跨越三代

  12306能(néng)够取得這(zhè)样翻天覆地的效果,靠技术上的小修小补是不可能(néng)的,必须有全新的思路,能(néng)够给性能(néng)提升带来杠杆式的作用。12306發(fā)现GemFire分布式内存数据平台就(jiù)是這(zhè)样一種(zhǒng)技术。



GemFire分布式内存数据平台的技术原理如上图所示:通過(guò)云计算平台虚拟化技术,將(jiāng)若干X86服务器的 内存集中起(qǐ)来,组成(chéng)最高可达数十TB的内存资源池,將(jiāng)全部数据加载到内存中,進(jìn)行内存计算。计算過(guò)程本身不需要读写磁盘,只是定期將(jiāng)数据同步或异步方式写 到磁盘。GemFire在分布式集群中保存了多份数据,任何一台机器故障,其它机器上還(hái)有备份数据,因此通常不用担心数据丢失,而且有磁盘数据作为备份。 GemFire支持把内存数据持久化到各種(zhǒng)传统的关系数据库、Hadoop库和其它文件系统中。

 大家知道(dào),当前计算架构的瓶颈在存储,处理器的速度按照摩尔定律翻番增長(cháng),而磁盘存储的速度增長(cháng)很缓慢,由此造成(chéng)巨大高达10万倍的差距(如上图)。這(zhè)样就(jiù)很好(hǎo)理解GemFire为什麼(me)能(néng)够大幅提高系统性能(néng)了。

  按照计算与存储的关系,我们可以將(jiāng)计算架构分为四代:

  第一代,基于磁盘的单一系统:计算過(guò)程中需要从磁盘读取数据。小型机、大型机是其中的佼佼者,將(jiāng)单一系统的性能(néng)做到极致。

  第二代,基于磁盘的分布式集群系统:计算過(guò)程中需要从磁盘读取数据,但通過(guò)分布系统將(jiāng)数据分散到不同的服务器磁盘上,提高整个系统的处理能(néng)力。目前很多大型互联网和电子商务公司采用基于X86服务器的分布式集群系统,依靠海量的X86服务器部署解决高流量并發(fā)的问题。

  第三代,基于内存的单一系统:將(jiāng)整个数据库放在内存中,计算過(guò)程不需要从磁盘读取数据。整个系统的性能(néng)取决于单一系统的性能(néng)。传统的内存数据库就(jiù)是這(zhè)样的系统,對(duì)于企业级的应用可以很好(hǎo)地解决访问速度的问题,但面(miàn)對(duì)海量数据或是海量并發(fā)访问的扩展性问题就(jiù)无能(néng)为力。

  第四代,基于内存的分布式集群系统:GemFire就(jiù)是這(zhè)样的系统,并行计算是其关键技术之一,因而可以通過(guò)增加服务器部署规模,在内存计算的基础上,线性扩展性能(néng)。


12306之前采用Unix小型机架构,采用GemFire技术改造成(chéng)Linux/X86服务器集群架构,就(jiù)意味著(zhe)一下跨越三代。从小型机到大内存X86服务器集群,不仅让性能(néng)提升了一个数量级,而且成(chéng)本也要低得多。

  GemFire是Pivotal企业级大数据PaaS平台的一部分。Pivotal公司的企业级大数据PaaS平台主要有三个层次:云基础架构 层Cloud Fabric、大数据基础架构层Data Fabric、应用開(kāi)發(fā)基础架构层Application Fabric。GemFire属于大数据基础架构层,此外,Greenplum数据库也属于這(zhè)一层;云基础架构层的技术是Cloud Foundry;应用開(kāi)發(fā)基础架构层的技术是Spring Framework和RabbitMQ等。

  對(duì)于此次引入GemFire技术的改造,中國(guó)铁道(dào)科學(xué)研究院电子计算技术研究所副所長(cháng)朱建生表示:“通過(guò)技术改造解决了困扰我们多時(shí)的尖峰高流 量并發(fā)问题,让全國(guó)人民不再因为技术原因而抱怨,我们终于舒了一口气。Pivotal GemFire分布式集群内存数据技术對(duì)整个技术改造發(fā)挥了关键的作用。同時(shí),感谢Pivotal公司及其实施方项目团队的努力,在技术開(kāi)改造過(guò)程中确保 旧系统顺畅运行、旧系统到新系统平滑迁移,快速实现新系统的上线。”