12306.cn 使用 Gemfire 技术为查询提速

12306.cn是世界规模最大的实时交易系统之一,媲美Amazon.com,节假日尤其是春节的访问高峰,网站压力巨大。2012年初的春运高峰期间,每天有2000万人访问该网站,日点击量最高达到14亿在春运高峰,经常崩溃,无法登录,怨声载道。

2012年3月开始,原铁道部开始调研、改造12306。2012年6月选择了Pivotal GemFire(分布式内存数据库)改造12306。一期先改造了余票查询系统。9月份完成改造后上线。2012年国庆,虽然订票依旧悲催,但是查询余票很快。2012年10月份,开始改造订单查询系统。2013年春运期间,虽然订票依旧不给力,不过查询自己的订票和下订单还是比较快的。

12306 performance

根据12306的系统运行数据记录,采用GemFire改造之后,十几台X86服务器就实现了以前数十台小型机的余票计算和查询能力,单次查询的最长时间从之前的15秒左右下降到0.2秒以下,不足原来的1/75。新系统支持每秒上万次的并发查询,高峰期间达到2.6万个查询/秒吞吐量,整个系统效率显著提高。如上图所示。

订单查询系统改造,在改造之前的系统运行模式下,每秒只能支持300-400个查询/秒的吞吐量,高流量的并发查询只能通过分库来实现。改造之后,可以实现高达上万个查询/秒的吞吐量,而且查询速度可以保障在20毫秒左右。

新的技术架构可以按需弹性动态扩展,还可以通过动态增加X86服务器来应对更大并发量,保持毫秒级的响应时间。

GemFire属于内存数据库技术,提供只有内存才能提供的性能。它非常适合于要求对数据进行实时访问、高并发的新式应用程序的需要。通过使用 GemFire 管理内存数据,可以省去传统数据库由于 CPU 周期、网络流量、数据库访问延迟等导致的高额数据库事务成本。能省去诸多延迟也是项目目前用内存数据库的原因。GemFire内存数据服务还可以与 HAWQ搜索引擎整合,为Hadoop增加SQL表达能力,利用Hadoop作为公共存储基础。

12306之前采用Unix小型机,采用GemFire技术后,改用Linux/X86服务器集群架构,在降低成本的同时,性能还提升了一个数量级。

12306 arch


编撰 SegmentFault

你可能感兴趣的:(gemfire,高并发)