Apache Geode 学习笔记、环境搭建

一、概述

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

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

Apache Geode是一种成熟,稳健的技术,最初由GemStone Systems在俄勒冈州比弗顿开发。作为GemFire™商业上可用的,该技术首先广泛部署在金融领域,作为在华尔街交易平台中使用的事务性,低延迟数据引擎。今天,Apache Geode被超过600家企业客户用于必须满足低延迟和24x7可用性要求的高规模业务应用。

主要概念和组件

缓存是描述Geode分布式系统中的节点的抽象。

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

定位器提供发现和负载平衡服务。您可以使用定位器服务列表配置客户端,定位器维护成员服务器的动态列表。默认情况下,Geode客户端和服务器使用端口40404和多播发现彼此。

Geode包括以下功能:

结合冗余,复制和“无共享”持久性架构,以提供故障安全的可靠性和性能。

可水平扩展到数千个缓存成员,具有多个缓存拓扑,以满足不同的企业需求。缓存可以分布在多台计算机上。

异步和同步高速缓存更新传播。

增量传播仅分布对象(delta)的旧版本和新版本之间的差异,而不是整个对象,导致显着的分配成本节省。

可靠的异步事件通知和通过优化的低延迟分布层的有保证的消息传递。

应用程序运行4到40,000倍更快,没有额外的硬件。

数据意识和实时商业智能。如果数据在您检索时更改,您会立即看到更改。

与Spring Framework集成,以加速和简化可扩展的事务性企业应用程序的开发。

JTA符合事务支持。

可以持久保存并导出到其他群集的群集范围的配置。

通过HTTP进行远程集群管理。

REST API用于启用REST的应用程序开发。

滚动升级可能是可能的,但它们将受到新功能施加的任何限制。


二、安装apache-geode并配置gfsh环境

注:Apache Geode主机必须满足下列要求

·  需要安装JKD8

·  系统时钟设置为正确的时间和时间同步服务,如网络时间协议(NTP)

·  机器的主机名和主机文件必须配置正确

·  yum install gcc-c++  perl-Module-Install.noarch openssl-devel make unzip -y

1.安装JKD8(可以使用 源码安装脚本

要设置 JAVA_HOME 环境变量. (脚本已经配置)

[root@localhost bin]# source  /etc/profile

[root@localhost bin]# java -version 

java version "1.8.0_92"

2.从发布页面http://geode.incubator.apache.org, 下载源码,然后解压源码.

我下载的版本为:apache-geode-src-1.0.0-incubating.tar.gz

[root@localhost ]# tar -zxcf  apache-geode-src-1.0.0-incubating.tar.gz -C  /usr/local/

3.在源码解压后的目录中,以非测试方式编译

[root@localhost ~]# cd /usr/local/apache-geode-src-1.0.0-incubating/geode-assembly/build/install/apache-geode/bin/

[root@localhost bin]# ./gradlew build -Dskip.tests=true(大概2h)

[root@localhost bin]# cd geode-assembly/build/install/apache-geode

[root@localhost bin]# bin/gfsh version

v1.0.0-incubating

如果想知道更多的版本信息例如构建日期,构建号,或是使用的JDK版本,可以使用

[root@localhost bin]# ./gfsh version --full

三、使用 gfsh命令启动Locator.

[root@localhost bin]# ./gfsh

gfsh> start locator --name=locator1

· 启动基于浏览器的pulse监控工具,pulse是一个web应用,它提供了图形化的监控界面,监控着geode集群、成员、数据区域的重要的健康状态和性能。

gfsh> start pulse    (请查阅 Embedded Mode

Running desktop applications is not supported on Linux.

这个命令启动pulse并自动连接到locator的JMX管理器,在pulse的登录页面 http://192.168.1.141:7070/pulse   默认账户:admin  密码:admin。(请查阅 账户设置

pulse此时显示的是 刚刚启动的locator1

登录后,Pulse显示本地分布式系统的主集群视图。(请查阅 Geode Pulse


四、启动缓存服务器

· 一个geode服务器是一个进程,它作为一个长期的,可配置的集群(也被称为分布式系统)中的一个成员运行着。geode服务器主要用于存放长期存放的数据区域,也用于运行标准的geode进程,例如在客户端/服务器配置中的服务器。查看 运行geode服务器进程。

gfsh> start server --name=server1 --server-port=40411

此命令启动一个服务器,名称为server1,运行在40411端口

在Pulse观察变化(新的成员和服务器)试着展开分布式系统图标来以图形化方式查看locator和服务器。


五、创建一个复制,持久的区域

· 在这一步你使用gfsh命令行创建数据区域。区域是geode集群的核心基石并提供了管理数据的方法

· 你用来练习的区域使用了复制功能在集群成员中复制数据,并使用了持久化装数据保存到了磁盘

gfsh>create region --name=regionA --type=REPLICATE_PERSISTENT

 regionA存放到了 server1

用gfsh命令来查看集群中的区域

gfsh> list regions

列出集群上的成员,你开启的locator和缓存服务器出现在列表中

gfsh> list members

查看区域说明

gfsh> describe region --name=regionA

· 在pulse中,点击绿色的集群图标来查看所有的新成员和新区域,这些都是你刚刚为你的集群添加的

· 注意:将此提示保持在开着的状态,以便进行下一步


六、操作区域中的数据并演示持久化

· geode以键值方式管理数据,在大多数应用程序中,java应用添加,删除和修改保存的数据,你也可以用gfsh命令来添加或查询。查看数据命令

运行如下的put命令来将数据添加到区域中

gfsh> put --region=regionA --key="1" --value="one"

gfsh> put --region=regionA --key="2" --value="two"

运行如下命令查询数据

gfsh> query --query="select * from /regionA"


结果显示的是 用put命令添加的两条数据

停止、启动缓存服务器

gfsh> stop server --name=server1

gfsh> start server --name=server1 --server-port=40411

停止、启动缓存服务器


停止缓存服务器


启动缓存服务器


从区域中查询数数,数据仍然是可用的

gfsh> query --query="select * from /regionA"

· 因为regionA使用了持久化,它把一份考贝写入到磁盘。当一个存有reginA的服务器启动,数据将存在缓存中,注意到显示的两条数据是在你运行停止命令之前用put命令存放进去的。


七、 检查复制效果

· 在这一步中,你开启第二台缓存服务器,因为regionA是可复制的,数据将在任何一台存有regionA区域的服务器中可用

开启第二台缓存服务器

gfsh> start server --name=server2 --server-port=40412

运行describe region查看regionA信息

gfsh> describe region --name=regionA

· 注意到你不需要为server2再次创建regionA,命令输出显示regionA存在于server1和server2上。当gfsh启动服务器时,它从群集配置服务请求配置,然后分发共享的配置到任何一台加入到集群的新服务器

添加第三条数据

gfsh> put --region=regionA --key="3"--value="three"

数据增加为三条


打开pulse应用程序(在一个Web浏览器中),并观察集群拓扑。你应该可以看到一个locator和两个server。点击数据选项卡来查看regionA的信息

停止缓存服务器

gfsh> stop server --name=server1

从剩余的服务器中查询数据

gfsh> query --query="select * from /regionA"

添加第四条数据

gfsh> put --region=regionA --key="4"--value="four"

· 注意到只有server2在运行。因为数据是可复制的和持久化的,所有的数据都是可用的,但是当前这条数据仅在server2上可用

gfsh> describe region --name=regionA

停止剩余的服务器

gfsh> stop server --name=server2

八、并行重新启动缓存服务器

· 在此步骤中,您可以并行重新启动缓存服务器。由于数据是持久的,因此当服务器重新启动时,数据可用。由于要复制数据,因此必须并行启动服务器,以便可以在启动之前同步其数据。

启动server1(因为regionA是复制和持久的,它需要来自其他服务器的数据来启动并等待服务器启动

gfsh> start server --name=server1 --server-port=40411

无法启动!它需要等待其他服务器启动


* 注意事项:在新的终端窗口 启动gfsh时,你必须使用connect命令connect其指向正在运行的定位器,以便你可以找到regionA等;

(只要使用了新的shell,重新建立了连接,就需要执行此步骤,以便于找到属于你的locator)

gfsh> connect --locator=localhost[10334]

在第二个终端窗口中,运行以下命令以连接到集群

gfsh> connect --locator=localhost[10334]

启动server2

gfsh> start server --name=server2 --server-port=40412

新的shell建立的连接
当server2启动时,注意server1在第一个gfsh窗口中完成启动

验证定位器和两个服务器是否正在运行

gfsh> list members

运行查询以验证使用put命令输入的所有数据是否可用

gfsh> query --query="select * from /regionA"

使用以下命令停止server2

gfsh> stop server --dir=server2

运行查询以验证使用put命令输入的所有数据是否仍然可用

gfsh> query --query="select * from /regionA"

以上四步骤截图

九、关闭系统包括你的 locator

在当前gfsh会话中,停止集群    

gfsh> shutdown --include-locators=true     

出现提示时,键入“Y”以确认集群的关闭 。(详情请参见shutdown

exit退出gfsh shell


十、Apache Geode 如何卸载

关掉所有运行的Geode进程然后移除整个文件目录。没有额外的系统更改,也没有窗体注册需要修改。


如需详细请查阅官方文档:

http://geode.apache.org/docs/guide/getting_started/15_minute_quickstart_gfsh.html

https://github.com/apache/geode


如因国内资源较少,推荐使用 星愿浏览器 谷歌一下吧!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容