Geode/Gemfire学习笔记(一)环境搭建、快速上手

Geode/Gemfire 是Pivotal公司开发的一款开源的、分布式NoSql内存数据库,可用来进行完成分布式缓存,数据持久化,分布式事物、动态扩展等功能。

他的优点和特性:

  • 性能扩展,线性扩展,事物和读写低延迟

  • 通过全局的分布式应用进行一致的数据库操作

  • 高可用性和高伸缩性,全局规模

  • 强大的开发者特性

  • 简单的分布式节点管理

  • 动态复制和分区技术
  • 可快速并行恢复的持久化
  • 快速内存存储,优化的大堆内存,数据压缩,磁盘溢出回收和数据超时机制
  • 分布式位置感知功能
  • 分布式事物ACID
  • 支持类SQL和索引
  • 服务器可以将数据事件通知客户端,同步或者异步的响应客户端,保证事件顺序
  • 高可扩展高健壮性的集群技术,失败检测、网络分区检测

作为世界规模最大的实时交易系统之一12306就是使用的#GemFire#

 

github源代码下载地址:https://github.com/apache/incubator-geode

geode文档地址:http://geode-docs.cfapps.io/

 

Geode是Gemfire的开源版本,GemFire是商业版本,最初被应用于对实时数据处理要求很高的华尔街的金融部门。

 

安装调试:

1、所需环境: jdk1.8

2、编译:

1)如果使用Geode,则需要编译 后方可使用。

由于使用gradle编译,客户端需要安装gradle编译环境。gradle需要下载大量的依赖包进行编译,所以这一步必须翻*墙才能下载。建议使用最新版的自*由*men,很好用。

我最初使用了XX-net,虽然可以翻**墙,但是下载依赖包却总是报错,可能代理有某些限制,换了自*由*men就一切顺利了。

2)如果使用GemFire已编译好的版本,则无需理会上述麻烦,可直接使用。

 

3、分布式环境搭建

至少两台机器,同时保证两台机器使用相同版本,要么都用Geode,要么都用Gemfire,不然无法启动server。

增加环境变量 GEODE_HOME=F:\dev\BigData\incubator-geode-develop\gemfire-assembly\build\install\apache-geode

Path里增加:%GEODE_HOME%\bin;

编译后的文件都放在F:\dev\BigData\incubator-geode-develop\gemfire-assembly\build\install目录下。

搭建过程参考如何命令和快速上手教程。

4、概念介绍

gfsh  geode的命令行shell工具,用于执行如下命令

locator 定位器,相当于master-slave中的master,或者zookeeper,主要用于管理集群,和链接不同的server。

  gfsh> start locator --name=locator1

server 服务器,可以部署在同一台机器,也可以部署在不同机器。在不同的机器上启动时,需要先用connect连接已启动的locator

  connect --locator=ip[locator的port]

  start server --name=server1

region 数据区域,或者叫表,是数据存储的基本单位,以下创建一个在集群内自动复制的,自动持久化的region,并持久化数据

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

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

OQL 类SQL的脚本,用来查数

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

以上命令的执行默认是以集群为范围的,如果要单机执行,需要修改apache-geode\config\gemfire.properties文件中的属性:enable-cluster-configuration=true,改为false。

5、快速上手教程:

http://geode-docs.cfapps.io/docs/getting_started/15_minute_quickstart_gfsh.html

 

下一篇,我将讲解应用程序如何使用Geode进行缓存。

对于Geode的学习,最终目的是源代码阅读,看看Geode如何实现了这么强大的分布式数据库。

欢迎大家一起学习,交流经验,不吝指教,谢谢!

你可能感兴趣的:(Geode/Gemfire学习笔记(一)环境搭建、快速上手)