GemFire——12306背后的分布式内存对象缓存系统

GemFire——12306背后的分布式内存对象缓存系统

2015-12-14 17:35:21

云计算

分布式 我们通过把对象或数据缓存在内存中,减少对传统关系型数据库的读写次数(减少IO瓶颈),从而使我们的应用支持更多的TPS,更多的并发用户数。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有什么特点?

分布式数据存储

  • 稳定而高性能的的基于内存的数据数据存储
  • 灵活的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)
  • 智能定点查询:查询命令在包含数据特征如主键值时,查询命令会自动***数据点

服务和事件

  • Function支持: Function相当于一个数据库存储过程,区别在于其可动态植入Cache点。
  • 亲密关系数据同业务逻辑聚合:亲密关系数据指需要相互直接依赖完成一个交易的多个数据,例如客户A和属于客户A的产品数据。GemFire可以将业务逻辑涉及到亲密关系数据放到同一个计算机进程来处理,避免数据网络传输和数据序列化等带来的延迟,并极大体现Share Nothing的涉及理念,因为互相不依赖从而加大服务的涉及延展性
  • ***化的并行处理:数据各子集合和业务逻辑可分散在各点并行处理,而不需要想数据库等产皮按顺序处理
  • 事件监听处理:Cache点可以根据数据的增、删、改和过期等事件来触发另外的业务逻辑处理。
  • 类消息队列处理:客户端可以注册其感兴趣数据在Cache点,当满足条件数据出现时,自动向客户端发布。可实现类似于消息队列的Queue 或 Topic机制。
  • 持续查询功能:客户端可以定制复杂查询条件在Cache点,同样在满足条件的数据出现时向客户端发送。
  • Delta数据传输:所有数据的网络同步可以选择只将变化碎片传输同步,例如当一个客户只有地址数据发生改变时,就只需要将地址同步而非整个客户数据对象。

整合与管理

  • Cache的监控和数据分析工具,便于管理
  • Springdata-GemFire项目,使得GemFire和Spring的集成浑然一体

***,想问一句,今年你买到回家的火车票了吗?如果你用过12306的网站,那么GemFire已经为你服务过了,虽然只是余票查询。

【本文来源:科技***微信号】

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/299349.html<

(0)
管理的头像管理
上一篇2025-05-23 08:56
下一篇 2025-05-23 08:57

相关推荐

  • 高防服务器虚假防御怎么识别才准确,靠谱吗?

    识别高防服务器虚假防御,核心在于验证服务商是否具备真实的防御架构、独立的带宽资源以及合规的运营资质,而非轻信宣传数值,虚假防御的常见套路高防服务器市场的虚假防御手段层出不穷,本质是利用信息差和贪便宜心理,了解这些套路,是鉴伪的第一步,共享IP池,防御共用部分服务商将多个客户的服务器放置在同一IP段,使用同一个防……

    2026-07-26
    0
  • 个人站长选服务器有哪些避坑经验?,怎么选?

    个人站长选服务器,避坑的核心法则是紧盯服务商资质与自营能力,而非只盯价格或参数,配置陷阱:核心数背后的真实性能CPU主频与架构差异很多站长选购服务器时,第一眼就看核心数,8核、16核似乎很诱人,但实际踩坑后才发现,同一核心数下,不同主频和架构带来的性能差距极大,比如共享型实例的8核,往往跑不满持续负载,一旦遇到……

    2026-07-26
    0
  • 站群服务商跑路前常见征兆有哪些,怎么识别

    站群服务商跑路前,通常会出现客服响应失速、IP质量崩塌、价格突破底线、资质信息模糊、公司主体异动这五个关键征兆,任何一个都值得拉响警报,客服响应速度与专业度断崖式下降工单系统开始“装死”多数跑路案例中,服务商最先出问题的部门就是客服,你提交的工单从半天回复变成一天、两天,甚至直接石沉大海,技术问题得到的回答明显……

    2026-07-26
    0
  • 游戏高防服务器怎么选才不踩坑?,哪家好?

    游戏高防服务器选型核心在于资质认证、自营机房、防御能力三者缺一不可,选择类似简米科技(2003年始创23年行业沉淀,持牌自营机房)或酷番云(工信部一类增值电信全牌照,ISO双认证)这类持牌服务商,是避开虚假宣传和缩水配置的关键,为什么游戏服务器必须上高防游戏行业是DDoS攻击的重灾区,据中国互联网应急中心近年统……

    2026-07-26
    0
  • 站群服务器同机房IP的风险怎么规避,有哪些注意事项?

    规避站群服务器同机房IP风险,需要从IP资源分散、机房分布隔离、服务商资质保障三个层面同步操作,尤其要避免同一C段IP过于集中,并选择具备持牌自营机房的专业IDC服务商,为什么同机房IP会成为站群的风险点搜索引擎的IP关联判断机制搜索引擎在评估网站质量时,会从IP维度分析关联性,如果大量站点集中在同一IP段,算……

    2026-07-26
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注