gpt4 book ai didi

java - Hazelcast:如何从 map 获取缓存时检测网络故障

转载 作者:行者123 更新时间:2023-12-02 12:07:21 24 4
gpt4 key购买 nike

hazelcast 集群中有两个节点。我正在尝试从 map 获取缓存,该缓存可能存储在第二个节点上。如果网络故障,它将在从 map 获取缓存时进入等待循环。有什么方法可以在从 map 获取缓存而不是等待时立即检测网络故障。我在调用 get 之前尝试过 tryLock ,它立即返回 true 或 false,但不确定它是否在所有情况下都有效。

最佳答案

IMap.tryLock 的作用是调用一个 0 超时的 LockOperation,这样如果存在网络分区,它将立即返回。您可以使用返回 ICompletableFuture 对象的 IMap.getAsync(key) 来实现类似的场景。然后使用 ICompletableFuture.get(timeout, timeUnit) 设置从 map 获取条目的超时时间。

网络分区是通过心跳检测的。当一个成员在一定时间内没有发送心跳,则认为该成员已死亡。因此,没有直接的方法来检测网络分区,但您可以通过 hazelcast.heartbeat.interval.secondshazelcast.max.no.heartbeat.seconds 属性配置行为。 (请参阅 Hazelcast 文档中的 System Properties)

关于java - Hazelcast:如何从 map 获取缓存时检测网络故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46802942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com