#Apache Geode
1、简介
Apache Geode是一个数据管理平台,它可以在广泛分布的云架构中提供对数据密集型应用程序的实时、一致的访问。
2、源码
https://github.com/apache/geode
http://apache.org/dyn/closer.cgi/geode/1.4.0
3、主要特性
Geode 包含以下特性:
高的读写吞吐量
低和可预见的延迟
高可伸缩性
持续可用性
可靠的事件通知
在数据存储上并行应用程序行为
无共享磁盘的持久性
降低拥有成本
单跳客户机/服务器的能力
客户机/服务器安全
多站点数据分布
连续查询
异构数据共享
结合冗余、复制和“非共享”的持久化架构,来实现故障安全可靠性(译者解释:高可用,防止单点故障)和性能。
可水平扩展至成千上万个缓存成员,并结合多个缓存拓扑来满足不同的企业需求。该缓存可以分布在多个计算机中。
异步和同步缓存更新传播(propagation)。
Delta 仅在一个对象(delta)新旧不同版本之间传播,而不是整个对象,从而极大降低了分发成本。
可靠的异步事件通知,优化后的、低延迟的分布层保证了消息传递。
无需额外的硬件,应用程序即可提速 4~40 倍。
数据敏感和实时业务智能。如果在您检索时数据发生更改,您能立即看到数据的变化。
与 Spring 框架集成,以加速并简化可扩展的事务型企业应用程序的开发。
支持 JTA 事务。
整个集群范围的配置,可以持久化,并可导出到其他集群。
通过 HTTP 即可实现对集群远程管理。
为 REST 应用程序开发提供 REST API 支持。
在主版本发布之间滚动升级。
4、参考文档
#官方安装指南
http://geode.apache.org/docs/guide/14/getting_started/15_minute_quickstart_gfsh.html
#多节点集群实验
https://blog.csdn.net/huanghuitan/article/details/71629774
#概述
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65146019
#笔记1
https://blog.csdn.net/suncoder/article/details/78506821
#笔记2
https://blog.csdn.net/kmyfoer/article/details/54603120
#java连接geode测试
http://blog.chinaunix.net/uid-11121450-id-5772480.html
#入门示例
http://blog.jobbole.com/87810/
5、安装
1) jdk 1.8以上
下载安装配置环境变量
验证安装
>java -version
统一系统时间戳,分布式环境下的日志、统计和监控
正确配置主机名和host文件,影响gfsh和Pulse功能
关闭SYN cookies 保护,分布式系统会触发这个保护条件
编辑/etc/sysctl.conf文件
net.ipv4.tcp_syncookies = 0
在命令行中执行sysctl -p命令,重载sysctl.conf文件
2) gradle
http://services.gradle.org/distributions/
下载安装,配置环境变量
export PATH=$PATH:/opt/gradle/gradle-4.6/bin
验证安装
>gradle -v
>gradle wrapper
>gradle tasks
3)源码编译安装
http://geode.apache.org/releases/
下载好源代码后解压到目录
进入目录后执行:
$ ./gradlew build -Dskip.tests=true
执行时间比较漫长。
执行完后,加入环境变量:
export PATH=$PATH:~/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/bin/
source .bash_profile
验证安装
>gfsh version
4)运行
进入gfsh命令模式
进入gfsh命令前,先选好工作目录,比如在home下建立一个geode_worker的目录,然后cd到这个目录里面执行gfsh,进入gfsh命令行。这样可以让你的geode文件存储在geode_worker工作目录里。当然也可以不这样做!
>gfsh
5)运行locator
name参数可以不传,如果不传,则使用随机名
默认端口10334
gfsh>start locator --name=locator1
Starting a Geode Locator in /Users/sunzuoquan/locator1...
....
Locator in /Users/sunzuoquan/locator1 on 10.106.3.200[10334] as locator1 is currently online.
Process ID: 38535
Uptime: 3 seconds
Geode Version: 1.3.0
Java Version: 1.8.0_121
Log File: /Users/sunzuoquan/locator1/locator1.log
JVM Arguments: -Dgemfire.enable-cluster-configuration=true -Dgemfire.load-cluster-configuration-from-dir=false -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
Class-Path: /Users/sunzuoquan/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/lib/geode-core-1.3.0.jar:/Users/sunzuoquan/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/lib/geode-dependencies.jar
Successfully connected to: JMX Manager [host=10.106.3.200, port=1099]
Cluster configuration service is up and running.
注意 10.106.3.200[10334]
一个cluster应该有一个locator
connect –locator=localhost[10334]
这个命令可以连接到cluster,确定操作的命令是针对一个cluster的
6)开启 pulse
是个监控工具。
gfsh>start pulse
Launched Geode Pulse
开始我以为这个命令会开启一个服务,没想到直接给我打开了一个浏览器,直接访问了下面地址:
http://localhost:7070/pulse/login.html
默认用户密码:admin/admin
7)开启server
name参数可以不传,如果不传则随机。当有多个server时,启动会与其他server同步数据。如果其他server没有启动,则等待。
默认端口40404
–J=-DDistributionManager.DISCONNECT_WAIT=
这个参数设置给每个阶段的等待时间
还有一个参数很重要:
–groups=group1
表示server所在的组
启动时如果不加端口参数,则默认使用40404
gfsh>start server --name=server1 --server-port=40411
Starting a Geode Server in /Users/sunzuoquan/server1...
....
Server in /Users/xxx/server1 on 10.106.3.200[40411] as server1 is currently online.
Process ID: 38769
Uptime: 3 seconds
Geode Version: 1.3.0
Java Version: 1.8.0_121
Log File: /Users/xxx/server1/server1.log
JVM Arguments: -Dgemfire.default.locators=10.106.3.200[10334] -Dgemfire.start-dev-rest-api=false -Dgemfire.use-cluster-configuration=true -XX:OnOutOfMemoryError=kill -KILL %p -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
Class-Path: /Users/xxx/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/lib/geode-core-1.3.0.jar:/Users/xxx/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/lib/geode-dependencies.jar
现在可以看看pulse监控,有什么变化了吗?
会看到有一个节点,这个节点里面有一个locater和一个server,以及他们的名字
可以开启http配置管理
gfsh>start server --name=server1 --J=-Dgemfire.jmx-manager=true \
--J=-Dgemfire.jmx-manager-start=true --http-service-port=8080 \
--http-service-bind-address=myremotecluster.example.com
8)远程配置
gfsh>connect --use-http=true --url="http://myremotecluster.example.com:8080/geode/v1"
Successfully connected to: Geode Manager's HTTP service @ http://myremotecluster.example.com:8080/geode/v1
开启server,指定cache配置
start server --name=server1 --mcast-port=10338 \
--cache-xml-file=../ServerConfigs/cache.xml --server-port=40404
开启server,使用配置文件
gfsh>start server --name=server1 \
--properties-file=D:\gfeserver\gemfire.properties
开启server的相关参数
start server --name=value [--assign-buckets(=value)] [--bind-address=value]
[--cache-xml-file=value] [--classpath=value] [--disable-default-server(=value)]
[--disable-exit-when-out-of-memory(=value)] [--enable-time-statistics(=value)]
[--force(=value)] [--include-system-classpath(=value)] [--properties-file=value]
[--security-properties-file=value]
[--group=value] [--locators=value] [--locator-wait-time=value] [--log-level=value]
[--mcast-address=value] [--mcast-port=value] [--memcached-port=value]
[--memcached-protocol=value] [--rebalance(=value)] [--server-bind-address=value]
[--server-port=value] [--spring-xml-location=value]
[--statistic-archive-file=value] [--dir=value] [--initial-heap=value]
[--max-heap=value] [--use-cluster-configuration(=value)] [--J=value(,value)*]
[--critical-heap-percentage=value] [--critical-off-heap-percentage=value]
[--eviction-heap-percentage=value] [--eviction-off-heap-percentage=value]
[--hostname-for-clients=value] [--max-connections=value]
[--message-time-to-live=value] [--max-message-count=value] [--max-threads=value]
[--socket-buffer-size=value] [--lock-memory=value] [--off-heap-memory-size=value]
locator 参数格式:locators=host1[9001],host2[9003]
10)查看状态
gfsh>status server --name=server1
gfsh>status locator --name=locator1
gfsh>start server --name=server_name --mcast-port=10338 --properties-file=serverConfig/gemfire.properties --security-properties-file=gfsecurity.properties
11)管理数据
创建一个复制持久化的region
创建
这里的region和关系数据库的表一样理解就好了
创建:注意类型REPLICATE_PERSISTENT,很明显复制+持久化。
也就是说region会复制到其他server,且会被持久化
可以指定组参数,如果没有指定则是所有成员有效
–groups=group1 如果指定了则只对特定的组有效
gfsh>create region --name=regionA --type=REPLICATE_PERSISTENT
Member | Status
------- | --------------------------------------
server1 | Region "/regionA" created on "server1"
查看服务的region
gfsh>list regions
List of regions
---------------
regionA
查看cluster的成员
gfsh>list members
Name | Id
-------- | -------------------------------------------------
locator1 | 10.106.3.200(locator1:38535:locator)<ec><v0>:1024
server1 | 10.106.3.200(server1:38769)<v1>:1025
查看具体信息
注意查询region用describe region ,查询locator或server用describe member
gfsh>describe region --name=regionA
..........................................................
Name : regionA
Data Policy : persistent replicate
Hosting Members : server1
Non-Default Attributes Shared By Hosting Members
Type | Name | Value
------ | ----------- | --------------------
Region | data-policy | PERSISTENT_REPLICATE
| size | 0
| scope | distributed-ack
gfsh>describe member --name=locator1
Name : locator1
Id : 10.106.3.200(locator1:38535:locator)<ec><v0>:1024
Host : 10.106.3.200
Regions :
PID : 38535
Groups :
Used Heap : 286M
Max Heap : 3641M
Working Dir : /Users/xx/locator1
Log file : /Users/xx/locator1/locator1.log
Locators : 10.106.3.200[10334]
gfsh>describe member --name=server1
Name : server1
Id : 10.106.3.200(server1:38769)<v1>:1025
Host : 10.106.3.200
Regions : regionA
PID : 38769
Groups :
Used Heap : 52M
Max Heap : 3641M
Working Dir : /Users/xx/server1
Log file : /Users/xx/server1/server1.log
Locators : 10.106.3.200[10334]
Cache Server Information
Server Bind : null
Server Port : 40411
Running : true
Client Connections : 0
使用gfsh管理region中的数据
增加数据
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>query --query="select * from /regionA"
Result : true
Limit : 100
Rows : 2
Result
------
two
one
12)停止server
再启动查看数据,看看数据是否还存在?
gfsh>stop server --name=server1
Stopping Cache Server running in /Users/sunzuoquan/server1 on 10.106.3.200[40411] as server1...
Process ID: 38769
Log File: /Users/sunzuoquan/server1/server1.log
...
gfsh>
gfsh>stop server –dir=server2 这个命令也可以停止服务
stop命令也可以停止locator,参数基本和停止server一致
13)停止集群
gfsh>shutdown –include-locators=true
–include-locators 参数可以停止localtor,如果没有这个参数,则只停止数据节点
–time-out=60 停止的超时时间,避免长时间等待
14)java 连接
<dependency>
<groupId>org.apache.geode</groupId>
<artifactId>geode-core</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>it.unimi.dsi</groupId>
<artifactId>fastutil</artifactId>
<version>8.1.1</version>
</dependency>
public static void main(String[] args) throws Exception {
ClientCache cache = new ClientCacheFactory()
.addPoolLocator("localhost", 10334)
.create();
Region<String, String> region = cache
.<String, String>createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY)
.create("regionA");
region.put("3", "Hello1");
region.put("4", "World1");
for (Map.Entry<String, String> entry : region.entrySet()) {
System.out.format("key = %s, value = %s\n", entry.getKey(), entry.getValue());
}
cache.close();
}
15)集群
https://blog.csdn.net/huanghuitan/article/details/71629774
添加locator server
16)相关术语
数据区域:类似于关系数据库中的表,并以分布式方式管理数据作为名称/值对。
复制区域:在分布式系统的每个缓存成员上存储相同的数据副本。
分区区域:在缓存成员之间传播数据
定位器:提供了发现和负载平衡服务,维护成员服务器的动态列表。默认情况下,Geode客户端和服务器使用端口40404来发现彼此。
17)相关部分命令
quit
start locator
start server --name=server1 --server-port=40404
create region --name=regionA --type=REPLICATE_PERSISTENT
deploy --groups=group1 --jars=/lib/mx4j-3.0.1.jar
deploy --dir=libs/group1-libs
undeploy --jars=group1_functions.jar
undeploy --groups=MemberGroup1
list deployed --groups=MemberGroup1
status server --name=server1
status locator --name=locator1
list regions
list members
describe region --name=regionA
describe member --name=server1
put --region=regionA --key="1" --value="one"
query --query="select * from /regionA"
stop server –dir=server2
shutdown –include-locators=true
export cluster-configuration --zip-file-name=/Users/username/myClConfig.zip
quit
1、简介
Apache Geode是一个数据管理平台,它可以在广泛分布的云架构中提供对数据密集型应用程序的实时、一致的访问。
2、源码
https://github.com/apache/geode
http://apache.org/dyn/closer.cgi/geode/1.4.0
3、主要特性
Geode 包含以下特性:
高的读写吞吐量
低和可预见的延迟
高可伸缩性
持续可用性
可靠的事件通知
在数据存储上并行应用程序行为
无共享磁盘的持久性
降低拥有成本
单跳客户机/服务器的能力
客户机/服务器安全
多站点数据分布
连续查询
异构数据共享
结合冗余、复制和“非共享”的持久化架构,来实现故障安全可靠性(译者解释:高可用,防止单点故障)和性能。
可水平扩展至成千上万个缓存成员,并结合多个缓存拓扑来满足不同的企业需求。该缓存可以分布在多个计算机中。
异步和同步缓存更新传播(propagation)。
Delta 仅在一个对象(delta)新旧不同版本之间传播,而不是整个对象,从而极大降低了分发成本。
可靠的异步事件通知,优化后的、低延迟的分布层保证了消息传递。
无需额外的硬件,应用程序即可提速 4~40 倍。
数据敏感和实时业务智能。如果在您检索时数据发生更改,您能立即看到数据的变化。
与 Spring 框架集成,以加速并简化可扩展的事务型企业应用程序的开发。
支持 JTA 事务。
整个集群范围的配置,可以持久化,并可导出到其他集群。
通过 HTTP 即可实现对集群远程管理。
为 REST 应用程序开发提供 REST API 支持。
在主版本发布之间滚动升级。
4、参考文档
#官方安装指南
http://geode.apache.org/docs/guide/14/getting_started/15_minute_quickstart_gfsh.html
#多节点集群实验
https://blog.csdn.net/huanghuitan/article/details/71629774
#概述
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65146019
#笔记1
https://blog.csdn.net/suncoder/article/details/78506821
#笔记2
https://blog.csdn.net/kmyfoer/article/details/54603120
#java连接geode测试
http://blog.chinaunix.net/uid-11121450-id-5772480.html
#入门示例
http://blog.jobbole.com/87810/
5、安装
1) jdk 1.8以上
下载安装配置环境变量
验证安装
>java -version
统一系统时间戳,分布式环境下的日志、统计和监控
正确配置主机名和host文件,影响gfsh和Pulse功能
关闭SYN cookies 保护,分布式系统会触发这个保护条件
编辑/etc/sysctl.conf文件
net.ipv4.tcp_syncookies = 0
在命令行中执行sysctl -p命令,重载sysctl.conf文件
2) gradle
http://services.gradle.org/distributions/
下载安装,配置环境变量
export PATH=$PATH:/opt/gradle/gradle-4.6/bin
验证安装
>gradle -v
>gradle wrapper
>gradle tasks
3)源码编译安装
http://geode.apache.org/releases/
下载好源代码后解压到目录
进入目录后执行:
$ ./gradlew build -Dskip.tests=true
执行时间比较漫长。
执行完后,加入环境变量:
export PATH=$PATH:~/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/bin/
source .bash_profile
验证安装
>gfsh version
4)运行
进入gfsh命令模式
进入gfsh命令前,先选好工作目录,比如在home下建立一个geode_worker的目录,然后cd到这个目录里面执行gfsh,进入gfsh命令行。这样可以让你的geode文件存储在geode_worker工作目录里。当然也可以不这样做!
>gfsh
5)运行locator
name参数可以不传,如果不传,则使用随机名
默认端口10334
gfsh>start locator --name=locator1
Starting a Geode Locator in /Users/sunzuoquan/locator1...
....
Locator in /Users/sunzuoquan/locator1 on 10.106.3.200[10334] as locator1 is currently online.
Process ID: 38535
Uptime: 3 seconds
Geode Version: 1.3.0
Java Version: 1.8.0_121
Log File: /Users/sunzuoquan/locator1/locator1.log
JVM Arguments: -Dgemfire.enable-cluster-configuration=true -Dgemfire.load-cluster-configuration-from-dir=false -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
Class-Path: /Users/sunzuoquan/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/lib/geode-core-1.3.0.jar:/Users/sunzuoquan/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/lib/geode-dependencies.jar
Successfully connected to: JMX Manager [host=10.106.3.200, port=1099]
Cluster configuration service is up and running.
注意 10.106.3.200[10334]
一个cluster应该有一个locator
connect –locator=localhost[10334]
这个命令可以连接到cluster,确定操作的命令是针对一个cluster的
6)开启 pulse
是个监控工具。
gfsh>start pulse
Launched Geode Pulse
开始我以为这个命令会开启一个服务,没想到直接给我打开了一个浏览器,直接访问了下面地址:
http://localhost:7070/pulse/login.html
默认用户密码:admin/admin
7)开启server
name参数可以不传,如果不传则随机。当有多个server时,启动会与其他server同步数据。如果其他server没有启动,则等待。
默认端口40404
–J=-DDistributionManager.DISCONNECT_WAIT=
这个参数设置给每个阶段的等待时间
还有一个参数很重要:
–groups=group1
表示server所在的组
启动时如果不加端口参数,则默认使用40404
gfsh>start server --name=server1 --server-port=40411
Starting a Geode Server in /Users/sunzuoquan/server1...
....
Server in /Users/xxx/server1 on 10.106.3.200[40411] as server1 is currently online.
Process ID: 38769
Uptime: 3 seconds
Geode Version: 1.3.0
Java Version: 1.8.0_121
Log File: /Users/xxx/server1/server1.log
JVM Arguments: -Dgemfire.default.locators=10.106.3.200[10334] -Dgemfire.start-dev-rest-api=false -Dgemfire.use-cluster-configuration=true -XX:OnOutOfMemoryError=kill -KILL %p -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
Class-Path: /Users/xxx/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/lib/geode-core-1.3.0.jar:/Users/xxx/workdir/software/apache-geode-1.3.0-src/geode-assembly/build/install/apache-geode/lib/geode-dependencies.jar
现在可以看看pulse监控,有什么变化了吗?
会看到有一个节点,这个节点里面有一个locater和一个server,以及他们的名字
可以开启http配置管理
gfsh>start server --name=server1 --J=-Dgemfire.jmx-manager=true \
--J=-Dgemfire.jmx-manager-start=true --http-service-port=8080 \
--http-service-bind-address=myremotecluster.example.com
8)远程配置
gfsh>connect --use-http=true --url="http://myremotecluster.example.com:8080/geode/v1"
Successfully connected to: Geode Manager's HTTP service @ http://myremotecluster.example.com:8080/geode/v1
开启server,指定cache配置
start server --name=server1 --mcast-port=10338 \
--cache-xml-file=../ServerConfigs/cache.xml --server-port=40404
开启server,使用配置文件
gfsh>start server --name=server1 \
--properties-file=D:\gfeserver\gemfire.properties
开启server的相关参数
start server --name=value [--assign-buckets(=value)] [--bind-address=value]
[--cache-xml-file=value] [--classpath=value] [--disable-default-server(=value)]
[--disable-exit-when-out-of-memory(=value)] [--enable-time-statistics(=value)]
[--force(=value)] [--include-system-classpath(=value)] [--properties-file=value]
[--security-properties-file=value]
[--group=value] [--locators=value] [--locator-wait-time=value] [--log-level=value]
[--mcast-address=value] [--mcast-port=value] [--memcached-port=value]
[--memcached-protocol=value] [--rebalance(=value)] [--server-bind-address=value]
[--server-port=value] [--spring-xml-location=value]
[--statistic-archive-file=value] [--dir=value] [--initial-heap=value]
[--max-heap=value] [--use-cluster-configuration(=value)] [--J=value(,value)*]
[--critical-heap-percentage=value] [--critical-off-heap-percentage=value]
[--eviction-heap-percentage=value] [--eviction-off-heap-percentage=value]
[--hostname-for-clients=value] [--max-connections=value]
[--message-time-to-live=value] [--max-message-count=value] [--max-threads=value]
[--socket-buffer-size=value] [--lock-memory=value] [--off-heap-memory-size=value]
locator 参数格式:locators=host1[9001],host2[9003]
10)查看状态
gfsh>status server --name=server1
gfsh>status locator --name=locator1
gfsh>start server --name=server_name --mcast-port=10338 --properties-file=serverConfig/gemfire.properties --security-properties-file=gfsecurity.properties
11)管理数据
创建一个复制持久化的region
创建
这里的region和关系数据库的表一样理解就好了
创建:注意类型REPLICATE_PERSISTENT,很明显复制+持久化。
也就是说region会复制到其他server,且会被持久化
可以指定组参数,如果没有指定则是所有成员有效
–groups=group1 如果指定了则只对特定的组有效
gfsh>create region --name=regionA --type=REPLICATE_PERSISTENT
Member | Status
------- | --------------------------------------
server1 | Region "/regionA" created on "server1"
查看服务的region
gfsh>list regions
List of regions
---------------
regionA
查看cluster的成员
gfsh>list members
Name | Id
-------- | -------------------------------------------------
locator1 | 10.106.3.200(locator1:38535:locator)<ec><v0>:1024
server1 | 10.106.3.200(server1:38769)<v1>:1025
查看具体信息
注意查询region用describe region ,查询locator或server用describe member
gfsh>describe region --name=regionA
..........................................................
Name : regionA
Data Policy : persistent replicate
Hosting Members : server1
Non-Default Attributes Shared By Hosting Members
Type | Name | Value
------ | ----------- | --------------------
Region | data-policy | PERSISTENT_REPLICATE
| size | 0
| scope | distributed-ack
gfsh>describe member --name=locator1
Name : locator1
Id : 10.106.3.200(locator1:38535:locator)<ec><v0>:1024
Host : 10.106.3.200
Regions :
PID : 38535
Groups :
Used Heap : 286M
Max Heap : 3641M
Working Dir : /Users/xx/locator1
Log file : /Users/xx/locator1/locator1.log
Locators : 10.106.3.200[10334]
gfsh>describe member --name=server1
Name : server1
Id : 10.106.3.200(server1:38769)<v1>:1025
Host : 10.106.3.200
Regions : regionA
PID : 38769
Groups :
Used Heap : 52M
Max Heap : 3641M
Working Dir : /Users/xx/server1
Log file : /Users/xx/server1/server1.log
Locators : 10.106.3.200[10334]
Cache Server Information
Server Bind : null
Server Port : 40411
Running : true
Client Connections : 0
使用gfsh管理region中的数据
增加数据
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>query --query="select * from /regionA"
Result : true
Limit : 100
Rows : 2
Result
------
two
one
12)停止server
再启动查看数据,看看数据是否还存在?
gfsh>stop server --name=server1
Stopping Cache Server running in /Users/sunzuoquan/server1 on 10.106.3.200[40411] as server1...
Process ID: 38769
Log File: /Users/sunzuoquan/server1/server1.log
...
gfsh>
gfsh>stop server –dir=server2 这个命令也可以停止服务
stop命令也可以停止locator,参数基本和停止server一致
13)停止集群
gfsh>shutdown –include-locators=true
–include-locators 参数可以停止localtor,如果没有这个参数,则只停止数据节点
–time-out=60 停止的超时时间,避免长时间等待
14)java 连接
<dependency>
<groupId>org.apache.geode</groupId>
<artifactId>geode-core</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>it.unimi.dsi</groupId>
<artifactId>fastutil</artifactId>
<version>8.1.1</version>
</dependency>
public static void main(String[] args) throws Exception {
ClientCache cache = new ClientCacheFactory()
.addPoolLocator("localhost", 10334)
.create();
Region<String, String> region = cache
.<String, String>createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY)
.create("regionA");
region.put("3", "Hello1");
region.put("4", "World1");
for (Map.Entry<String, String> entry : region.entrySet()) {
System.out.format("key = %s, value = %s\n", entry.getKey(), entry.getValue());
}
cache.close();
}
15)集群
https://blog.csdn.net/huanghuitan/article/details/71629774
添加locator server
16)相关术语
数据区域:类似于关系数据库中的表,并以分布式方式管理数据作为名称/值对。
复制区域:在分布式系统的每个缓存成员上存储相同的数据副本。
分区区域:在缓存成员之间传播数据
定位器:提供了发现和负载平衡服务,维护成员服务器的动态列表。默认情况下,Geode客户端和服务器使用端口40404来发现彼此。
17)相关部分命令
quit
start locator
start server --name=server1 --server-port=40404
create region --name=regionA --type=REPLICATE_PERSISTENT
deploy --groups=group1 --jars=/lib/mx4j-3.0.1.jar
deploy --dir=libs/group1-libs
undeploy --jars=group1_functions.jar
undeploy --groups=MemberGroup1
list deployed --groups=MemberGroup1
status server --name=server1
status locator --name=locator1
list regions
list members
describe region --name=regionA
describe member --name=server1
put --region=regionA --key="1" --value="one"
query --query="select * from /regionA"
stop server –dir=server2
shutdown –include-locators=true
export cluster-configuration --zip-file-name=/Users/username/myClConfig.zip
quit