Oracle Coherence中文教程八:啓動和停止羣集成員

啓動和停止羣集成員

本章提供基本的用於啓動和停止高速緩存服務器和緩存客戶說明。如果你遇到困難,建立集羣時使用組播進行組播的連通性測試的說明,請參閱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實例掌握。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章