最近在研究开源内存数据库,apache ignite用了一段时间感觉还行因为资料太少,因此只是用了它的rpc功能做了一个分布式框架。
前天发现apache geode这个框架,据说是12306的Gemfire的开源版本。
官网地址:http://geode.apache.org/
一、安装
安装之前,服务器上必须要安装jdk(最好是jdk1.8),配置好JAVA_HOME
下载
wget http://mirrors.tuna.tsinghua.edu.cn/apache/geode/1.2.1/apache-geode-1.2.1.tar.gz
tar -zxvf apache-geode-1.2.1.tar.gz -C /opt/
cd /opt/apache-geode-1.2.1/
添加bin到PATH
vi /etc/profile
在最后一行新增
export PATH=$PATH:/opt/apache-geode-1.2.1/bin
使环境变量生效
source /etc/profile
测试是否安装成功
[root@master ~]# gfsh version --full
Build-Date: 2017-09-16 07:20:46 -0700
Build-Id: abaker 0
Build-Java-Version: 1.8.0_121
Build-Platform: Mac OS X 10.12.3 x86_64
Product-Name: Apache Geode
Product-Version: 1.2.1
Source-Date: 2017-09-08 11:57:38 -0700
Source-Repository: release/1.2.1
Source-Revision: 0b881b515eb1dcea974f0f5c1b40da03d42af9cf
Native version: native code unavailable
Running on: /192.168.60.50, 4 cpu(s), amd64 Linux 3.10.0-327.el7.x86_64
二、启动
启动locator,locator我理解类似一个请求转发器负责转发各种查询到各个server上,默认端口为:10334
[root@master ~]# gfsh
_________________________ __
/ _____/ ______/ ______/ /____/ /
/ / __/ /___ /_____ / _____ /
/ /__/ / ____/ _____/ / / / /
/______/_/ /______/_/ /_/ 1.2.1
Monitor and Manage Apache Geode
gfsh>
gfsh>start locator --name=locator50
启动server
gfsh>start server --name=server50 --server-port=40411
查看集群情况,这里只有一台
gfsh>list members
Name | Id
--------- | ---------------------------------------------------
locator50 | 192.168.60.50(locator50:32148:locator)<ec><v0>:1024
server50 | 192.168.60.50(server50:32411)<v3>:1025
三、试用命令行
可以参考文档:http://geode.apache.org/docs/guide/12/getting_started/15_minute_quickstart_gfsh.html
3.1作为客户端连接locator
connect命令不带任何参数的话表示连接本机
gfsh>connect --locator=192.168.60.50[10334]
Connecting to Locator at [host=192.168.60.50, port=10334] ..
Connecting to Manager at [host=master, port=1099] ..
Successfully connected to: [host=master, port=1099]
3.2创建region
region可以认为数据库里的表,
create region --name=regionA --type=REPLICATE_PERSISTENT
3.2查看region列表
gfsh>list regions
List of regions
---------------
regionA
3.3插入两条kv数据
gfsh>put --region=regionA --key="1" --value="one"
Result : true
Key Class : java.lang.String
Key : 1
Value Class : java.lang.String
Old Value : <NULL>
gfsh>put --region=regionA --key="2" --value="two"
Result : true
Key Class : java.lang.String
Key : 2
Value Class : java.lang.String
Old Value : <NULL>
3.4 查询数据
gfsh>query --query="select * from /regionA"
Result : true
Limit : 100
Rows : 2
Result
------
two
one