【发布时间】:2013-09-28 00:20:00
【问题描述】:
当一些节点突然死亡时,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.
当node2和node3在node1完成重新分区之前突然同时死掉,那么入口B就永远丢失了。
解决这个问题的任何想法:
- 我们尝试将映射备份计数从 1 更改为 3,它适用于 3 节点以上的情况,但在某些情况下,在更高数量的集群中仍然可能存在问题。
- 有没有办法在每个节点上强制执行此映射备份,例如,将备份计数设置为节点号?
- 我们不会将数据持久化到存储中。
【问题讨论】:
-
如果超过
<backup>节点在短时间内失败,那么你就完蛋了 - 你需要:给他们时间重新平衡,增加备份计数,或者使用你可以处理的数据从持久存储重新创建。
标签: java cluster-computing hazelcast