Hazelcast:如何从地图

时间:2017-10-18 04:40:54

标签: java caching hazelcast hazelcast-imap

hazelcast群集中有两个节点。我试图从地图获取缓存,可能存储在第二个节点上。如果网络出现故障,它将从地图获取缓存时进入等待循环。 有没有办法在从地图获取缓存而不是等待时检测到即时网络故障。 我在调用get之前尝试过tryLock,返回立即为true或false但不确定它是否适用于所有情况。

1 个答案:

答案 0 :(得分:0)

IMap.tryLock做的是使用 0 timeout 调用LockOperation,这样如果有网络分区,它将立即返回。 您可以使用返回IMap.getAsync(key)对象的ICompletableFuture来实现类似的方案。 然后使用ICompletableFuture.get(timeout, timeUnit)设置从地图获取条目的超时。

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