你需要一个Apache Geode快速介绍吗?让我们通过试用它的基本特点和功能进行简短的旅行吧。
第1步: 安装Apache Geode.
第2步: 使用 gfsh命令启动Locator.
在命令窗口,用gfsh命令行界面启动一个locator。apache geode gfsh 提供一个单一,直观的命令行界面,你查以在里面运行,管理,监控 geode进程,数据,和应用。查看 gfsh (Geode SHell).
locator是一个geode进程,它告诉一个新连接的成员其它正在运行的成员的位置,并为服务器提供负载均衡。
默认情况下,locator,启动一个JMX管理器,用于监测和管理geode集群。集群配置服务使用locator为所有
成员来保存和分发信群配置信息。看查运行geode locator进程 和 集群配置服务概述。
1.创建工作目录(例如gemfire
),并切换到此目录。gfsh
命令保存locator和server的工作目录和日志在这个目录中。
2.在命令行中键入gfsh启动它,(如果你是在windows系统中则使用
gfsh.bat
)。
- _________________________ __
- / _____/ ______/ ______/ /____/ /
- / / __/ /___ /_____ / _____ /
- / /__/ / ____/ _____/ / / / /
- /______/_/ /______/_/ /_/ v8.2.0
- Monitor and Manage GemFire
- gfsh>
- gfsh>start locator --name=locator1
- Starting a GemFire Locator in /home/username/my_gemfire/locator1...
- .................................
- Locator in /home/username/my_gemfire/locator1 on ubuntu.local[10334] as locator1 is currently online.
- Process ID: 3529
- Uptime: 18 seconds
- GemFire Version: 8.2.0
- Java Version: 1.8.0_60
- Log File: /home/username/my_gemfire/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: /home/username/Pivotal_GemFire_820_b17919_Linux/lib/gemfire.jar:
- /home/username/Pivotal_GemFire_820_b17919_Linux/lib/locator-dependencies.jar
- Successfully connected to: [host=ubuntu.local, port=1099]
- Cluster configuration service is up and running.
- gfsh>start pulse

第4步:启动服务器.
一个geode服务器是一个进程,它作为一个长期的,可配置的集群(也被称为分布式系统)中的一个成员运行着。geode服务器主要用于存放长期存放的数据区域,也用于运行标准的geode进程,例如在客户端/服务器配置中的服务器。查看 运行geode服务器进程。
启动缓存服务器
- gfsh>start server --name=server1 --server-port=40411
此命令启动一个服务器,名称为server1,运行在40411端口
在Pulse观察变化(新的成员和服务器)试着展开分布式系统图标来以图形化方式查看locator和服务器。
第5步:创建一个复制的,持久化的区域.
在这一步你使用gfsh命令行创建数据区域。区域是geode集群的核心基石并提供了管理数据的方法。
你用来练习的区域使用了复制功能在集群成员中复制数据,并使用了持久化装数据保存到了磁盘。
1.创建一个复制,持久的区域。
- gfsh>create region --name=regionA --type=REPLICATE_PERSISTENT
- Member | Status
- ------- | --------------------------------------
- server1 | Region "/regionA" created on "server1"
注意到 regionA存放到了 server1
2.用gfsh命令来查看集群中的区域
- gfsh>list regions
- List of regions
- ---------------
- regionA
3.列出集群上的成员,你开启的locator和缓存服务器出现在列表中
- gfsh>list members
- Name | Id
- -------- | ---------------------------------------
- locator1 | ubuntu(locator1:3529:locator)<v0>:59926
- server1 | ubuntu(server1:3883)<v1>:65390
4.查看区域说明,键入
- 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 | size | 0
5.在pulse中,点击绿色的集群图标来查看所有的新成员和新区域,这些都是你刚刚为你的集群添加的。
注意:将此提示保持在开着的状态,以便进行下一步。
第6步: 操作区域中的数据并演示持久化.
geode以键值方式管理数据,在大多数应用程序中,java应用添加,删除和修改保存的数据,你也可以用gfsh
命令来添加或查询。查看数据命令。
1.运行如下的put命令来将数据添加到区域中
- 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>
- gfsh>query --query="select * from /regionA"
- Result : true
- startCount : 0
- endCount : 20
- Rows : 2
- Result
- ------
- two
- one
- gfsh>stop server --name=server1
- Stopping Cache Server running in /home/username/my_gemfire/server1 on ubuntu.local[40411] as server1...
- Process ID: 3883
- Log File: /home/username/my_gemfire/server1/server1.log
- ....
- gfsh>start server --name=server1 --server-port=40411
- gfsh>query --query="select * from /regionA"
- Result : true
- startCount : 0
- endCount : 20
- Rows : 2
- Result
- ------
- two
- one
第7步: 检查复制效果.
在这一步中,你开启第二台缓存服务器,因为regionA是可复制的,数据将在任何一台存有regionA区域的服务器中可用。
1.开启第二台缓存服务器
- gfsh>start server --name=server2 --server-port=40412
describe region查看regionA信息
- gfsh>describe region --name=regionA
- ..........................................................
- Name : regionA
- Data Policy : persistent replicate
- Hosting Members : server1
- server2
- Non-Default Attributes Shared By Hosting Members
- Type | Name | Value
- ------ | ---- | -----
- Region | size | 2
- gfsh>put --region=regionA --key="3" --value="three"
- Result : true
- Key Class : java.lang.String
- Key : 3
- Value Class : java.lang.String
- Old Value : <NULL>
- gfsh>stop server --name=server1
- Stopping Cache Server running in /home/username/my_gemfire/server1 on ubuntu.local[40411] as server1...
- Process ID: 4064
- Log File: /home/username/my_gemfire/server1/server1.log
- ....
- gfsh>query --query="select * from /regionA"
- Result : true
- startCount : 0
- endCount : 20
- Rows : 3
- Result
- ------
- two
- one
- three
- gfsh>put --region=regionA --key="4" --value="four"
- Result : true
- Key Class : java.lang.String
- Key : 3
- Value Class : java.lang.String
- Old Value : <NULL>
- gfsh>describe region --name=regionA
- ..........................................................
- Name : regionA
- Data Policy : persistent replicate
- Hosting Members : server2
- Non-Default Attributes Shared By Hosting Members
- Type | Name | Value
- ------ | ---- | -----
- Region | size | 4
- gfsh>stop server --name=server2
- Stopping Cache Server running in /home/username/my_gemfire/server2 on ubuntu.local[40412] as server2...
- Process ID: 4185
- Log File: /home/username/my_gemfire/server2/server2.log
- .....
第8步: 并行重启缓存服务器.
在这一步中并行重新启动缓存服务器。由于数据是持久化的,当服务器重新启动时,数据可用。由于数据被复制,您必须并行启动服务器,以便在启动前同步他们的数据。
1.启动server1,因为regionA是可复制和持久化的,它需要其它服务器上的数据来启动并等待其它服务器启动。
- gfsh>start server --name=server1 --server-port=40411
- Starting a GemFire Server in /home/username/my_gemfire/server1...
- ............................................................................
- ............................................................................
- [info 2015/01/14 09:08:13.610 PST server1 <main> tid=0x1] Region /regionA has pot
- entially stale data. It is waiting for another member to recover the latest data.
- My persistent id:
- DiskStore ID: 8e2d99a9-4725-47e6-800d-28a26e1d59b1
- Name: server1
- Location: /192.0.2.0:/home/username/my_gemfire/server1/.
- Members with potentially new data:
- [
- DiskStore ID: 2e91b003-8954-43f9-8ba9-3c5b0cdd4dfa
- Name: server2
- Location: /192.0.2.0:/home/username/my_gemfire/server2/.
- ]
- Use the "gemfire list-missing-disk-stores" command to see all disk stores that
- are being waited on by other members.
my_gemfire
)并且启动gfsh.
- [username@localhost ~/my_gemfire]$ gfsh
- _________________________ __
- / _____/ ______/ ______/ /____/ /
- / / __/ /___ /_____ / _____ /
- / /__/ / ____/ _____/ / / / /
- /______/_/ /______/_/ /_/ v8.2.0
- Monitor and Manage GemFire
- gfsh>connect --locator=localhost[10334]
- Connecting to Locator at [host=localhost, port=10334] ..
- Connecting to Manager at [host=ubuntu.local, port=1099] ..
- Successfully connected to: [host=ubuntu.local, port=1099]
- gfsh>start server --name=server2 --server-port=40412
- Server in /home/username/my_gemfire/server1 on ubuntu.local[40411] as server1 is currently online.
- Process ID: 3402
- Uptime: 1 minute 46 seconds
- GemFire Version: 8.2.0
- Java Version: 1.8.0_60
- Log File: /home/username/my_gemfire/server1/server1.log
- JVM Arguments: -Dgemfire.default.locators=192.0.2.0[10334] -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: /home/username/Pivotal_GemFire_820_b17919_Linux/lib/gemfire.jar:
- /home/username/Pivotal_GemFire_820_b17919_Linux/lib/server-dependencies.jar
- gfsh>list members
- Name | Id
- -------- | ---------------------------------------
- server2 | ubuntu(server2:3992)<v8>:21507
- server1 | ubuntu(server1:3402)<v7>:36532
- locator1 | ubuntu(locator1:2813:locator)<v0>:46644
- gfsh>query --query="select * from /regionA"
- Result : true
- startCount : 0
- endCount : 20
- Rows : 5
- Result
- ------
- one
- two
- four
- Three
- NEXT_STEP_NAME : END
- gfsh>stop server --dir=server2
- Stopping Cache Server running in /home/username/my_gemfire/server2 on 192.0.2.0[40412] as server2...
- Process ID: 3992
- Log File: /home/username/my_gemfire/server2/server2.log
- ....
- gfsh>query --query="select * from /regionA"
- Result : true
- startCount : 0
- endCount : 20
- Rows : 5
- Result
- ------
- one
- two
- four
- Three
- NEXT_STEP_NAME : END
第9步: 关闭系统包括你的locator.
按以下步骤来关闭集群
1.在当前的gfsh会话中,停止集群
- gfsh>shutdown --include-locators=true
- As a lot of data in memory will be lost, including possibly events in queues,
- do you really want to shutdown the entire distributed system? (Y/n): Y
- Shutdown is triggered
- gfsh>
- No longer connected to ubuntu.local[1099].
- gfsh>
第10步: 下步做什么…
- 继续阅读刚刚推出的下一节,以了解更多有关的组件和概念。
- 更多的练习
gfsh
,查看 Tutorial—Performing Common Tasks with gfsh. - 学习有关集群配置服务, 查看 Tutorial—Creating and Using a Cluster Configuration.