Hazelcast 文档指出
If a member goes down, its backup replica that also holds the same data, will dynamically redistribute the data including the ownership and locks on them to remaining live nodes. As a result, no data will get lost.
几个问题
a) 如果为集群中的一个成员配置了 1 的备份,那么这是否意味着集群中只有 1 个成员拥有该成员的备份?或者是否有备份的备份?
b) 所以给定 a) 如果成员及其备份都出现故障,那么数据会丢失吗?
c) 如果存在直写策略并且成员及其备份都出现故障并且有数据丢失,那么是否存在动态恢复数据的机制(使用直写机制或其他机制)?
提前致谢
最佳答案
几个答案:
a) 在数据结构级别配置备份。所以你可以说:这个 map 有 1 个同步备份……而那个 map 零……或 2 或……
备份可以是同步的(意味着对备份的更改进行了写入),也可以是后写(因此在某个时间点完成了备份)。异步和同步备份在数据结构级别独立配置。
b) 是的。这就是为什么如果您有如此高的可用性要求,您可以配置 1 个以上的备份。
c) 一些数据结构(例如 map/queue)可以配置一个 maploader/mapstore 策略;这使得可以例如将您的更改写入磁盘/数据库等。
关于failover - Hazelcast 故障转移和备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20281528/