服务器说明
- 主机(T1): locator1 + server1
- 主机(T2): locator2 + server2
- 主机(T3): server3
- 主机(T4): server4
分别在各主机创建Geode工作目录geode_work
,并在该目录中进入gfsh
命令行.
例如:
cd /opt/geode_work
gfsh
新建多locator集群
- 主机(T1)
gfsh>start locator --name=locator1 --port=10334 --locators=T1[10334],T2[10334]
- 主机(T2)
gfsh>start locator --name=locator2 --port=10334 --locators=T1[10334],T2[10334]
- 主机(T1)
gfsh>start server --name=server1 --server-port=40404 --locators=T1[10334],T2[10334]
- 主机(T2)
gfsh>start server --name=server2 --server-port=40404 --locators=T1[10334],T2[10334]
主机(T1)
gfsh>list members
Name | Id
-------- | ---------------------------------------------------
locator1 | 192.168.79.143(locator1:39175:locator)<ec><v0>:1024
locator2 | 192.168.79.145(locator2:33587:locator)<ec><v1>:1024
server1 | 192.168.79.143(server1:39334)<v2>:1025
server2 | 192.168.79.145(server2:33715)<v3>:1025
主机(T2)
gfsh>list members
Name | Id
-------- | ---------------------------------------------------
locator1 | 192.168.79.143(locator1:39175:locator)<ec><v0>:1024
locator2 | 192.168.79.145(locator2:33587:locator)<ec><v1>:1024
server1 | 192.168.79.143(server1:39334)<v2>:1025
server2 | 192.168.79.145(server2:33715)<v3>:1025
添加新节点
T3
gfsh>start server --name=server3 --server-port=40404 --locators=T1[10334],T2[10334]
T4
gfsh>start server --name=server4 --server-port=40404 --locators=T1[10334],T2[10334]
T1 & T2
gfsh>list members
Name | Id
-------- | ---------------------------------------------------
server3 | 192.168.79.139(server3:5244)<v5>:1024
server4 | 192.168.79.142(server4:5160)<v4>:1024
locator1 | 192.168.79.143(locator1:39175:locator)<ec><v0>:1024
locator2 | 192.168.79.145(locator2:33587:locator)<ec><v1>:1024
server1 | 192.168.79.143(server1:39334)<v2>:1025
server2 | 192.168.79.145(server2:33715)<v3>:1025
T1
gfsh>create region --name=region1 --type=REPLICATE_PERSISTENT
Member | Status
------- | --------------------------------------
server1 | Region "/region1" created on "server1"
server2 | Region "/region1" created on "server2"
server3 | Region "/region1" created on "server3"
server4 | Region "/region1" created on "server4"
测试关闭节点
gfsh>stop server --name=server4
gfsh>list members
Name | Id
-------- | ---------------------------------------------------
server3 | 192.168.79.139(server3:5244)<v5>:1024
locator1 | 192.168.79.143(locator1:39175:locator)<ec><v0>:1024
locator2 | 192.168.79.145(locator2:33587:locator)<ec><v1>:1024
server1 | 192.168.79.143(server1:39334)<v2>:1025
server2 | 192.168.79.145(server2:33715)<v3>:1025
模拟机器崩溃
kill T3服务器上的server3进程
gfsh>list members
Name | Id
-------- | ---------------------------------------------------
locator1 | 192.168.79.143(locator1:39175:locator)<ec><v0>:1024
locator2 | 192.168.79.145(locator2:33587:locator)<ec><v1>:1024
server1 | 192.168.79.143(server1:39334)<v2>:1025
server2 | 192.168.79.145(server2:33715)<v3>:1025
gfsh>describe region --name=region1
..........................................................
Name : region1
Data Policy : persistent replicate
Hosting Members : server2
server1
Non-Default Attributes Shared By Hosting Members
Type | Name | Value
------ | ----------- | --------------------
Region | data-policy | PERSISTENT_REPLICATE
| size | 0
| scope | distributed-ack
gfsh>put --region=region1 --key="1" --value="one"
Result : true
Key Class : java.lang.String
Key : 1
Value Class : java.lang.String
Old Value : <NULL>
启重节点加入集群
T3
gfsh>start server --name=server3 --server-port=40401 --locators=T1[10334],T2[10334]
T1
gfsh>describe region --name=region1
..........................................................
Name : region1
Data Policy : persistent replicate
Hosting Members : server3
server2
server1
Non-Default Attributes Shared By Hosting Members
Type | Name | Value
------ | ----------- | --------------------
Region | data-policy | PERSISTENT_REPLICATE
| size | 1
| scope | distributed-ack
gfsh>query --query="select * from /region1"
Result : true
startCount : 0
endCount : 20
Rows : 1
Result
------
one
NEXT_STEP_NAME : END
模拟locator停机并重启服务
T2
$ reboot
T1
gfsh>list members
Name | Id
-------- | ---------------------------------------------------
server3 | 192.168.79.139(server3:5617)<v8>:1024
locator1 | 192.168.79.143(locator1:39175:locator)<ec><v0>:1024
server1 | 192.168.79.143(server1:39334)<v2>:1025
gfsh>query --query="select * from /region1"
Result : true
startCount : 0
endCount : 20
Rows : 1
Result
------
one
NEXT_STEP_NAME : END
T2
gfsh>start locator --name=locator2 --port=10334 --locators=T1[10334],T2[10334]
gfsh>start server --name=server2 --server-port=40401 --locator=T1[10334],T2[10334]
gfsh>list members
Name | Id
-------- | ---------------------------------------------------
server3 | 192.168.79.139(server3:3950)<v23>:1024
locator2 | 192.168.79.146(locator2:5447:locator)<ec><v25>:1024
locator1 | 192.168.79.149(locator1:5200:locator)<ec><v12>:1024
server2 | 192.168.79.146(server2:5602)<v26>:1025
server1 | 192.168.79.149(server1:5303)<v13>:1025
gfsh>describe region --name=region1
..........................................................
Name : region1
Data Policy : persistent replicate
Hosting Members : server3
server2
server1
Non-Default Attributes Shared By Hosting Members
Type | Name | Value
------ | ----------- | --------------------
Region | data-policy | PERSISTENT_REPLICATE
| size | 1
| scope | distributed-ack
gfsh>query --query="select * from /region1"
Result : true
startCount : 0
endCount : 20
Rows : 1
Result
------
one
NEXT_STEP_NAME : END
模拟locator崩溃
T1 模拟停机,kill所有geode相关进程 此时T2机上的连接会自动断开(推断启动locator时,会自动连至locators列表中第一台启动的locator),信息如下:
gfsh>
No longer connected to T1[1099].
重新连接到T2,如果没有断开连接就不用了
gfsh>connect --locator=T2[10334]
gfsh>describe region --name=region1
..........................................................
Name : region1
Data Policy : persistent replicate
Hosting Members : server3
server2
Non-Default Attributes Shared By Hosting Members
Type | Name | Value
------ | ----------- | --------------------
Region | data-policy | PERSISTENT_REPLICATE
| size | 1
| scope | distributed-ack
gfsh>query --query="select * from /region1"
Result : true
startCount : 0
endCount : 20
Rows : 1
Result
------
one
NEXT_STEP_NAME : END
END!