【发布时间】:2016-04-18 15:34:32
【问题描述】:
我有一个配置了 Hibernate(hibernate core 4.2.8)的 spring 项目(spring core 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
谢谢!
【问题讨论】:
标签: java spring hibernate caching hazelcast