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

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

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


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

image.png

根据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服务器集群架构,在降低成本的同时,性能还提升了一个数量级。

image.png


相关文章
|
JSON 数据格式
Feign调用文件下载服务接口实例
Feign调用文件下载服务接口实例
1622 0
Feign调用文件下载服务接口实例
|
9月前
|
Cloud Native 关系型数据库 分布式数据库
阿里云PolarDB与沃趣科技携手打造一体化数据库解决方案,助推国产数据库生态发展
阿里云瑶池数据库与沃趣科技将继续深化合作,共同推动国产数据库技术的持续创新与广泛应用,为行业生态的繁荣注入更强劲的技术动力。
阿里云PolarDB与沃趣科技携手打造一体化数据库解决方案,助推国产数据库生态发展
|
存储 关系型数据库 MySQL
PolarDB的特点
【5月更文挑战第13天】PolarDB的特点
687 1
|
自然语言处理 达摩院 数据挖掘
[大语言模型-论文精读] 阿里巴巴-通过多阶段对比学习实现通用文本嵌入
[大语言模型-论文精读] 阿里巴巴-通过多阶段对比学习实现通用文本嵌入
|
Oracle Java 关系型数据库
jdk17安装全方位手把手安装教程 / 已有jdk8了,安装JDK17后如何配置环境变量 / 多个不同版本的JDK,如何配置环境变量?
本文提供了详细的JDK 17安装教程,包括下载、安装、配置环境变量的步骤,并解释了在已有其他版本JDK的情况下如何管理多个JDK环境。
27859 0
如何撰写一份清晰有效的说明文档
在软件开发、产品开发以及各种工作任务中,编写一份清晰有效的说明文档是至关重要的。一份好的说明文档能够帮助读者理解事物的背景、目标和操作步骤,提高工作效率,减少沟通成本。
|
编译器 芯片
proteus并行接口芯片8255A的应用—键盘与数码管
proteus并行接口芯片8255A的应用—键盘与数码管
634 1
|
运维 监控 安全
如何写复盘报告
该内容是关于IT公司中复盘报告的撰写指南,主要包括五个步骤:1) 还原故障基本信息,如定级参考;2) 描述处理过程,按时间顺序列出关键点;3) 评估影响范围,可能涉及业务基线;4) 确定故障原因,从直接原因到根本原因层层分析;5) 分析责任归属和事件级别。复盘还包括故障回顾,提出优化措施以减少重演。内容还提到了一些参考资料,用于深入学习稳定性保障。
1351 0