簡體   English   中英

如何將Ignite配置為群集Tomcat應用程序的緩存

[英]How to configure Ignite as cache for a clustered Tomcat application

我正在使用將在Tomcat上運行並使用Apache Ignite作為緩存的Web應用程序。 該應用程序必須在集群環境中運行,該環境已經具有Zookeeper用於其他目的。

我的問題是如何最好地配置和微調Ignite節點?

Q1。 我是否應該: a)我在同一客戶端Web應用程序中的Tomcat中運行每個Ignite節點? b)有一個單獨的進程運行Ignite並僅以客戶端身份在Web應用程序中啟動Ignite。

Q2。 如何限制分配給Ignite的內存量? 如果我在單獨的進程中運行,則可以僅在啟動時限制該JVM,但是我可以在Tomcat中運行時對資源消耗和垃圾回收崩潰實現類似的限制嗎?

我的當前配置在下面的代碼摘錄中,用於將CacheConfiguration設置為CacheMode.PARTITIONED

private ZookeeperDiscoverySpi getZookeeperDiscoverySpi() {
    ZookeeperDiscoverySpi zkDiscoverySpi = new ZookeeperDiscoverySpi();
    zkDiscoverySpi.setZkConnectionString("127.0.0.1:2181");
    zkDiscoverySpi.setZkRootPath("/apacheIgnite");
    return zkDiscoverySpi;
}

private IgniteConfiguration getDefaultConfiguration(CacheConfiguration cacheCfg) {
    IgniteConfiguration igniteConfig = new IgniteConfiguration();
    igniteConfig.setIgniteInstanceName("IgniteInstanceName");
    igniteConfig.setCacheConfiguration(cacheCfg);
    igniteConfig.setClientMode(clientMode); // set to true for Tomcat webapp, false for Ignite node process
    igniteConfig.setPeerClassLoadingEnabled(false);
    igniteConfig.setMetricsLogFrequency(0);
    igniteConfig.setDiscoverySpi(getZookeeperDiscoverySpi());
    igniteConfig.setMetricsLogFrequency(0);
    return igniteConfig;
}

Q1,您可以使用兩種方法。 您可以從在同一JVM中擁有Ignite服務器節點開始,看看是否適合您的情況。

Q2從Ignite 2.0開始,它將不使用太多堆,而是使用堆外內存來存儲數據。 您可以通過更改數據存儲配置中(默認)數據區域的大小來指定內存余量。 然后啟用頁面驅逐以確保您不會用完該內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM