Hazelcast全球先进功能

时间:2017-02-03 22:55:12

标签: hibernate jpa hazelcast

我正在分析JCache参考实现,我找到了Hazelcast。所以问题是:

  1. 有没有办法在Hibernate中使用Hazelcast并为不同的jpa实体设置不同的到期值? EHCache支持它,但我没有成功获得Hazelcast的例子。
  2. Hazelcast是否支持缓存到文件系统并缓存到数据库?
  3. 仅将它用作本地缓存是否是个好主意?不是重量级吗?

1 个答案:

答案 0 :(得分:1)

Hazelcast配置允许您定义命名的地图区域,或者在Hibernate中说区域。在实体上指定@Cache时,除非您自己指定region属性,否则区域名称将被解析为实体的完全限定类名。

在Hazelcast配置中,您经常会从Hazelcast文档中获取以下内容:

<hazelcast>
  <map name="com.company.feature.domain.SomeEntityClass">
    <time-to-live-seconds>0</time-to-live-seconds>
    <max-idle-seconds>0</max-idle-seconds>
    <eviction-policy>LRU</eviction-policy>
    <max-size policy="PER_NODE">5000</max-size>
    <eviction-percentage>25</eviction-percentage>
    <min-eviction-check-millis>100</min-eviction-check-millis>
  </map>
</hazelcast>

每个地图区域都允许您定义区域的驱逐方式。除非您定义逐出策略或手动从缓存中删除元素,否则Hazelcast将无限期地缓存它们。欢迎您阅读Hazelcast文档,该文档描述了各种配置属性所代表的内容及其有效值集。

至于持久性,是的Hazelcast允许您定义<mapstore/>配置,您可以在其中指定MapStoreMapLoader实现,以便您可以根据需要保留缓存。

最后,我不一定能说出Hazelcast的重量级因素。也许其他人可以在这一点上讨好。

我在这里的建议是测试它和市场上的其他替代方案,从性能和可读性的角度来看,它最适合您的需求,与配置和配置所需的灵活性和严格性相对照。维护。