GemFire介绍
GemFire与Redis一样,是Pivotal公司产品,Pivotal由EMC与Vmware组建
GemFire的典型案例:12306网站(2012年,第一阶段)余票查询系统升级 和 (2013年,第二阶段)订票系统升级
“First, Pivotal GemFire offered proof in a realistic test environment and pilot as the existing site experienced many issues for Spring Festival in January of 2012. At that time, we began using GemFire to optimize and improve ticket availability inquiries. For the October 2012 National holiday we saw improvements in this part of the architecture while other issues remained. So, we started a second GemFire project to improve order processing. For the January 2013 Spring Festival, we saw order processing improve and outstanding issues were caused by specialized plugin browsers that are now blocked. As seen in the most recent National Holiday for 2013, the system is operating with solid performance and uptime. Now, we have a reliable, economically sound production system that supports record volumes and has room to grow.”
下面内容转自http://www.cnblogs.com/doubletree/p/4198970.html,GemFire版本未知
一、GemFire是什么?
如果你了解Redis或memCached,那么恭喜,你很快就能理解GemFire是什么,没错,你可以把它理解为一个增强版的Redis,具体在哪些方面增强,我们日后慢慢聊。如果你不了解Redis,也没有关系,先看官方网站上的说法:Pivotal GemFire is the distributed, in-memory database for developers who are building the highest scaling and performing data-centric apps in the world. 但是,按照我对它的理解,我更愿意用下面的语言来描述它,GemFire是一个高性能的分布式内存对象缓存系统,如果非要说它是数据库,那也只能算是一个Key/Value数据库(我更愿意称之为Key/Value存储系统)
我们通过把对象或数据缓存在内存中,减少对传统关系型数据库的读写次数(减少IO瓶颈),从而使我们的应用支持更多的TPS,更多的并发用户数。GemFire能够在部分场景下对关系型数据库起到很好的补充(甚至替代)作用,它可以作为应用层与传统数据层的“润滑剂”。
二、关于GemFire的前世今生?
GemFire的第一个版本发布于2002年3月份,当时它还属于一家独立的公司GemStone Systems.后来GemStone System这家公司被VMware给收购了,GemFire也被整合到了VMware Vfabric产品线。请注意,VMWare当时也收购了Redis项目。在2013年4月EMC与VMware/GE合资成立一家新公司Pivotal,VMware慷慨的贡献出了它的vfabric产品线,以及它收购的一些开源项目。
目前,GemFire的商业版权已经属于Pivotal了。顺便说一句,Redis的创始人Salvatore Sanfilippo 现在也供职于Pivotal.
三、GemFire有什么特点?
1.分布式数据存储
• 稳定而高性能的的基于内存的数据数据存储
• 灵活的Cache部署策略:点对点(peer to peer);客户端/服务端(client server);多集群(multiple clusters)的本地或远程数据同步,支持数据高性能灾备和双活
• 灵活的Region(数据对象集或者可理解为表)分布式处理:同一集合数据(可理解为一个表的数据)可以整集多点同步或切割后不同点保存,并支持数据实时再平衡(rebalance)既数据分隔保存后若加入新的空闲服务器,数据可以在不重启服务的情况下重新切割和平衡数据,从而达到真正的数据在线动态延展
• 具有持续性的数据高可用性和容错性:各个分散的数据点可以配置一个或多个基于内存的热备数据点,当主数据点宕机的情况下,其中一个热备点就会提升称为主数据点,同时可以继续在空闲机器上创建备份点,从而达到数据的持续的可用性。同时数据可以通过配置同步或异步地持续化到本地硬盘,或者到指定的数据库或文件中。
• 数据地客户端缓存:客户端可以将最常用数据缓存一个备份与本地,进一步加快效能
• 在线数据备份
• 数据全内存和部分内存策略:通过配置可以将数据全部存入内存,或者通过将非频繁使用数据挤出策略(LRU)来将部分频繁适用数据保存于内存中达到成本效益最大化
• 内置资源优化器用以降低JAVA GC所带来的延迟,支持单个大容量Cache点(一般服务器可配置超过40GB内存的Java heap size)
• 安全支持:基于用户和角色的数据访问,数据传输渠道加密(SSL)
• 数据存取
• 除key-value简单cache支持外,支持复杂数据对象和关系存储
• 丰富的OQL(类SQL)的查询语言支持
• 支持数据单记录或批处理
• 本地或分布式事务处理
• Map-Reduce并行查询:同一查询命令可并行发送到各Cache点(Map),结果集自动在客户端汇合(Reduce)
• 智能定点查询:查询命令在包含数据特征如主键值时,查询命令会自动命中数据点
2.服务和事件
• Function支持: Function相当于一个数据库存储过程,区别在于其可动态植入Cache点。
• 亲密关系数据同业务逻辑聚合:亲密关系数据指需要相互直接依赖完成一个交易的多个数据,例如客户A和属于客户A的产品数据。GemFire可以将业务逻辑涉及到亲密关系数据放到同一个计算机进程来处理,避免数据网络传输和数据序列化等带来的延迟,并极大体现Share Nothing的涉及理念,因为互相不依赖从而加大服务的涉及延展性
• 最大化的并行处理:数据各子集合和业务逻辑可分散在各点并行处理,而不需要想数据库等产皮按顺序处理
• 事件监听处理:Cache点可以根据数据的增、删、改和过期等事件来触发另外的业务逻辑处理。
• 类消息队列处理:客户端可以注册其感兴趣数据在Cache点,当满足条件数据出现时,自动向客户端发布。可实现类似于消息队列的Queue 或 Topic机制。
• 持续查询功能:客户端可以定制复杂查询条件在Cache点,同样在满足条件的数据出现时向客户端发送。
• Delta数据传输:所有数据的网络同步可以选择只将变化碎片传输同步,例如当一个客户只有地址数据发生改变时,就只需要将地址同步而非整个客户数据对象。
• 稳定而高性能的的基于内存的数据数据存储
• 灵活的Cache部署策略:点对点(peer to peer);客户端/服务端(client server);多集群(multiple clusters)的本地或远程数据同步,支持数据高性能灾备和双活
• 灵活的Region(数据对象集或者可理解为表)分布式处理:同一集合数据(可理解为一个表的数据)可以整集多点同步或切割后不同点保存,并支持数据实时再平衡(rebalance)既数据分隔保存后若加入新的空闲服务器,数据可以在不重启服务的情况下重新切割和平衡数据,从而达到真正的数据在线动态延展
• 具有持续性的数据高可用性和容错性:各个分散的数据点可以配置一个或多个基于内存的热备数据点,当主数据点宕机的情况下,其中一个热备点就会提升称为主数据点,同时可以继续在空闲机器上创建备份点,从而达到数据的持续的可用性。同时数据可以通过配置同步或异步地持续化到本地硬盘,或者到指定的数据库或文件中。
• 数据地客户端缓存:客户端可以将最常用数据缓存一个备份与本地,进一步加快效能
• 在线数据备份
• 数据全内存和部分内存策略:通过配置可以将数据全部存入内存,或者通过将非频繁使用数据挤出策略(LRU)来将部分频繁适用数据保存于内存中达到成本效益最大化
• 内置资源优化器用以降低JAVA GC所带来的延迟,支持单个大容量Cache点(一般服务器可配置超过40GB内存的Java heap size)
• 安全支持:基于用户和角色的数据访问,数据传输渠道加密(SSL)
• 数据存取
• 除key-value简单cache支持外,支持复杂数据对象和关系存储
• 丰富的OQL(类SQL)的查询语言支持
• 支持数据单记录或批处理
• 本地或分布式事务处理
• Map-Reduce并行查询:同一查询命令可并行发送到各Cache点(Map),结果集自动在客户端汇合(Reduce)
• 智能定点查询:查询命令在包含数据特征如主键值时,查询命令会自动命中数据点
2.服务和事件
• Function支持: Function相当于一个数据库存储过程,区别在于其可动态植入Cache点。
• 亲密关系数据同业务逻辑聚合:亲密关系数据指需要相互直接依赖完成一个交易的多个数据,例如客户A和属于客户A的产品数据。GemFire可以将业务逻辑涉及到亲密关系数据放到同一个计算机进程来处理,避免数据网络传输和数据序列化等带来的延迟,并极大体现Share Nothing的涉及理念,因为互相不依赖从而加大服务的涉及延展性
• 最大化的并行处理:数据各子集合和业务逻辑可分散在各点并行处理,而不需要想数据库等产皮按顺序处理
• 事件监听处理:Cache点可以根据数据的增、删、改和过期等事件来触发另外的业务逻辑处理。
• 类消息队列处理:客户端可以注册其感兴趣数据在Cache点,当满足条件数据出现时,自动向客户端发布。可实现类似于消息队列的Queue 或 Topic机制。
• 持续查询功能:客户端可以定制复杂查询条件在Cache点,同样在满足条件的数据出现时向客户端发送。
• Delta数据传输:所有数据的网络同步可以选择只将变化碎片传输同步,例如当一个客户只有地址数据发生改变时,就只需要将地址同步而非整个客户数据对象。
3.整合与管理:
• Cache的监控和数据分析工具,便于管理
• Springdata-GemFire项目,使得GemFire和Spring的集成浑然一体
• Cache的监控和数据分析工具,便于管理
• Springdata-GemFire项目,使得GemFire和Spring的集成浑然一体