Oracle Coherence中文教程八:启动和停止群集成员

来源:互联网 发布:动力火车 知乎 编辑:程序博客网 时间:2024/06/03 08:13

启动和停止群集成员

本章提供基本的用于启动和停止高速缓存服务器和缓存客户说明。如果你遇到困难,建立集群时使用组播进行组播的连通性测试的说明,请参阅Oracle Coherence的管理员指南。

本章包含以下各节:

    启动高速缓存服务器
    启动缓存客户端
    停止群集成员

8.1启动高速缓存服务器

缓存服务器集群成员,负责存储缓存数据。一个集群可以由的许多缓存服务器。每个缓存服务器运行在它自己的JVM

在本节包括以下主题:

    从命令行启动缓存服务器
    以编程方式启动高速缓存服务器

8.1.1从命令行启动缓存服务器

是用来在命令行启动一个缓存服务器实例,com.tangosol.net.DefaultCacheServer类。使用的Java-cp选项,指示位置的coherence.jar文件Tangosol.coherence.override.xml的的和连贯性高速缓存-config.xml文件的位置位于。在classpath的位置的配置文件必须先cohernce.jar的的文件,否则,默认的配置文件,位于在coherence.jar文件用于启动缓存服务器实例。参见第3了解配置配置文件的详细信息。

以下示例启动一个缓存服务器成员,并使用任何配置文件都放在在COHERENCE_HOME \ CONFIG

java -server -Xms512m -Xmx512m -cp COHERENCE_HOME\config;COHERENCE_HOME\lib\coherence.jar com.tangosol.net.DefaultCacheServer

COHERENCE_HOME \ BIN \缓存服务器脚本提供方便和启动缓存服务器实例。脚本设置了一个基本环境和然后运行DefaultCacheServer类的。同时在Windows和基于UNIX的平台上有一个脚本。脚本通常需要修改一个特定的集群。

提示:
在测试过程中,它有时是不同的名称,唯一标识每个缓存服务器创建多个脚本。例如:cahe服务器,缓存服务器b和等。

8.1.2启动缓存服务器编程方式

应用程序可以使用或延长的DefaultCacheServer类时,根据需要启动缓存服务器。例如,一个应用程序可能想要做一些特定于应用程序的安装或加工之前,启动缓存服务器和服务。

基本用例的主要方法可以被调用,并且需要两个参数:在classpath中找到一个缓存配置文件的名称,并检查已停止的服务之间的秒数。停止的服务开始,如果它们被设置为自动启动(如缓存配置文件中配置的的<autostart>元素)。以下示例启动一个缓存服务器使用的主要方法:

String[] args = new String[]{"my-cache-config.xml", "5"};

DefaultCacheServer.main(args);

DefaultCacheServerDefaultConfigurableCacheFactory)构造使用一个工厂类来创建一个缓存服务器实例使用指定的缓存配置文件。下面的例子创建一个DefaultCacheServer的实例,并使用startAndMonitor(长)方法来启动一个缓存服务器在前面的例子:

DefaultConfigurableCacheFactory factory;

factory = new DefaultConfigurableCacheFactory("my-cache-config.xml");

DefaultCacheServer dcs = new DefaultCacheServer(factory);

dcs.startAndMonitor(5000);


两个静态启动方法(start()和启动(ConfigurableCacheFactory))也可用于启动缓存服务器和返回控制。然而,CacheFactory类通常用来代替这些方法保持向后兼容性。

应用程序需要更细粒度控制的DefaultCacheServer类可以继承和覆盖其方法需要进行任何加工定制。 Oracle CoherenceJava API参考的详细信息上DefaultCacheServer类。

8.2启动缓存客户端

缓存客户端集群成员加入该集群的互动与集群的服务。缓存客户端可以得到,并把缓存中的数据或作为一个数据网格,计算处理的数据是在缓存中的应用程序,可以作为复杂的应用程序一样简单。缓存客户端和高速缓存服务器之间的主要区别是,缓存客户端通常是不负责存储群集。

在本节包括以下主题:

    禁用本地存储
    用CacheFactory类,启动缓存客户端

8.2.1禁用本地存储

缓存客户端使用的分区缓存服务(分布式缓存)不应保留任何分区的数据。缓存客户端存储残疾人有更好的表现,并使用更少的资源。分区数据应该只分布之间缓存服务器实例。

禁用本地存储上的每个进程的基础使用tangosol.coherence.distributed.localstorage的系统属性。这允许缓存客户端和服务器使用相同的配置描述符。例如:

java -cp COHERENCE_HOME\config;COHERENCE_HOME\lib\coherence.jar -Dtangosol.coherence.distributed.localstorage=false com.MyApp

8.2.2使用CacheFactory类,启动缓存客户端

任何应用程序使用的com.tangosol.net.CacheFactory类获得一个缓存的实例成为群集成员,被认为是一个缓存客户端。下面的例子演示了最常见的方式,启动缓存客户端:

CacheFactory.ensureCluster();

NamedCache cache = CacheFactory.getCache("cache_name");

当启动一个应用程序,是一个缓存客户端,使用的Java-cp选项,指示位置的coherence.jar文件和Tangosol的相干override.xml和相干缓存config.xml文件所在的位置。在classpath的位置的配置文件必须先cohernce.jar的的文件,否则,默认的配置文件,位于在coherence.jar文件用于启动缓存服务器实例。参见第3了解配置配置文件的详细信息。例如:

java -cp COHERENCE_HOME\config;COHERENCE_HOME\lib\coherence.jar 

-Dtangosol.coherence.distributed.localstorage=false com.MyApp

8.3停止群集成员

在本节包括以下主题:

    命令行停止群集成员
    以编程方式停止缓存服务器

8.3.1从命令行停止群集成员

集群成员是最经常关机时使用kill命令在UNIX平台上和Ctrl + C时,在Windows平台上。这些命令启动标准JVM关闭钩子,这是正常的JVM终止后调用。

注意事项:
发出kill -9命令触发一个异常的JVM终止和运行不关机钩。然而,正常关机一般是不必需的,如果一个服务被称为是节点的安全(如使用JMX管理)终​​止前。

群集成员时,需要接收一个shutdown命令的配置在业务覆盖文件内<shutdown-listener>元素的动作。下列选项可用:

    none  - 执行没有明确的关机操作。这是生产的建议值,除非外部关机的行为正是需要 测试验证。
force  - (默认)的节点上执行硬一站式通过调用Cluster.stop()。这是默认的方块动 作。
    graceful  - 执行正常关机通过调用Cluster.shutdown()
    true - 同力
    false - 没有相同
下面的示例设置没有钩关机。

<?xml version='1.0'?>

<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"

   xsi:schemaLocation="http://xmlns.oracle.com/coherence/

   coherence-operational-config coherence-operational-config.xsd">

   <cluster-config>

      <shutdown-listener>

         <enabled system-property="tangosol.coherence.shutdownhook">none</enabled>

      </shutdown-listener>

   </cluster-config>

</coherence>

tangosol.coherence.shutdownhoo​​k系统属性用于指定关机钩的行为,而不是使用业务覆盖文件。例如:

-Dtangosol.coherence.shutdownhook=none

8.3.2编程方式停止缓存服务器

DefaultCacheServer类,用于关闭缓存服务器提供了两种方法:

注意事项:
关机应该是一个独立的应用程序中调用它关闭实例DefaultCacheServer类本身作为一个静态成员保持。

    shutdown()方法 这是一个静态方法,用于关闭缓存服务器,开始在不同的线程使用DefaultCacheServer.main()或DefaultCacheServer.start()方法。

    shutdownServer() 此方法被调用的应用程序保持的一个DefaultCacheServer实例掌握。

0 0