嵌入式 Hazelcast 备份读取与同步备份

Embedded Hazelcast backup reads with sync backups

我对 运行 嵌入 hazelcast 时的备份读取有疑问。

如果启用了同步备份并且我们还启用了备份读取,我们在锁内进行更新时是否仍然存在过时读取的风险?

澄清一下我想知道的。

如果我使用上面描述的配置。

如果所有更新都使用悲观锁定模式完成,例如:

    map.lock(key);
    try {
        Value value = map.get(key);
        value.amount++;
        map.put(key, value);
    } finally {
        map.unlock(key);
    }

使用备份读取时,锁内的读取是安全的吗? 因为每次放置都会确保在使用同步备份时更新所有备份?

是的,如果您使用同步备份,那么您的数据在 Hazelcast 成员之间是一致的,因此您的代码片段可以按预期工作。这一切都是假设 Hazelcast 集群本身是稳定的(没有 split-brain)。

但是请注意,锁定并不是实现目标的最佳方式。请看Hazelcast EntryProcessor.