我有一个Java的Web应用程序(运行在Tomcat上),并希望在应用程序中的两个不同上下文之间共享数据。我想使用Hazelcast,因为我已经将其用于聚类目的。
有没有办法访问在同一个JVM(和同一个端口)上运行的单个hazelcast实例?
我尝试使用实例名访问实例,但这似乎不起作用。例如:
public class HazelcastTest1 {
static public void main(String[] args) {
Config config = new Config();
config.getNetworkConfig().setPort(5701);
config.getNetworkConfig().setPortAutoIncrement(false);
config.setInstanceName("hztest");
HazelcastInstance hz = Hazelcast.getOrCreateHazelcastInstance(config);
Map<String, String> mp = hz.getMap("vcutest");
mp.put("test1", "test1");
System.out.printf("put item in map");
while (true) {
}
}
}
public class HazelcastTest2 {
static public void main(String[] args) {
Config config = new Config();
config.getNetworkConfig().setPort(5701);
config.getNetworkConfig().setPortAutoIncrement(false);
config.setInstanceName("hztest");
HazelcastInstance hz = Hazelcast.getOrCreateHazelcastInstance(config);
Map<String,String> mp = hz.getMap("vcutest");
System.out.printf("map value = %s%n", mp.get("test1"));
}
}
当我启动第二个实例(第一个实例已经运行)时,会引发以下异常:
线程“main”com中出现异常。黑泽尔卡斯特。果心HazelcastException:端口[5701]已在使用中,并且禁用了自动增量。Hazelcast无法启动。
如果要部署两个独立的WAR,尽管它们在同一个JVM中,但它们在独立的类加载器中。
您应该将它们视为单独的JVMs,并使用HAZELCAST(让每个Web应用程序加入集群)。
在这种情况下,启用端口自动增量,这应该允许它加入相同的Hazelcast实例
您可以使用Hazelcast::getHazelcastInstanceByName
检索同一实例,但这要求两个webapp类加载器都可以看到这些类。您可以通过将JAR文件放在tomcat lib目录中来实现这一点。
除此之外,Hazelcast不是设计为在单实例模式下运行的,这将无法很好地执行。
我对Spring框架有点陌生。我有一个用Spring (4.2.1)编写的web应用程序。我正在尝试使用千分尺库来揭示度量标准,并将与普罗米修斯一起使用。 应用程序的相关结构如下: -核心模块(JAR) -webservice模块(WAR) 我创建了一个PrometheusService类,它是在核心模块中定义的bean。bean中定义的是和: 我创建了指标资源,它是一个公开 /Metrics e
我的查询如下: > 在我的应用程序中,我需要在计划中同时运行多个pyspark应用程序。是否有任何方法可以同时从spark驱动程序运行多个pyspark应用程序,从而创建单独的sparkcontext对象? 如果第一个查询的答案是否定的,那么我可以运行一个应用程序从驱动程序,另一个从执行程序,但我可以一次运行它。 null 配置:VM-1:Hadoop主节点、Spark驱动程序和执行程序、Mong
我在与Hawtio相同的JVM中部署了10个Camel组件。 每一个都是唯一的,有不同的ID。 我可以通过JMX视图看到所有10个,但通过“骆驼”视图只能看到9个。
我得写一个石英调度器来在Spring运行一个作业。我还需要添加另一个函数来暂停同一个作业。此代码存在于单个独立批处理中。 触发这两个功能:1。开始工作2。暂停作业我已经用main()编写了两个类来执行。 问题是当我触发pauseJobs的main()时,它会启动不同的应用程序上下文,而不是使用相同的应用程序上下文。 > 用于Application Context初始化的Singleton类 类开始
我正在我的Java SSE(Java Flex)应用程序中使用Quartz Scheduler 2.2.0。我设定了一个时间表,每天上午10点运行,并执行一些工作。我没有关闭Quartz调度程序,因为我想让它每天运行。 但无论如何,我知道Quartz调度程序已经在运行,因为如果我在用户打开Java Flex应用程序时启动它,那么就会有多个实例存在。 Quartz.Properties 这就是我安排
我有一个多Maven模块Spring Boot项目,具有以下结构: webservices和backend都是单独的Spring Boot应用程序(它们生成一个jar文件,我用它来启动它们),它们依赖于commons模块。因此,我将commons作为一个依赖项包含在webservices和后端的pom中。xml。 我对启动我的应用程序没有什么疑问。 如何在单个JVM中启动后端和webservice