首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集群中部分节点重启时Hazelcast Map中的数据丢失

集群中部分节点重启时Hazelcast Map中的数据丢失
EN

Stack Overflow用户
提问于 2015-07-21 23:43:23
回答 1查看 632关注 0票数 0

我们一直在使用Hazelcast 2.6.8并升级到3.5。升级的原因似乎是缓存数据的间歇性问题。然而,升级并没有解决这个问题。

我们正在尝试在Hazelcast IMap中缓存100个java普通对象,这些对象是从外部数据库缓存的。缓存的对象通过Hazelcast的ConcurrentMap在整个集群中共享。我们有一个由6个节点组成的集群,每当我们停止和启动这6个节点中的2个节点时,我们发现一些java对象丢失了,它的出现次数随着丢失的数量而变化,尽管当丢失时,地图中的对象数量通常是90个左右,而不是100个。

最初backup-count属性设置为3,但由于失败,我们将其增加到6。

使用的IMap方法是用于检索数据的loadAll方法。这是我们使用的配置,StoreClass实现了Hazelcast MapStore:

代码语言:javascript
复制
<map name="objectsMap">
<backup-count>6</backup-count>
<near-cache>
<time-to-live-seconds>0</time-to-live-seconds>
<max-idle-seconds>6000</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<max-size>5000</max-size>
<invalidate-on-change>true</invalidate-on-change>
</near-cache>

<map-store enabled="true">
<class-name>StoreClass</class-name>
<write-delay-seconds>0</write-delay-seconds>
EN

回答 1

Stack Overflow用户

发布于 2015-08-31 18:24:07

代码语言:javascript
复制
<invalidate-on-change>true</invalidate-on-change>

如果为true,则所有成员都会侦听其缓存条目中的更改,并在更新或删除条目时将其逐出。

将其更改为false,然后尝试。它起作用了。

现在可以将<backup-count>6</backup-count>放到所需的较低数字。建议不要有大的数字作为备份。1或2应满足要求。

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

https://stackoverflow.com/questions/31543740

复制
相关文章

相似问题

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