服務器說明
主機(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