GemFire/Geode中的国际化(一)

来源:互联网 发布:linux ping命令 编辑:程序博客网 时间:2024/05/18 02:53

背景

GemFire 作为一款分布式NoSql内存数据库,用来完成分布式缓存,数据持久化,分布式事物、动态扩展等功能。Geode是其开源版本,于2015年4月发布, 该项目是为了将GemFire改造为依托Apache软件基金会、社区自治、多元化的一个社区项目。github的地址是https://github.com/apache/geode

 

也许大家对GemFire的名字还是有些陌生,但说起大名鼎鼎的12306,大家应该会恍然大悟了吧。据官方宣称,GemFire目前拥有600多家企业客户,这其中就包括12306,换句话说,正是GemFire帮助12306系统才扛住了这个世界上压力最大的订票业务系统。

 

优点特性

·        性能扩展,线性扩展,事物和读写低延迟

·        通过全局的分布式应用进行一致的数据库操作

·        高可用性和高伸缩性,全局规模

·        简单的分布式节点管理

·        动态复制和分区技术

·        可快速并行恢复的持久化

·        快速内存存储,优化的大堆内存,数据压缩,磁盘溢出回收和数据超时机制

·        分布式位置感知功能

·        分布式事物ACID

·        支持类SQL和索引

·        服务器可同步或者异步的响应客户端,保证事件顺序

技术架构

GemFire分布式内存数据平台通过云计算平台+虚拟化资源池,将若干X86服务器的内存集中起来,组成最高可达数十TB的内存资源池,将全部数据加载到内存中,进行内存计算。计算过程本身不需要读写磁盘,只是定期将数据同步或异步方式写到磁盘。GemFire在分布式集群中保存了多份数据,任何一台机器故障,其它机器上还有备份数据,不用担心数据丢失,而且有磁盘数据作为备份。GemFire还支持把内存数据持久化到各种传统的关系数据库、Hadoop库和其它文件系统中。12306之前采用Unix小型机架构,采用GemFire后,转而采用Linux/X86服务器集群架构。


GemFire首先改造了12306的主要瓶颈——余票查询系统,随后GemFire改造订单查询系统(客户查询自己的订单记录)。根据系统运行数据记录,技术改造后,在只采用10几台X86服务器实现了以前数十台小型机的余票计算和查询能力,单次查询的最长时间从之前的15秒左右下降到0.2秒以下,缩短了75倍以上。并发量增加时,还可以通过动态增加X86服务器来应对,保持毫秒级的响应时间。当年春运的极端高流量并发情况下,支持每秒上万次的并发查询,高峰期间达到2.6万QPS吞吐量,而在系统改造前,每秒仅能支持300-400个QPS的吞吐量,高流量的并发查询只能通过分库来实现。

 

坐而论道了许久,那么GemFire又跟国际化有何关系?是什么让这听上去高大上的技术跟相当接地气的国际化又产生了联系呢?可以肯定的是,他已经对国际化有着良好的支持,否则我泱泱国民如今的线上票务查询也无从谈起。欲知更过实现细节,下文就让我们来分析源码,一起啃啃这硬骨头吧。

原创粉丝点击