我有一个使用Spring Core 3.1.2配置的项目,集成了Hibernate Core 4.2.8,现在想要将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
谢谢!