我还在努力了解hazelcast,还得做出是否使用它的决定。
我写了一个简单的应用程序,在其中启动(单节点)服务器上的缓存,同时加载大约400个条目的映射。对象本身有两个字符串字段。我有一个服务类,它查找缓存并尝试从映射中获取所有值。
但是,当我试图从hazelcast映射中获取值时,在Java堆空间中得到了一个OutofMemoryError。最终,我们计划转移到一个5节点集群开始。
以下是缓存spring配置:
<hz:hazelcast id="instance">
<hz:config>
<hz:group name="dev" password=""/>
<hz:properties>
<hz:property name="hazelcast.merge.first.run.delay.seconds">5</hz:property>
<hz:property name="hazelcast.merge.next.run.delay.seconds">5</hz:property>
</hz:properties>
<hz:network port="5701" port-auto-increment="false">
<hz:join>
<hz:multicast enabled="true" />
</hz:join>
</hz:network>
</hz:config>
</hz:hazelcast>
<hz:map instance-ref="instance" id="statusMap" name="statuses" />
以下是错误发生的地方:
map = instance.getMap("statuses");
Set<Status> statuses = (Set<Status>) map.values();
return statuses;
IMap的任何其他方法都可以正常工作。我试着把钥匙套和尺寸都弄好了。只有当我尝试获取值时,OutofMemory错误才会出现。
java.lang.OutOfMemoryError: Java heap space
我已经用一个独立的java应用程序尝试了上面的方法,它工作得很好。我还使用visual VM进行了监视,当错误发生时,在使用过的堆内存中没有看到任何尖峰,这就更加令人困惑了。发生错误时,可用堆为1G,使用的堆约为70MB。
多谢了。
正如异常所提到的,由于values方法尝试一次返回所有反序列化的值,因此堆空间不足。如果它们不适合记忆,你可能会得到一个Oome。
您可以使用分页来防止这种情况的发生:http://hazelcast.org/docs/latest/manual/html-single/hazelcast-documentation.html#paging-predicate-order-limit-
我试图在docker容器上运行我的java应用程序。我在本地使用tomcat服务器,它工作正常。我是java/tomcat/docker的新手,所以我可能会错过一些非常简单的东西,但我认为只要将我的本地war文件指向就足够了。 这是我的docker-compose.yml 我可以看到文件,但我无法访问我的应用程序。我的本地主机仍然显示tomcat页面,而不是从本地安装的tomcat运行时看到的“H
我有一个LDAP服务器正在运行。使用的LDAP服务是OpenDJ的。 现在发生的是,这台机器上的目录管理器服务正在使用java。lang.OutOfMemoryError 关于获取目录管理器服务的线程转储,下面是我们得到的 线t@883:(状态=阻塞)-太阳。杂项。不安全的park(boolean,long)@bci=0(编译帧;信息可能不精确)-java。util。同时发生的锁。锁支架。park
我的Spring Boot应用程序在本地安装的Tomcat服务器上运行良好。但是当我将相同的WAR部署到弹性豆茎并单击给定的URL时,我得到的只是404。在我的Spring Boot应用程序中没有指定的路由在这里工作。可能的原因是什么? server.port=5000
问题内容: 在有关类的Spring javadoc文章中,该类非常简单,建议使用 使用容器提供的JNDI数据源。这样DataSource可以通过DataSourceSpring ApplicationContext中的bean 形式公开。 问题是:我该如何完成? 例如,如果我希望让访问我的自定义MySQL数据库,那我需要什么?我应该在上下文配置等中写些什么? 问题答案: 如果使用基于Spring
我在Tomcat前面有Nginx,但proxy_pass静态文件不提供。这是我的配置: 如果我去https://example.com我得到的Tomcat应用程序没有CSS,没有图片。 从错误中恢复。日志
单数据库MySql 多个Tomcat位于不同的位置,共享相同的代码 Hibernate5.2.2 在桌面上 @GenericGenerator(name=“employee”,strategy=“increment”) @GeneratedValue(generator=“employee”) 当其他服务器输入值时,出现重复主键错误 将来,我们还支持Sql Server、Oracle、HSQL