`
bewithme
  • 浏览: 430991 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache Geode 创建和使用群集配置教程

阅读更多

 

使用单机演示如何为一个Geode集群使用gfsh命令来创建集群配置。

 

gfsh命令行工具允许你创建和启动Geode集群,集群配置服务使用定位器(locator)以组级别和集群级别来存储配置并且为新的成员在启动时提供服务。定位器将配置存储在一个隐藏的区域中,它可以被所有的定位器使用,并且以xml形式将配置写入碰盘。当gfsh命令执行时,配置会被更新。

 

本节提供了一个简短的例子,配置一个简单的Apache Geode集群,并在新的上下文中重用。

 

1.创建一个工作目录 (例如:/home/username/my_gemfire) 然后切换到此目录。此目录将为你的集群存储配置。

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

 

$ gfsh

gfsh命令提示显示

 

 

    _________________________     __
   / _____/ ______/ ______/ /____/ /
  / /  __/ /___  /_____  / _____  /
 / /__/ / ____/  _____/ / /    / /
/______/_/      /______/_/    /_/    1.0.0

Monitor and Manage Apache Geode
gfsh>

3.使用如下命令启动一个定位器

 

 

gfsh>start locator --name=locator1
Starting a GemFire Locator in /Users/username/my_gemfire/locator1...
.............................
Locator in /Users/username/my_gemfire/locator1 on 192.0.2.0[10334] as locator1 is currently online.
Process ID: 5203
Uptime: 15 seconds
GemFire Version: 8.1.0
Java Version: 1.7.0_71
Log File: /Users/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: /Users/username/Pivotal_GemFire_810_b50582_Linux/lib/gemfire.jar
:/Users/username/Pivotal_GemFire_810_b50582_Linux/lib/locator-dependencies.jar

Successfully connected to: [host=192.0.2.0, port=1099]

Cluster configuration service is up and running.

 注意到gfsh的响应为一条指示集群配置服务已经运行的消息。如果你看到一条消息指出存在的问题,检查定位器的日志文件查看可能的错误。日志文件的路径显示在了gfsh的输出中。

 

4.使用如下命令启动Apache Geode服务器

 

gfsh>start server --name=server1 --group=group1
Starting a GemFire Server in /Users/username/my_gemfire/server1...
.....
Server in /Users/username/my_gemfire/server1 on 192.0.2.0[40404] as server1 is currently online.
Process ID: 5627
Uptime: 2 seconds
GemFire Version: 8.1.0
Java Version: 1.7.0_71
Log File: /Users/username/my_gemfire/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/Pivotal_GemFire_810_b50582_Linux/lib/gemfire.jar
:/Users/username/Pivotal_GemFire_810_b50582_Linux/lib/server-dependencies.jar

gfsh>start server --name=server2 --group=group1 --server-port=40405
Starting a GemFire Server in /Users/username/my_gemfire/server2...
.....
Server in /Users/username/my_gemfire/server2 on 192.0.2.0[40405] as server2 is currently online.
Process ID: 5634
Uptime: 2 seconds
GemFire Version: 8.1.0
Java Version: 1.7.0_71
Log File: /Users/username/my_gemfire/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/Pivotal_GemFire_810_b50582_Linux/lib/gemfire.jar
:/Users/username/Pivotal_GemFire_810_b50582_Linux/lib/server-dependencies.jar

gfsh>start server --name=server3 --server-port=40406
Starting a GemFire Server in /Users/username/my_gemfire/server3...
.....
Server in /Users/username/my_gemfire/server3 on 192.0.2.0[40406] as server3 is currently online.
Process ID: 5637
Uptime: 2 seconds
GemFire Version: 8.1.0
Java Version: 1.7.0_71
Log File: /Users/username/my_gemfire/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/Pivotal_GemFire_810_b50582_Linux/lib/gemfire.jar
:/Users/username/Pivotal_GemFire_810_b50582_Linux/lib/server-dependencies.jar

 注意到你使用的用来启动server1和server2gfsh命令指定了一个组,名字为group1,然而你没有为server3指定组名。

 

5.使用以下指令创建一些区域:

 

gfsh>create region --name=region1 --group=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"

 注意到当缓存服务器(server1server2,在本例中)启动时region1指定了组名为group1被创建在所有的缓存服务器中。region2被创建在所有成员中,因为没有指定组名。

 

 

6.部署jar文件。使用gfsh布署命令来布署应用jar文件到所有的成员或到一个指定的组成员。如下的例子从Pivotal GemFire分布式第统中布署mail.jar和mx4j.jar文件。(注意:这只是一个例子,你没有必要使用集群配置服务布署这些文件。或者,您可以使用任何两个jar文件用于此演示)。

gfsh>deploy --group=group1 --jar=${SYS_GEMFIRE_DIR}/lib/mail.jar
Post substitution: deploy --group=group1 --jar=/Users/username/Pivotal_GemFire_810_b50582_Linux/lib/mail.jar
Member  | Deployed JAR | Deployed JAR Location
------- | ------------ | -------------------------------------------------
server1 | mail.jar     | /Users/username/my_gemfire/server1/vf.gf#mail.jar#1
server2 | mail.jar     | /Users/username/my_gemfire/server2/vf.gf#mail.jar#1

gfsh>deploy --jar=${SYS_GEMFIRE_DIR}/lib/mx4j.jar
Post substitution: deploy --jar=/Users/username/Pivotal_GemFire_810_b50582_Linux/lib/mx4j.jar
Member  | Deployed JAR | Deployed JAR Location
------- | ------------ | -------------------------------------------------
server1 | mx4j.jar     | /Users/username/my_gemfire/server1/vf.gf#mx4j.jar#1
server2 | mx4j.jar     | /Users/username/my_gemfire/server2/vf.gf#mx4j.jar#1
server3 | mx4j.jar     | /Users/username/my_gemfire/server3/vf.gf#mx4j.jar#1

注意到mail.jar只布署到了group1组成员中而mx4j.jar布署到了所有成员中。

 

7.导出集群配置。你可以使用gfsh命令导出集群配置来创建一个包括集群配置的zip文件。这个zip文件包括了

cluster_config目录中的内容考贝。例如:

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

 Apache Geode会把集群配置写到指定的zip文件中

Downloading cluster configuration : /Users/username/myClusterConfig.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命令

gfsh>quit
Exiting...

 10.创建工作目录 (例如: new_gemfire) 并切换到新的目录。

11.启动gfsh

$ gfsh

 12.启动一个新定位器,例如

gfsh>start locator --name=locator2 --port=10335
Starting a GemFire Locator in /Users/username/new_gemfire/locator2...
.............................
Locator in /Users/username/new_gemfire/locator2 on 192.0.2.0[10335] as locator2 is currently online.
Process ID: 5749
Uptime: 15 seconds
GemFire Version: 8.1.0
Java Version: 1.7.0_71
Log File: /Users/username/new_gemfire/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/Pivotal_GemFire_810_b50582_Linux/lib/gemfire.jar
:/Users/username/Pivotal_GemFire_810_b50582_Linux/lib/locator-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/myClusterConfig.zip
Cluster configuration successfully imported

 注意到 locator2 目录现在包括了 cluster_config 子目录。

14.不引用组启动一个服务器

gfsh>start server --name=server4 --server-port=40414
Starting a GemFire Server in /Users/username/new_gemfire/server4...
........
Server in /Users/username/new_gemfire/server4 on 192.0.2.0[40414] as server4 is currently online.
Process ID: 5813
Uptime: 4 seconds
GemFire Version: 8.1.0
Java Version: 1.7.0_71
Log File: /Users/username/new_gemfire/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/Pivotal_GemFire_810_b50582_Linux/lib/gemfire.jar
:/Users/username/Pivotal_GemFire_810_b50582_Linux/lib/server-dependencies.jar

 15.引用group1组启动服务器

gfsh>start server --name=server5 --group=group1 --server-port=40415
Starting a GemFire Server in /Users/username/new_gemfire/server5...
.....
Server in /Users/username/new_gemfire/server2 on 192.0.2.0[40415] as server5 is currently online.
Process ID: 5954
Uptime: 2 seconds
GemFire Version: 8.1.0
Java Version: 1.7.0_71
Log File: /Users/username/new_gemfire/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/Pivotal_GemFire_810_b50582_Linux/lib/gemfire.jar
:/Users/username/Pivotal_GemFire_810_b50582_Linux/lib/server-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 | size | 0

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 | size | 0

这个集群使用了与最初的系统一样的配置。你可以使用这个配置启动任何一个成员。所有的服务器都会收到集群级别的配置。 被指定为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].

 

 

0
3
分享到:
评论
3 楼 bewithme 2017-06-21  
有以下几种拓扑

Embedded  嵌入式

Peer-To-Peer  点对点对等式

Client/Server 客户端与服务器端

Multi-site/WAN Gateway  多站点广域网网关

一般情况下使用客户端与服务器端拓扑,这样的话你需要使用定位器,参考
http://geode.apache.org/docs/guide/11/topologies_and_comm/cs_configuration/client_server_example_configurations.html


2 楼 surpassno 2017-04-11  
this_is_it 写道
大神,您好!
     请问多台主机之间如何搭建geode集群,求解!比如我想在192.168.169.1和192.168.169.2两台主机搭建一个geode集群。

同求,找了半天没有找到。不知楼上解决了没?
1 楼 this_is_it 2017-02-15  
大神,您好!
     请问多台主机之间如何搭建geode集群,求解!比如我想在192.168.169.1和192.168.169.2两台主机搭建一个geode集群。

相关推荐

    Apache Geode权威指南(中文版).pdf

    Apache Geode 和 Redis的比较: geode是java生态圈,目的是高性能高可用,除了缓存,更像数据库,可以sql查询,硬盘可能仅在出现灾难时才用,大部分都在内存就处理了。 redis主要是缓存,没有冗余设计导致可靠性...

    Apache Geode入门指导(中文版) 电子版

    Apache Geode 和 Redis的比较: geode是java生态圈,目的是高性能高可用,除了缓存,更像数据库,可以sql查询,硬盘可能仅在出现灾难时才用,大部分都在内存就处理了。 redis主要是缓存,没有冗余设计导致可靠性...

    apache-geode-1.2.1官方编译版

    通过GFSH,你可以创建、管理和监控Geode的数据区域、服务器、 locators、缓存和其他组件。 3. **数据存储**:Geode支持两种数据存储模式:复制和分区。复制策略会将数据完全复制到多个节点,确保高可用性;分区策略...

    Spring Data for Apache Geode API(Spring Data for Apache Geode 开发文档).CHM

    Spring Data for Apache Geode API。 Spring Data for Apache Geode 开发文档

    数据管理平台 Apache Geode.zip

    概览Apache Geode 是一个数据管理平台,提供实时的、一致的、贯穿整个云架构地访问数据关键型应用.Geode 池化了服务器上的内存, CPU, 网络资源, 和本地磁盘,跨多个进程来管理应用对象和应用行为. 它使用了动态数据...

    apache-geode-1.12.0.zip

    apache-geode-1.12.0 win环境下的运行包 ,配置步骤网上搜索; 项目关联链接:https://blog.csdn.net/Glen_guilin/article/details/109722619

    geode:阿帕奇·乔德(Apache Geode)

    除了作为分布式数据容器之外,Apache Geode是一个内存数据管理系统,它提供可靠的异步事件通知和有保证的消息传递。 Apache Geode是一项成熟,强大的技术,最初由GemStone Systems开发。 它以GemFire:trade_mark:...

    基于Apache Geode的实时数据管理平台设计源码

    该项目是一款基于Apache Geode的实时数据管理平台设计源码,包含7343个文件,涵盖5803个Java源代码文件、543个ERB模板文件、188个PNG图片文件、139个XML配置文件、99个文本文件、62个JavaScript文件、60个HTML文件、...

    apache-geode-1.4.0

    综上所述,“apache-geode-1.4.0”包含的资源是你深入理解和使用Apache Geode的关键,通过探索这些组件和配置,你将能够构建出高效、可靠的分布式应用程序。同时,与其他学习者交流讨论将加速你的学习进程。

    基于Spring boot 的geode 单节点客服端及服务端项目

    基于Spring boot 的geode 单节点客服端及服务端项目,本地启动apache-geode创建好locator, 项目关联链接:https://blog.csdn.net/Glen_guilin/article/details/109722619 apache-geode链接:...

    中间件-apache-geode-1.6.0

    在学习和研究Apache Geode 1.6.0的过程中,你需要了解如何配置和管理集群,如何设计数据模型,如何利用其高级特性如缓存加载、过期策略等。此外,熟悉其API和编程模式,以及如何与其他系统集成,如Spring Data Geode...

    geode.apache.org.zip

    这个“geode.apache.org.zip”压缩包中的文档涵盖了这些知识点的详细说明,包括配置指南、最佳实践、故障排查等内容,对于理解和使用Apache Geode 1.9非常有帮助。开发者可以根据需要离线查看,深入理解并有效地利用...

    apache-geode-1.12.0.tgz

    在RESTAPI for Management中引入了新的端点,包括创建和删除索引、列出已部署的JAR、显示PDX配置和显示支持RESTAPI的版本。 从Spring 4迁移到Spring 5。 更新第三方库到最新的安全补丁。 修正了定位器可能无法完全...

    geode-demo-application:如何使用Apache Geode的示例低延迟,水平可扩展的数据源

    启动和管理Spring配置的Geode集群包含将Geode用作数据存储或利用其计算功能的Geode客户端的应用程序有两种方法可以运行此演示: 单节点独立模式在AWS上运行的Geode集群单节点独立模式介绍使用此选项,可以下载所有...

    java版电商源码-geode-examples:ApacheGeode示例

    欢迎贡献[2]和更正。 请与我们讨论您的建议或提交 。 Apache Geode 版本 Geode 客户端代码必须链接到与其将连接到的 Geode 服务器相同或旧版本的 Geode。 将-PgeodeRepositoryUrl= -PgeodeVersion=1.12.0添加到您的....

    yardstick-geode:Apache Geode的Yardstick基准

    Yardstick Apache Geode是在Yardstick框架之上编写的一组基准测试。 码尺框架 访问以获取有关如何运行Yardstick基准测试以及如何生成图形的详细信息。 除标准Yardstick参数外,以下文档还介绍了配置参数。 安装 ...

    apace geode官网翻译

    - **12306 系统**:作为中国最大的在线票务预订平台之一,12306 使用 Apache Geode 来处理大量的用户请求和数据交易。这种场景下,Geode 的高可用性和高性能特性得到了充分发挥。 - **金融领域**:银行和其他金融...

    gemfire/geode 文档,配置说明

    2. **教程**:提供了一个创建和使用集群配置的教程,帮助用户从零开始搭建自己的集群。 3. **应用JAR部署**:指导如何将应用程序JAR文件部署到GemFire集群成员中。 4. **成员组使用**:介绍了如何使用成员组来组织...

    geode-native:Apache Geode本机

    应用开发可以使用以下客户端技术编写本机客户端应用程序: 版本控制Geode Native遵循规范(semver)。 本规范仅解决与库的兼容性,不涵盖兼容性。C ++ 与API兼容性不同,未保留ABI兼容性。 仅在补丁版本之间保证ABI...

    PyPI 官网下载 | Geode_Common-12.3.0-cp37-cp37m-win_amd64.whl

    总结来说,"Geode_Common-12.3.0-cp37-cp37m-win_amd64.whl" 是一个针对Python 3.7和64位Windows的Apache Geode Python库的二进制包,它允许Python开发者在后端应用中集成Geode的功能,实现高效的数据管理和处理。...

Global site tag (gtag.js) - Google Analytics