首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hazelcast Hibernate二级缓存配置

Hazelcast Hibernate二级缓存配置
EN

Stack Overflow用户
提问于 2014-07-21 06:39:19
回答 2查看 2.7K关注 0票数 2

我正在试验使用Hazelcast作为Hibernate的二级缓存。我不知道该在哪里指定缓存配置。我在Hazelcast XML中添加了以下内容:

代码语言:javascript
复制
<map name="com.blah.entity.*">
    <backup-count>1</backup-count>
    <time-to-live-seconds>3600</time-to-live-seconds>
    <max-idle-seconds>600</max-idle-seconds>
    <eviction-policy>LRU</eviction-policy>
    <max-size policy="PER_NODE">5</max-size>
    <eviction-percentage>25</eviction-percentage>
    <near-cache>
        <max-size>5</max-size>
        <time-to-live-seconds>3600</time-to-live-seconds>
        <max-idle-seconds>600</max-idle-seconds>
        <eviction-policy>LRU</eviction-policy>
        <invalidate-on-change>true</invalidate-on-change>
    </near-cache>
</map>

但是,当我使用JVisualVM (带有JMX插件)查看MBean地图时,我看到地图的大小是21 (这比我最大的大小5)大。

MBean上的映射'config‘属性显示了我的配置已被应用:

代码语言:javascript
复制
MapConfig{name='com.blah.entity.*',
  inMemoryFormat=BINARY',
  backupCount=1,
  asyncBackupCount=0,
  timeToLiveSeconds=3600,
  maxIdleSeconds=600,
  evictionPolicy='LRU',
  evictionPercentage=25,
  maxSizeConfig=MaxSizeConfig{maxSizePolicy='PER_NODE',
    size=5},
  readBackupData=false,
  nearCacheConfig=NearCacheConfig{timeToLiveSeconds=3600,
    maxSize=5,
    evictionPolicy='LRU',
    maxIdleSeconds=600,
    invalidateOnChange=true,
    inMemoryFormat=BINARY,
    cacheLocalEntries=false},
  mapStoreConfig=null,
  mergePolicyConfig='com.hazelcast.map.merge.PutIfAbsentMapMergePolicy',
  wanReplicationRef=null,
  listenerConfigs=[],
  mapIndexConfigs=[]}

我是在配置中做错了什么,还是误读了JMX数据?

编辑

为了消除任何混乱,文献资料说:

Hazelcast为每个Hibernate缓存区域创建一个单独的分布式映射。因此,可以通过Hazelcast地图配置轻松地配置这些区域。您可以定义备份、驱逐、TTL和近缓存属性。

我希望在映射中为我的实体设置缓存区域的max属性,因为我不希望缓存不受限制地展开。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-07 06:31:30

事实证明,我的配置是正确的,但是在通配符配置的Hazelcast 3.2.1-3.2.4中有一个错误

问题是映射名称中的通配符:<map name="com.blah.entity.*"> --如果我为映射使用一个完全限定的名称,例如com.blah.entity.User,则映射配置将被正确提取。我使用JMX验证了映射配置应用于缓存的正确性。

我已经得到保证,这个问题将在黑泽尔广播3.3中得到解决。

票数 1
EN

Stack Overflow用户

发布于 2014-07-21 06:50:32

在Hibernate配置hibernate.cache.hazelcast.configuration_file_path中使用以下属性指定配置路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24859003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档