发布于 2017-02-07 23:55:38 | 185 次阅读 | 评论: 0 | 来源: 网友投递
Geode 分布式内存数据库
Geode 是一个开源的分布式内存数据库,用于构建水平伸缩的应用,基于 GemFire 开发。
2016年11月21日,Apache软件基金会(the Apache Software Foundation,ASF)宣布 Apache Geode已从Apache孵化器毕业成为顶级项目(Top-Level Project),表明该项目的社区和产品已根据ASF的精英流程和原则得到良好管理。
2016年11月21日,Apache软件基金会(the Apache Software Foundation,ASF)宣布 Apache Geode已从Apache孵化器毕业成为顶级项目(Top-Level Project),表明该项目的社区和产品已根据ASF的精英流程和原则得到良好管理。
Apache Geode是一个相当成熟、强健的的数据管理平台,提供实时的、一致的、贯穿整个云架构地访问数据关键型应用。Geode自身功能比较多,首先它是一个基于JVM的NoSQL分布式数据处理平台,同时集中间件、缓存、消息队列、事件处理引擎、NoSQL数据库于一身的分布式内存数据处理平台。可用来进行完成分布式缓存、数据持久化、分布式事物、动态扩展等功能。
目前,有超过600家大中型企业级用户,使用了Apache Geode。他们主要是应用于必须满足低延迟和24x7高可靠要求的、高可扩展性的关键业务应用系统。
缓存是一个抽象的概念, 在一个Geode分布式系统中用于描述一个节点。在每个缓存中,用户定义数据regions。数据regions类似于传统关系型数据库中的“表”的概念,以分布式的方式来管理数据,表现为名/值对形式。在分布式系统的每个缓存成员中,一个复制region保存数据的拷贝;一个分区region跨缓存成员来同步数据。在系统配置后,客户端应用能够访问regions中的分布式数据, 而不需要知道系统整体架构的知识。
用户能够定义监听器来接收通知,当数据发生变化时,同时用户也能够定义超时标准来删除在一个region中的废弃掉的数据。
Locators提供了发现和负载均衡服务。用户配置带有locator服务列表的客户端,同时locators维护一个成员服务器的动态列表。默认情况下,Geode客户端和服务器使用端口40404和多播来互相发现。
Geode池化了服务器上的内存、CPU、网络资源和本地磁盘,跨多个进程来管理应用对象和应用行为。它使用了动态数据复制和分区技术来实现高可用、高性能、高可扩展性、容错性。另外,对于一个分布式数据容器,Apache Geode是一个基于内存的数据管理系统,提供了可靠的异步事件通知和可靠的消息投递。
Geode支持结合冗余、复制,和“shared nothing”的一致性架构来交付“自动防故障”的可靠性和高性能。它能够水平扩展到数千个缓存成员,具有多种缓存拓扑结构来满足不同的企业级部署需求。缓存能够跨多台机器进行分布。还支持异步和同步缓存更新传播。Delta传播只分发新版本和旧版本的变化量(delta),而不是整个对象,从而可以节省大量的网络开销。
Geode通过经过优化的、低延时的通信层进行可靠的异步事件通知,提供了高保障的消息投递。在没有额外硬件的辅助下,应用可以加速4~40000倍。Geode还集成了数据感知和实时BI,当用户查询时,如果数据变化了,用户能够立刻在系统中看见数据的变化。它集成Spring框架来加速和简化高可扩展、高并发和事务型企业级应用的开发复杂度。提供了JTA兼容的事务支持。集群的配置可以写到文件中和导出到其他集群中。通过HTTP进行远程集群管理。对Geode而言,滚动升级是可行的, 但是需要服从新特性的限制问题。
性能扩展、线性扩展、事物和读写低延迟;
通过全局的分布式应用进行一致的数据库操作;
高可用性和高伸缩性,全局规模;
强大的开发者特性;
简单的分布式节点管理;
动态复制和分区技术;
可快速并行恢复的持久化;
快速内存存储、优化的大堆内存、数据压缩、磁盘溢出回收和数据超时机制;
分布式位置感知功能;
分布式事物ACID;
支持类SQL和索引;
服务器可以将数据事件通知客户端,同步或者异步的响应客户端,保证事件顺序;
高可扩展高健壮性的集群技术,失败检测、网络分区检测。
Geode使用网格化的缓存集群,构成了统一的、应用缓存系统。所有数据都放入到内存当中,所有的缓存操作都被抽象化为对缓存集群的单点引用,换句话说,你的应用能够与缓存集群中的单个逻辑单元交互,而不用考虑集群中到底有多少缓存集群。
Apache Geode由GemFire开源而来,最初在2002年由GemStone Systems公司开发(2010年被VMWare收购,2013年被Pivotal剥离),商标为GemFire。此项技术初期被广泛应用在金融领域,用于华尔街交易平台,作为事务性、低延时的数据引擎。
2015年4月GemGire的代码被提交给Apache孵化器作为孵化项目。但是这个开源是基于Gemstone 20年的技术积累,还有大量的金融用户(世界500强绝大多数客户都在用Gemfire)的实践还有很多通信、销售等行业的生产环境使用。
作为世界规模最大的实时交易系统之一12306就是使用的GemFire。
Geode和GemFire是什么关系呢?Geode是Gemfire的开源版本,GemFire是商业版本。
大数据需要一个可以处理庞大数据流、拥有持续不断的可用性和一致性的技术架构,该架构的关键之处是:在不同数据管理系统和位置下都可以灵活扩展。
而Apace Geode完全可以用来改变客户体验、决策能力和盈亏的各种方式。下面通过四个应用场景来了解一些企业客户在不影响速度和数据的安全性的情况下是如何使用Apache Geode支持高性能的实时应用程序的。
网购、设备互联、证券交易,这些类型的交易处理应用程序要求超高的数据管理性能。随着越来越多的企业着手进行数字化转型,这些类型的应用程序数量只增不减,在这种情况下,高度支持数据一致性的内存数据网格是必须的。Geode可以处理超大量的并发交易业务,涉及兆兆字节的运行数据,为客户提供更快,更可靠的交易体验。
与传统的关系数据库管理系统相比较,Geode的可扩展性更强,能够随着需求的不断提高进行相应的扩展。无论是第一位用户还是第一万位用户,系统都会在瞬间处理好您交易请求。这种高速、安全的能力对于拥有在线购物、支付处理、金融交易业务的企业来说尤为重要。因为每一秒等待时间都意味着交易数量的降低,从而导致企业收入的降低,Geode利用闪电般的速度和灵活的可扩展性,为用户提供快速交易,从而可以提高客户保留率和参与性。
印度铁路公司是世界上第二大的铁路公司,他们就正在使用GemFire进行交易处理。印度铁路公司每天运行超过12000辆列车,载客量超过2300万人次。该公司的旧系统每天只能处理不超过40000个并发互联网用户,而其中许多人网上预订车票仍需花费半小时。通过使用GemFire支持其电子票务应用程序,该系统现在可以处理超过12万个并发用户,现在完成预订只需几秒钟。GemFire改变了印度铁路公司数百万名客户的体验,并带来高达60000万卢比的日收入增长。
在像信用卡诈骗、风险计算、车辆跟踪这些情景中,数据可以复述现场实时发生的各种事件。随着物联网成为各行各业强有力的数据源,把握热数据机遇变得尤为重要。然而,传统的数据管理系统无法快速处理大数据,就无法及时将重要事件传达给客户端应用程序,传统的系统也无法结合历史和实时数据进行实时分析和预测。
可是,如果我们结合内存数据网格与大规模并行处理数据存储,就可以像Pivotal Greenplum或者开源Greenplum Database一样快速地处理实时和历史数据集,让热数据分析成为可能。银行、能源,以及电信等行业的高层无疑会对GemFire出色的事件通知和处理能力倍感兴趣。
Geode强大的内存数据网格可以管理高达兆兆字节的内存输入数据,并在服务器内部数据发生变化时,跨越多个集群,将通知推送至应用程序客户端。这种快速,持续的查询能力使得系统能够快速,轻松地访问大量输入数据,并采取行动。
工业巨头通用电器公司就采用了GemFire的内存事件处理和通知功能来对其燃气轮机产品进行跟踪。其远程水力和电力监控与诊断中心现在能够处理和存储涡轮机上高速的时间序列传感器的大型数据流(每秒超过10万个,内存10兆兆字节)。
GemFire的连续查询功能允许通用电器公司通过各种传感器数据密切留意涡轮故障信号。此外,通用电器公司已实施快速合并分析实时和历史数据,来预测涡轮维护需求,防止设备故障。利用事件处理和分析功能,结合实时和历史数据,通用电器公司开始采用精简的方式进行监测和维护其舰队,而原有的系统来是不可能分析这些的。
Geode的内存数据网格可以作为现有应用程序的缓存层使用,这样,应用程序就可以快速调用经常访问的数据,不会在访问磁盘数据时发生卡顿。更重要的是,Geode能够在服务器停机以及广域网的连接请求时进行回应,这使得应用程序持续可用从而降低延迟。不论是网络会话缓存还是主机卸载,GemFire都支持复杂的缓存解决方案。
人力资源和财务人员使用这些应用程序来搜索和筛选员工信息。他们需要快速、可靠地访问各种数据子集,如员工住址或薪酬等级。使用搜索表格从数据库中查询这些信息是一个缓慢而繁琐的过程。为了满足高容量、低延迟的数据调用需求,开发者可以在应用程序中直接创建一个先进的的本地缓存解决方案,并且可以通过GemFire来不断更新。这个内存本地缓存系统的功能类似于单页面Web应用程序,让用户可以在几分之一秒的时间内搜索和筛选大量的数据,带来流畅而高效的用户体验。
某大型保险公司因为原有的系统无法保存填写中的表格,使得客户流失率持续上升。GemFire完美地解决了这个问题,让该公司在北美地区的三个数据中心可以实时缓存客户信息。如今,他们的客户可以随时返回到申请表而没有任何的数据丢失,极大地提高了保险在线提交申请的数量。
蒙特卡罗模拟(Monte Carlo simulation)、组合预测(Combined Forecasts)、价格和性能指标的比较……金融服务行业是GemFire网格大数据的成长沃土。使用传统的数据库存储体系意味着处理和分析财务数据需要在各个独立的系统之间来回大量移动数据,许多金融服务公司的陈旧系统很难跟上客户数据不断增加的步伐。GemFire可以在内存中处理非常大的数据流,无需将数据传输到一个单独的分析系统中去,允许快速地存取数据和充分地分析数据。
某大型金融服务公司采用GemFire在单一平台上快速处理兆兆字节级的内存数据,该公司的客户能够快速查看强制组合指标中的不同数据源。以价格数据和性能指标为例,传统的数据库架构需要额外步骤来处理这些指标,花费时间太长。而GemFire的内存数据网格不必在各个单独数据库之间移动数据即可进行复杂计算和分析,这为基金经理、投资者和其他的平台用户提供了即时迅速的大规模分析能力。
快速高容量的并发交易、自动实时的事件通知、以毫秒为单位的大数据的紧张动态计算、内存缓存中尤为快速的数据传输、甚至是跨广域网数据传输,这些都是像Geode这种内存网格的独特功能。
来自:大数据杂谈公众号 刘志勇