繁体   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