java-使用Hazelcast作为第二级缓存的Spring Hibernate
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-使用Hazelcast作为第二级缓存的Spring Hibernate,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3047字,纯文字阅读大概需要5分钟。
内容图文

我有一个配置有Hibernate(休眠核心4.2.8)的spring项目(spring核心3.1.2),我想将Hazelcast设置为第二级缓存.我想让缓存以P2P,嵌入式集群模式分发(每个应用程序实例在同一台计算机上运行hazelcast实例).
这是我当前的sessionFactory配置.
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" scope="singleton">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.myProject.beans" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.database">ORACLE</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<!--enable batch operations-->
<prop key="hibernate.jdbc.batch_size">20</prop>
<prop key="hibernate.order_inserts">true</prop>
<prop key="hibernate.order_updates">true</prop>
<!-- 2nd level cache configuration-->
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">com.hazelcast.hibernate.HazelcastLocalCacheRegionFactory</prop>
<prop key="hibernate.cache.use_query_cache">false</prop>
</props>
</property>
</bean>
当我运行一个小型测试来检查二级缓存命中时,此配置似乎可以在我的本地计算机上使用.
问题是:
为了使缓存在实例之间分布,我还必须进行其他哪些配置.不同的机器如何“互相了解”?
另外,是否有一种方法可以创建一个测试方案来检查缓存是否确实在几台机器之间分配?(例如:启动2个jvm)一个示例将不胜感激.
欢迎提供有关此配置的其他任何提示或警告.
免责声明:这是我第一次使用Hazelcast.
我的Hazelcast版本是3.5.4
谢谢!
解决方法:
您无需再进行配置即可形成集群.
只需启动您的应用程序的另一个实例,两个hazelcast实例应该可以看到彼此并形成一个集群.
默认情况下,hazelcast成员使用多播相互查找,当然,您可以通过向项目中添加自定义hazelcast.xml来更改此行为.
这是Spring-Hibernate-Hazelcast集成的详细示例.
如果要使用Hazelcast配置播放,applicationContext-hazelcast.xml是要修改的文件.
例如,在此示例项目中,将port-auto-increment设置为false
这意味着如果指定端口已被占用,Hazelcast将无法启动. (默认为5701)
只需将此属性设置为true并启动另一个Application实例,您应该看到缓存已分发.
请不要在启动第一个实例之前注释掉Application类的最后一行,以使进程保持活动状态
像下面这样启动第一个实例;
public static void main(String[] args) {
InitializeDB.start();
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
DistributedMapDemonstrator distributedMapDemonstrator = context.getBean(DistributedMapDemonstrator.class);
distributedMapDemonstrator.demonstrate();
//Hazelcast.shutdownAll(); Keep instances alive to see form a cluster
}
第二个如下
public static void main(String[] args) {
//InitializeDB.start(); DB will be initialized already by the first instance
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
DistributedMapDemonstrator distributedMapDemonstrator = context.getBean(DistributedMapDemonstrator.class);
distributedMapDemonstrator.demonstrate();
//Hazelcast.shutdownAll(); Keep instances alive to see form a cluster
}
内容总结
以上是互联网集市为您收集整理的java-使用Hazelcast作为第二级缓存的Spring Hibernate全部内容,希望文章能够帮你解决java-使用Hazelcast作为第二级缓存的Spring Hibernate所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。