当某些节点突然死亡时,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 节点以上的情况,但在某些情况下,问题仍然可能存在于更高数量的集群中。
- 有没有办法在每个节点上强制执行此映射备份,例如,将备份计数设置为节点号?
- 我们不会将数据持久化到存储中。