当一些节点突然死亡时,hazelcast内存映射丢失了数据

时间:2013-09-26 15:40:44

标签: java cluster-computing hazelcast

当某些节点突然死亡时,

hazelcast内存映射丢失了数据。

例如,在3节点集群中,我们有一个共享映射,考虑到映射有3个条目(A,B,C),默认备份= 1,这3个条目等分布给节点,例如可能是:

Entry A: node 1, node 2
Entry B: node 2, node 3
Entry C: node 1, node 3.

当node1和node3在node1完成重新分区之前突然死亡时,条目B将永远丢失。

有任何想法可以解决这个问题:

  1. 我们尝试将地图备份计数从1更改为3,它适用于3节点以上的情况,但在某些情况下,问题仍然存在于较高数量的群集中。
  2. 有没有办法在每个节点上强制执行此映射备份,例如,将backup-count设置为节点号?
  3. 我们不会将数据保存到存储中。

2 个答案:

答案 0 :(得分:2)

在Hazelcast 3中,您可以配置同步和异步备份的数量。

但是如果你想拥有高可用性,你需要添加更多的机器;您添加的越多,可用性就越高。

我们具有卸载到数据库的功能,例如使用MapStore和MapLoader接口。我们还没有开箱即用的持久性到磁盘。

答案 1 :(得分:0)

从2.1开始,他们的分布式队列支持自定义备份计数,队列由分布式地图备份。不确定它是否仍然支持最新版本。请看一下:http://www.hazelcast.com/docs/2.1/manual/single_html/#Queue