服务器说明
主机(nn): locator1 + server1
主机(db): locator2 + server2
主机(dn1): locator3 + server3
主机(dn2): locator4 + server4
分别在各主机创建Geode工作目录,并在该目录中进入GFSH命令行。
新建多locator集群
主机(nn)
gfsh>start locator --name=locator1 --port=10334 --locators=nn[10334],db[10334]
主机(db)
gfsh>start locator --name=locator2 --port=10334 --locators=nn[10334],db[10334]
主机(nn)
gfsh>start server --name=server1 --server-port=40401 --locator=nn[10334],db[10334]
主机(db)
gfsh>start server --name=server2 --server-port=40401 --locator=nn[10334],db[10334]
主机(nn)
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
db
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
添加新节点
dn1
gfsh>start server --name=server3 --server-port=40401 --locators=nn[10334],db[10334]
dn2
gfsh>start server --name=server4 --server-port=40401 --locators=nn[10334],db[10334]
db & nn
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
nn
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 dn1服务器上的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>
启重节点加入集群
dn1
gfsh>start server --name=server3 --server-port=40401 --locators=nn[10334],db[10334]
nn
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停机并重启服务
db
$ reboot
nn
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
db
gfsh>start locator --name=locator2 --port=10334 --locators=nn[10334],db[10334]
gfsh>start server --name=server2 --server-port=40401 --locator=nn[10334],db[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崩溃
nn 模拟停机,kill所有geode相关进程 此时db机上的连接会自动断开(推断启动locator时,会自动连至locators列表中第一台启动的locator),信息如下:
gfsh> No longer connected to nn[1099].
重新连接到db,如果没有断开连接就不用了
gfsh>connect --locator=db[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