Apache Geode 2.2 创建和使用群集配置

实训—创建和使用群集配置

一个简短的演练,使用一台计算机演示如何使用gfsh为Geode集群创建集群配置。

gfsh命令行工具允许您配置和启动Geode集群。群集配置服务使用Apache Geode定位器在成员组和群集级别存储配置,并在新成员启动时将这些配置提供给新成员。 定位器将配置存储在可供所有定位器使用的隐藏区域中,并将配置数据作为XML文件写入磁盘。配置数据在执行gfsh命令时更新。

本节提供了配置简单Apache Geode集群,及在新上下文中重用该配置的演练示例。 

  1. 创建一个工作目录(例如:/ home / username / my_geode)并切换到新目录。该目录将包含群集的配置。

  2. 启动gfsh命令行工具。例如:

    $ gfsh
    

    将显示gfsh命令提示符。

        _________________________     __
       / _____/ ______/ ______/ /____/ /
      / /  __/ /___  /_____  / _____  /
     / /__/ / ____/  _____/ / /    / /
    /______/_/      /______/_/    /_/    1.8
    
    Monitor and Manage Apache Geode
    gfsh>
    
    
  3. 使用以下示例中的命令启动定位器:

    gfsh>start locator --name=locator1
    Starting a Geode Locator in /Users/username/my_geode/locator1...
    .............................
    Locator in /Users/username/my_geode/locator1 on 192.0.2.0[10334] as locator1
    is currently online.
    Process ID: 5203
    Uptime: 15 seconds
    Geode Version: 1.8
    Java Version: 1.8.0_121
    Log File: /Users/username/my_geode/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/username/Apache_Geode_1.0.0_Linux/lib/geode-dependencies.jar
    
    Successfully connected to: [host=192.0.2.0, port=1099]
    
    Cluster configuration service is up and running.
    

    请注意,gfsh会响应一条消息,指示群集配置服务已启动并正在运行。 如果看到指示问题的消息,请查看定位器日志文件以查找可能的错误。日志文件的路径显示在gfsh的输出中。

    注:在虚拟机测试时,无法启动,根据提示定位到locator1文件夹下的locator1.log文件(Geode会在执行目录下创建--name指定的名称文件夹,这个文件夹下会有相关的log等文件),打开locator1.log文件查找不能启动原因:

     从locator1.log文件中可以看到,locator1绑定的IP地址是 211.98.71.195,不是虚拟机真实地址,为什么没有获取到,这里先存疑,待后续解决。(这个是因为没有在Hosts文件中配置IP及对应主机名

    使用help命令查看start locator 支持那些参数: 

     调整启动命令,指定绑定IP,显示启动成功(后续命令都需要指定IP,将不再特别说明

     

  4. 使用以下示例中的命令启动Apache Geode服务器:

    gfsh>start server --name=server1 --groups=group1
    Starting a Geode Server in /Users/username/my_geode/server1...
    .....
    Server in /Users/username/my_geode/server1 on 192.0.2.0[40404] as server1
    is currently online.
    Process ID: 5627
    Uptime: 2 seconds
    Geode Version: 1.8
    Java Version: 1.8.0_121
    Log File: /Users/username/my_geode/server1/server1.log
    JVM Arguments: -Dgemfire.default.locators=192.0.2.0[10334] -Dgemfire.groups=group1
    -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/username/Apache_Geode_1.0.0_Linux/lib/geode-dependencies.jar
    
    gfsh>start server --name=server2 --groups=group1 --server-port=40405
    Starting a Geode Server in /Users/username/my_geode/server2...
    .....
    Server in /Users/username/my_geode/server2 on 192.0.2.0[40405] as server2
    is currently online.
    Process ID: 5634
    Uptime: 2 seconds
    Geode Version: 1.8
    Java Version: 1.8.0_121
    Log File: /Users/username/my_geode/server2/server2.log
    JVM Arguments: -Dgemfire.default.locators=192.0.2.0[10334] -Dgemfire.groups=group1
    -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/username/Apache_Geode_1.0.0_Linux/lib/geode-dependencies.jar
    
    gfsh>start server --name=server3 --server-port=40406
    Starting a Geode Server in /Users/username/my_geode/server3...
    .....
    Server in /Users/username/my_geode/server3 on 192.0.2.0[40406] as server3
    is currently online.
    Process ID: 5637
    Uptime: 2 seconds
    Geode Version: 1.8
    Java Version: 1.8.0_121
    Log File: /Users/username/my_geode/server3/server3.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: /Users/username/Apache_Geode_1.0.0_Linux/lib/geode-dependencies.jar
    

    请注意,用于启动server1和server2的gfsh命令指定名为group1的组,而server3的命令未指定组名称。

  5. 使用以下示例中的命令创建一些区域:

    gfsh>create region --name=region1 --groups=group1 --type=REPLICATE
    Member  | Status
    ------- | --------------------------------------
    server2 | Region "/region1" created on "server2"
    server1 | Region "/region1" created on "server1"
    
    gfsh>create region --name=region2 --type=REPLICATE
    Member  | Status
    ------- | --------------------------------------
    server1 | Region "/region2" created on "server1"
    server2 | Region "/region2" created on "server2"
    server3 | Region "/region2" created on "server3"
    

    请注意,仅在启动缓存服务器(在此示例中为server1和server2)时指定成员组名为group1的所有缓存服务器上创建region1。在所有成员上创建了region2,因为未指定任何组。

  6. 部署jar文件。使用gfsh deploy命令将应用程序jar文件部署到所有成员或指定的成员组。下面的示例将从分发中部署mx4j-3.0.1.jar和ra.jar文件。(注意:这只是一个示例,您不需要部署这些文件来使用群集配置服务。或者,您可以使用任何两个jar文件进行此演示。)

    gfsh>deploy --groups=group1 --jars=/lib/mx4j-3.0.1.jar
    Post substitution: deploy --groups=group1 --jars=/Users/username/Apache_Geode_1.0.0_Linux/lib/mx4j-3.0.1.jar
    Member  |    Deployed JAR    | Deployed JAR Location
    ------- | ------------------ | -------------------------------------------------------
    server1 | mx4j-3.0.1.jar     | /Users/username/my_geode/server1/vf.gf#mx4j-3.0.1.jar#1
    server2 | mx4j-3.0.1.jar     | /Users/username/my_geode/server2/vf.gf#mx4j-3.0.1.jar#1
    
    gfsh>deploy --jars=/lib/ra.jar
    Post substitution: deploy --jar=/Users/username/Apache_Geode_1.0.0_Linux/lib/ra.jar
    Member  | Deployed JAR | Deployed JAR Location
    ------- | ------------ | -----------------------------------------------
    server1 | ra.jar       | /Users/username/my_geode/server1/vf.gf#ra.jar#1
    server2 | ra.jar       | /Users/username/my_geode/server1/vf.gf#ra.jar#1
    server3 | ra.jar       | /Users/username/my_geode/server1/vf.gf#ra.jar#1
    

    请注意,mx4j-3.0.1.jar文件仅部署到group1的成员,ra.jar已部署到所有成员。

  7. 导出群集配置。您可以使用gfsh export cluster-configuration命令创建包含群集持久配置的zip文件。zip文件包含cluster_config目录内容的副本。例如:

    gfsh>export cluster-configuration --zip-file-name=/Users/username/myClConfig.zip
    

    Apache Geode将群集配置写入指定的zip文件。

    Downloading cluster configuration : /Users/username/myClConfig.zip
    

    其余步骤演示了如何使用刚刚创建的群集配置。

  8. 使用以下命令关闭群集:

    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 192.0.2.0[1099].
    gfsh>
    
  9. 退出gfsh命令shell:

    gfsh>quit
    Exiting...
    
  10. 创建一个新的工作目录(例如:new_geode)并切换到新目录。

  11. 启动gfsh命令shell:

    $ gfsh
    
  12. 启动一个新的定位器。例如:

    gfsh>start locator --name=locator2 --port=10335
    Starting a Geode Locator in /Users/username/new_geode/locator2...
    .............................
    Locator in /Users/username/new_geode/locator2 on 192.0.2.0[10335] as locator2
    is currently online.
    Process ID: 5749
    Uptime: 15 seconds
    Geode Version: 1.8
    Java Version: 1.8.0_121
    Log File: /Users/username/new_geode/locator2/locator2.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/username/Apache_Geode_1.0.0_Linux/lib/geode-dependencies.jar
    
    Successfully connected to: [host=192.0.2.0, port=1099]
    
    Cluster configuration service is up and running.
    
  13. 使用import cluster-configuration命令导入集群配置。例如:

    gfsh>import cluster-configuration --zip-file-name=/Users/username/myClConfig.zip
    Cluster configuration successfully imported
    

    请注意,locator2目录现在包含cluster_config子目录。

  14. 启动不引用组的服务器:

    gfsh>start server --name=server4 --server-port=40414
    Starting a Geode Server in /Users/username/new_geode/server4...
    ........
    Server in /Users/username/new_geode/server4 on 192.0.2.0[40414] as server4
    is currently online.
    Process ID: 5813
    Uptime: 4 seconds
    Geode Version: 1.8
    Java Version: 1.8.0_121
    Log File: /Users/username/new_geode/server4/server4.log
    JVM Arguments: -Dgemfire.default.locators=192.0.2.0[10335]
    -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/username/Apache_Geode_1.0.0_Linux/lib/geode-dependencies.jar
    
  15. 启动另一个引用group1的服务器:

    gfsh>start server --name=server5 --groups=group1 --server-port=40415
    Starting a Geode Server in /Users/username/new_geode/server5...
    .....
    Server in /Users/username/new_geode/server2 on 192.0.2.0[40415] as server5
    is currently online.
    Process ID: 5954
    Uptime: 2 seconds
    Geode Version: 1.8
    Java Version: 1.8.0_121
    Log File: /Users/username/new_geode/server5/server5.log
    JVM Arguments: -Dgemfire.default.locators=192.0.2.0[10335] -Dgemfire.groups=group1
    -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/username/Apache_Geode_1.0.0_Linux/lib/geode-dependencies.jar
    
  16. 使用list regions命令显示已配置的区域。请注意,在原始群集级别中配置的region1和region2可用。

    gfsh>list regions
    List of regions
    ---------------
    region1
    region2
    
  17. 使用describe region命令查看哪些成员托管每个区域。请注意,region1仅由server5托管,因为server5是使用group1配置启动的。region2托管在server4和server5上,因为在没有指定组的情况下创建了region2。

    gfsh>describe region --name=region1
    ..........................................................
    Name            : region1
    Data Policy     : replicate
    Hosting Members : server5
    
    Non-Default Attributes Shared By Hosting Members
    
     Type  |    Name     | Value
    ------ | ----------- | ---------------
    Region | data-policy | REPLICATE
           | size        | 0
           | scope       | distributed-ack
    
    gfsh>describe region --name=region2
    ..........................................................
    Name            : region2
    Data Policy     : replicate
    Hosting Members : server5
                      server4
    
    Non-Default Attributes Shared By Hosting Members
    
     Type  |    Name     | Value
    ------ | ----------- | ---------------
    Region | data-policy | REPLICATE
           | size        | 0
           | scope       | distributed-ack
    

    此新群集使用与原始系统相同的配置。您可以使用此群集配置启动任意数量的服务器。所有服务器都将收到群集级配置。指定group1的服务器也会收到group1配置。

  18. 使用以下命令关闭群集:

    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 192.0.2.0[1099].

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值