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

Apache Geode 部署jar包到成员

阅读更多

      你可以动态的部署你的应用jar文件到分布式系统中指定的成员或是所有的成员。Geode自动的追踪jar文件的版本;自动加载部署的jar文件到类路径;并且自动注册jar文件所包含的所有函数。

 

      为了在Apache Geode中部署或卸载jar文件,使用gfsh部署或卸载命令。你可以部署单个jar或是多个jar(通过指定jar文件名或指定一个包含jar文件的目录),你同样可以将部署的目标指定为一个成员组或多个成员组。例如,在连接到你想要部署jar文件的分布式系统之后,你可以在gfsh提示窗口中键入如下命令:

    

gfsh> deploy --jar=group1_functions.jar

     这个命令group1_functions.jar文件布署到了分布式系统中的所有成员中,为了部署jar文件到部份

 

成员,使用 --group参数,例如:

  

gfsh> deploy --jar=group1_functions.jar --group=MemberGroup1

 在这个例子中,假设你启动时已经定义了你想使用的成员组

。查看《配置并运行一个集群》来获得有关如何定义成员组并添加成员到一个组中的更多信息。 

 

部署位于指定目录下的所有jar文件到所有的成员:

 

gfsh> deploy --dir=libs/group1-libs
部署时你可以提供jar文件名或是jar文件的目录,但你不能一次指定两个。

 

 

卸载分布式系统中所有之前部署的jar文件:

 

gfsh> undeploy
卸载指定的的jar文件:

 

 

gfsh> undeploy --jar=group1_functions.jar
以指定的成员组为目标卸载所有jar文件:

 

 

gfsh> undeploy --group=MemberGroup1
只有在MemberGroup1这个成员组中之前部署的所有jar文件会被卸载。

 

查看在你的分布式系统中部署的所有jar文件:

 

gfsh> list deployed
查看在指定组中部署的所有所有jar文件:

 

 

gfsh> list deployed --group=MemberGroup1
示例输出:

 

 

 Member   |     Deployed JAR     |                JAR Location            
--------- | -------------------- | ---------------------------------------------------
datanode1 | group1_functions.jar | /usr/local/gemfire/deploy/vf.gf#group1_functions.jar#1
datanode2 | group1_functions.jar | /usr/local/gemfire/deploy/vf.gf#group1_functions.jar#1
 更多 gfsh使用信息,请查看gfsh (Geode SHell).

 

JAR文件的部署位置

在每个成员上写入jar文件的系统位置取决于Geode为每个成员配置的deploy-working-dir属性。例如,你可以在你的成员中的gemfire.properties文件中使用如下配置:

 

#gemfire.properties
deploy-working-dir=/usr/local/gemfire/deploy
 这个部署位置可以是本地的也可以是为了节约磁盘空间而在多个成员中共享的网络资源(例如一个挂载的位置)。如果你使用一个共享的目录,你仍然需要在每个成员上部署你想要在应用中访问的jar文件,因为部署会更新类路径并自动注册函数。

 

有关jar文件部署和集群配置服务

       默认情况下,集群配置服务分部署的jar文件到分布式系统中所有的定位器。当你用gfsh启动一个新服务器,定位器提供配置文件并部署jar文件到成员并把它们写入到服务器的目录。查看《集群配置服务概述》

 

JAR 文件版本控制

       当你部署jar文件到分布式系统或是成员组,jar文件会被修改以实现文件名中显示版本信息。每个jar文件名以vf.gf#为前辍并且在文件名结尾包含一个版本号。例如,如果你部署MyClasses.jar五次,当你列出所有部署的jar包时文件名显示为vf.gf#MyClasses.jar#5。
      当你部署一个jar文件,接收到部署的成员检查jar文件是否重复,要么是因为已经在这个成员中部署过,要么就是因为这个jar文件已经在其它成员也使用的共享的部署目录。如果其它成员已经部署了这个jar文件到共享目录(用字节比对方法来与它目录中最新的版本作比较),接收最新部署的成员不会将文件写到磁盘。相反的,成员会更新类路径加载器来使用已经部署的jar文件。如果一个比较新的版本的jar文件在磁盘中被检测到并已经在使用中,部署会被取消。
      当一个成员开始使用jar文件,成员会在文件上获得一个共享锁。如果成员通过部署收到了一个更新版本的文件,成员释放共享所并试着删掉这个已经存在的jar文件并以这个新版本取代。如果没有其它成员在这个已经存在的jar文件上拥有共享锁,那么这个已存在的,老版本的jar文件会被删除。

自动的类路径加载

     当一个缓存启动,新的缓存在当前的工作目录下请求将每个jar文件的最新版本添加到类路径加载器上。如果一个jar文件己经部署到了类路径加载器上,如果新的版本被发现,类路径加载器会更新它已加载的版本;否则,不会有更改。如果检测出没有其它成员在老版本的jar文件上拥有共享锁,这些文件将被删除。

 

      卸载一个jar文件不会自动卸载在部署中已经加载的类。你需要重启你的成员来卸载这些类。

    

      当一个缓存关闭时它请求所有当前部署的jar文件从类路径加载器中删除。

 

      当你使用一个共享部署工作目录,所有共享这个目录的成员应属于同一个成员组。在启动之前,所有共享这个目录成员将部署并自动加载他们的类路径和所有在当前工作目录发现的jar包。这意味着一些成员可能加载这些jar包,即使它们不是这个成员组的接收过之前部署的一部份。

 

自动函数注册

 

       当你部署一个包含一个函数的jar包(换句话说,包括一个实现了函数接口的类)这个函数会自动的通过FunctionService.registerFunction方法注册。如果另外一个有相同函数的jar文件被部署(有相同的jar文件名或是别的文件名),这个新的函数的实现会被注册,覆盖掉旧的。如果一个jar文件被卸载,任何在部署时注册的函数将会被取消注册。每次当多次部署一个相同名字的jar文件会倒致正在卸载或是重复部署的的jar文件,

它们中的函数被取消注册并再次注册。如果一个有相同的ID函数从不同名称的jar包中被注册,那么重复部署的或是已卸载的jar包中的函数将被取消注册。

 

        在cache.xml加载期间,任何被声明的参数被保存。如果在jar文件中发现的函数也是被声明过的,并且与在加载cache.xml时声明的参数有相同的类名,那么函数实例将使用参数被创建并被注册。因此,如果相当的函数在cache.xml中用不同的参数集合被声明多次

当jar被部署时,一个函数会为每个参数集合被实例化。如果任何函数被注册时使用来自加载cache.xml时的参数,默认的,没有参数的函数不会被注册。

 

分享到:
评论

相关推荐

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

    Apache Geode是一个数据管理平台,可在广泛分布的云架构中实时,一致地访问数据密集型应用程序。 Apache Geode 和 Redis的比较: geode是java生态圈,目的是高性能高可用,除了缓存,更像数据库,可以sql查询,...

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

    Apache Geode是一个数据管理平台,可在广泛分布的云架构中实时,一致地访问数据密集型应用程序。 Apache Geode 和 Redis的比较: geode是java生态圈,目的是高性能高可用,除了缓存,更像数据库,可以sql查询,硬盘...

    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

    水平扩展到数千个缓存成员, 具有多种缓存拓扑结构来满足不同的企业级部署需求. 缓存能够跨多台机器进行分布.异步和同步缓存更新传播.Delta 传播只分发新版本和旧版本的变化量 (delta) , 而不是整个对象, 从而可以...

    apache-geode-1.2.1官方编译版

    apache-geode-1.2.1官方编译版,下载后可以使用bin/gfsh来启动。

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

    Apache Geode将内存,CPU,网络资源以及可选的本地磁盘跨多个进程池化,以管理应用程序对象和行为。 它使用动态复制和数据分区技术来实现高可用性,改进的性能,可伸缩性和容错能力。 除了作为分布式数据容器之外,...

    apache-geode-1.12.0.zip

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

    apache-geode-1.12.0.tgz

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

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

    Apache Geode 示例 这是与项目捆绑在一起的 Apache Geode 示例的主页。 欢迎贡献[2]和更正。 请与我们讨论您的建议或提交 。 Apache Geode 版本 Geode 客户端代码必须链接到与其将连接到的 Geode 服务器相同或旧版本...

    geode.apache.org.zip

    Apache Geode 1.9 User Guide 离线文档 from https://geode.apache.org/docs/ 使用wget下载 供离线使用

    中间件-apache-geode-1.6.0

    最新版的apache-geode-1.6.0 ,下载了就要好好学习,研究

    yardstick-geode:Apache Geode的Yardstick基准

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

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

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

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

    geode-demo应用这是一个示例: 启动和管理Spring配置的Geode集群包含将Geode用作数据存储或利用其计算功能的Geode客户端的应用程序有两种方法可以运行此演示: 单节点独立模式在AWS上运行的Geode集群单节点独立模式...

    apache-geode-1.4.0

    本然已经成功搭建好apache-geode 集群服务,正在学习,欢迎一起交流讨论

    geode-native:Apache Geode本机

    目录概述本机客户端是的客户端实现,不需要Java服务器JAR。从源头建造从源代码构建Native Client的说明可以在的源代码分发中找到。应用开发可以使用以下客户端技术编写本机客户端应用程序: 版本控制Geode Native...

    gemfire、geode多节点集群部署踩坑大全.docx

    此文章是我最近在学习gemfire/geode的时候遇到的一些坑,现在整理出来共享一下,已经成功的在多台机器部署了多节点集群。

    Apache顶级项目Geode源码深度分析

    Apache顶级项目介绍之8,我们重新恢复Apache顶级项目系列,较之前介绍系列,我们本文直入代码分析,原因有二,Geode即上文我们分析的Gemfire的开源版本,其二被逼无奈,阅读源码查找问题。 2016年11月21日,Apache...

    gemfire/geode 文档,配置说明

    gemfire/geode从环境部署,搭建,到配置说明,全量的官方文档

Global site tag (gtag.js) - Google Analytics