关于Apache Geode

Apache Geode是一个数据管理平台,可在广泛分布的云架构中提供对数据密集型应用程序的实时,一致的访问。

Geode跨多个进程汇集内存,CPU,网络资源和可选的本地磁盘,以管理应用程序对象和行为。它使用动态复制和数据分区技术来实现高可用性,改进的性能,可伸缩性和容错性。除了作为分布式数据容器之外,Geode还是一个内存数据管理系统,可提供可靠的异步事件通知和有保证的消息传递。

主要概念和组件

缓存是描述Geode集群中的节点的抽象。应用程序架构师可以在对等或客户端/服务器拓扑中安排这些节点。

在每个缓存中,您可以定义数据区域。数据区域类似于关系数据库中的表,并以分布式方式管理数据作为名称/值对。复制区域在群集的每个缓存成员上存储相同的数据副本。分区区域在缓存成员之间传播数据。配置系统后,客户端应用程序可以在不了解底层系统体系结构的情况下访问区域中的分布式数据。您可以定义侦听器以创建有关数据何时更改的通知,并且可以定义到期条件以删除区域中的过时数据。

对于大型生产系统,Geode提供定位器。定位器提供发现和负载平衡服务。使用定位器服务列表配置客户端,定位器维护成员服务器的动态列表。默认情况下,Geode客户端和服务器使用端口40404相互发现。

有关产品功能的更多信息,请参阅Apache Geode的主要功能。

主要功能特性

高读写吞吐量

读写吞吐量由并发主存储器数据结构和高度优化的分发基础结构提供。应用程序可以通过同步或异步复制在内存中动态复制数据,以实现高读取吞吐量,或者跨多个系统成员对数据进行分区,以实现高读写吞吐量。如果数据访问在整个数据集中相当平衡,则数据分区会使聚合吞吐量翻倍。吞吐量的线性增加仅受骨干网容量的限制。

低且可预测的延迟

优化的缓存层最大限度地减少了线程和进程之间的上下文切换。它管理高度并发结构中的数据,以最大限度地减少争用点。如果接收器可以跟上,则与对等成员的通信是同步的,这使得数据分发的延迟保持最小。服务器以序列化形式管理对象图,以减少垃圾收集器的压力。

订阅管理(兴趣注册和连续查询)在服务器数据存储之间进行分区,确保仅为所有感兴趣的客户端处理订阅一次。由此带来的CPU使用和带宽利用率的提高可提高吞吐量并减少客户端订阅的延迟。

高可扩展性

通过跨多个成员动态分区数据并在服务器之间统一分布数据来实现可伸缩性。对于“热”数据,您可以将系统配置为动态扩展以创建更多数据副本。您还可以将应用程序行为配置为以分布式方式运行,并且与其所需的数据非常接近。

如果您需要支持高并且不可预测的并发客户端负载突发,您可以增加管理数据的服务器数量,并在它们之间分配数据和行为,以提供统一且可预测的响应时间。客户端根据服务器在其负载条件下的持续反馈,不断对服务器场进行负载平衡。通过跨服务器分区和复制数据,客户端可以动态移动到不同的服务器,以统一加载服务器并提供最佳响应时间。

您还可以通过实现对外部数据存储(如数据库)的数据更改的异步“后写”来提高可伸缩性。这可以通过按顺序冗余排队所有更新来避免瓶颈。您还可以混合更新并将它们批量传播到数据库。

持续可用性

除了保证内存中数据的一致性副本之外,应用程序还可以使用“无共享磁盘体系结构”将数据同步或异步地保存在一个或多个成员上的磁盘上。所有异步事件(存储转发事件)至少是冗余管理的两个成员,如果一个服务器发生故障,冗余的服务器将接管。所有客户端都连接到逻辑服务器,并且客户端在故障期间或服务器无响应时自动故障转移到组中的备用服务器。

可靠的事件通知

发布/订阅系统提供数据分发服务,其中新事件被发布到系统中并以可靠的方式路由到所有感兴趣的订户。传统的消息传递平台专注于消息传递,但接收应用程序通常需要在处理事件之前访问相关数据。这要求他们在事件传递时访问标准数据库,以数据库的速度限制订阅者。

数据和事件通过单一系统提供。数据作为一个或多个分布式数据区域中的对象进行管理,类似于数据库中的表。应用程序只需在数据区域中插入,更新或删除对象,平台就会将对象更改传递给订阅者。接收事件的订户可以直接访问本地存储器中的相关数据,或者可以通过单跳从其他成员之一获取数据。

数据存储上的并行化应用程序行为

您可以在成员上并行执行应用程序业务逻辑。数据感知功能执行服务允许在成员上执行任意的,依赖于数据的应用程序功能,其中数据被分区以用于参考和缩放的位置。

通过合并相关数据并并行化计算,可以提高整体吞吐量。计算延迟与可以并行化的成员数成反比。

基本前提是将功能透明地路由到承载功能所需的数据子集的应用程序,并避免在网络上移动数据。应用程序功能只能在一个成员上执行,在成员子集上并行执行,或在所有成员上并行执行。此编程模型类似于Google的流行Map-Reduce模型。数据感知功能路由最适合需要迭代多个数据项的应用程序(例如查询或自定义聚合功能)。

无共享磁盘持久性

每个集群成员独立于其他成员管理磁盘文件上的数据。一个成员中的磁盘故障或缓存故障不会影响另一个缓存实例在其磁盘文件上安全运行的能力。这种“无共享”持久性体系结构允许对应用程序进行配置,使得不同类别的数据持久保存在整个系统的不同成员上,即使为应用程序对象配置了磁盘持久性,也会显着提高应用程序的整体吞吐量。

与传统数据库系统不同,单独的文件不用于管理数据和事务日志。所有数据更新都附加到与传统数据库的事务日志类似的文件中。如果磁盘未被其他进程同时使用,则可以避免磁盘寻道时间,并且唯一的成本是旋转延迟。

降低拥有成本

您可以在层中配置缓存。客户端应用程序进程可以在本地(在内存中并溢出到磁盘)托管缓存,并在未命中时委托给缓存服务器场。即使本地缓存的命中率达到30%,也可以显着节省成本。与每个事务相关的总成本来自CPU周期花费,网络成本,对数据库的访问以及与数据库维护相关的无形成本。通过将数据作为应用程序对象进行管理,可以避免与将SQL行映射到对象相关联的额外成本(CPU周期)。

客户/服务器的单跳能力

客户端可以直接向持有数据密钥的服务器发送单个数据请求,从而避免多跳以定位已分区的数据。客户端中的元数据标识正确的服务器。此功能可提高服务器层中分区区域的性能和客户端访问权限。

网络安全

客户端应用程序中可能有多个不同的用户。此功能适用于客户端嵌入应用程序服务器并且每个应用程序服务器支持来自许多用户的数据请求的安装。每个用户可能被授权访问服务器上的一小部分数据,如在客户应用程序中,其中每个客户只能访问他们自己的订单和货件。客户端中的每个用户都使用自己的一组凭据连接到服务器,并拥有自己对服务器缓存的访问权限。

多站点数据分布

数据站点在地理上分布在广域网(WAN)上可能导致可伸缩性问题。模型可以解决这些拓扑问题,从单个对等集群到WAN上数据中心之间的可靠通信。该模型允许集群以无限且松散耦合的方式扩展,而不会降低性能,可靠性或数据一致性。

该体系结构的核心是用于将区域事件分发到远程站点的网关发送器配置。您可以并行部署网关发送方实例,从而增加通过WAN分发区域事件的吞吐量。您还可以配置网关发件人队列以实现持久性和高可用性,以避免在成员发生故障时丢失数据。

连续查询

在Java Message Service等消息传递系统中,客户端订阅主题和队列。传递给主题的任何消息都将发送给订阅者。Geode允许通过使用对象查询语言使应用程序表达复杂的兴趣来进行连续查询。

异构数据共享

C#,C ++和Java应用程序可以共享应用程序业务对象,而无需通过SOAP或XML等转换层。服务器端行为虽然是用Java实现的,但它为C ++和.NET应用程序提供了唯一的本机缓存。可以在C ++进程堆中管理应用程序对象,并使用对象的通用“线上”表示将其分发到其他进程。C ++序列化对象可以直接反序列化为等效的Java或C#对象。使用一种语言更改业务对象可以在使用其他支持的语言编写的应用程序中触发可靠的通知。

Apache Geode 1.1 简介相关推荐

  1. Apache Geode/GemFire功能特性简介(1)

      区域   复制区域 在区域中所有的数据被复制到每一个缓存服务器节点.复制区域使用了'multiple masters'复制组织结构.当数据区域被复制(没有分区),对于每一个数据条目没有指定的管理者 ...

  2. Apache Geode介绍(译)

    简介 Performance is key. Consistency is a must. 性能是关键.一致性是必须的. Providing low latency, high concurrency ...

  3. java Apache Commons jar包简介

    一.Commons BeanUtils 说明:针对Bean的一个工具集.由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装. 二.Commons CLI 说明 ...

  4. 大中型企业的天网:Apache Geode

    2016年11月21日,Apache软件基金会(the Apache Software Foundation,ASF)宣布 Apache Geode已从Apache孵化器毕业成为顶级项目(Top-Le ...

  5. (转)Apache Commons工具集简介

    (转)Apache Commons工具集简介 Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.我选了一些比较常用的项目做简单介绍.文中用了很多网上现成 ...

  6. Apache Geode/GemFire 数据分区和路由机制浅析

    本篇文章主要讲解Apache Geode/GemFire 是如何进行数据分区的. GemFire和大多数分布式系统一样都采用 Hash 的方式对数据进行分区,将 Entry 数据分布到 Partiti ...

  7. Apache Geode 1.4 快速搭建示例

    第1步:安装Apache Geode 有关说明,请参见如何安装. 第2步:使用gfsh启动定位器 在终端窗口中,使用gfsh命令行界面启动定位器.Apache Geode gfsh(发音为" ...

  8. Apache Geode 2.10 运行Geode定位器进程

    运行Geode定位器进程 定位器是一个Geode进程,它告诉运行成员有新的连接成员,并为服务器使用提供负载平衡. 您可以将定位器作为对等定位器,服务器定位器或两者运行: 对等定位器将加入成员的连接信息 ...

  9. Spring系列学习之Spring Data Apache Geode数据访问

    英文原文:https://spring.io/projects/spring-data-geode 目录 概述 特性 快速开始 学习 文档 概述 Spring Geode项目Spring Data的主 ...

最新文章

  1. u盘复制不进去东西_禁止U盘拷贝,再也不让别人复制你电脑里的东西了!
  2. ADC知识(2)——直流参数(输入电压参考,参考电流输入,积分非线性误差,差分非线性误差)...
  3. GAN 的推导、证明与实现。
  4. 数据结构之排序算法:基数排序
  5. UNP学习笔记3——基本UDP套接字编程
  6. 第十八章——基于策略的管理(1)——评估数据库属性
  7. 未来智能穿戴把计算机织进纤维里,未来智能穿戴 把计算机“织”进纤维里
  8. python实现自动打电话软件_python拨打电话
  9. gradle教程_Gradle教程
  10. wpf自己画表盘_练手WPF(一)——模拟时钟与数字时钟的制作(上)
  11. Ubuntu fastboot 烧写
  12. 如果Iphone被偷了,能找回来吗?
  13. 什么品牌的蓝牙耳机通话音质最好?通话音质好的蓝牙耳机
  14. 玩转HTML(004)
  15. 微信小程序手把手教你实现类似Android中ViewPager控件效果
  16. vs community 2019安装失败问题解决
  17. [C++][muduo]1-muduo安装和运行
  18. Linux安装gpm(实现Linux复制粘贴)
  19. mysql front和navicat_Navicat for MySQL与MySQL-Front比较
  20. jdk11版本jenkins打包jdk8项目,同时兼容jdk11与jdk8

热门文章

  1. python输入三角形的三条边_牛鹭学院:学员笔记|Python: 输入三条边,判断是否可以成为三角形...
  2. vs2013 调用的目标发生了异常
  3. MYSQL 查询重复数据
  4. 卡巴斯基在线杀毒曝高危漏洞 用户可被攻击
  5. captcha 验证码调用方法
  6. Python之路 | 骰子游戏和最大数
  7. P7108 移花接木(分类讨论思维)
  8. 全景丨0基础学习VR全景制作,后期篇第二章:调色原理和色彩分析
  9. win10 html文档,win10最近打开的文档
  10. 我在的互联网医疗公司解散了