Java Hazelcast:如何在从映射获取缓存时检测网络故障

Java Hazelcast:如何在从映射获取缓存时检测网络故障,java,caching,hazelcast,hazelcast-imap,Java,Caching,Hazelcast,Hazelcast Imap,hazelcast集群中有两个节点。我正在尝试从映射中获取缓存,该缓存可能存储在第二个节点上。如果网络出现故障,它将在从映射中获取缓存时进入等待循环。 在从映射中获取缓存而不是等待时,是否有任何方法可以检测即时网络故障。 我在调用get之前尝试过tryLock,它会立即返回true或false,但不确定它在所有情况下都能正常工作。IMap.tryLock所做的是调用一个超时为0的锁定操作,因此如果有网络分区,它会立即返回。 使用返回ICompletableFuture对象的IMap.getAsy

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

IMap.tryLock所做的是调用一个超时为0的锁定操作,因此如果有网络分区,它会立即返回。 使用返回
ICompletableFuture
对象的
IMap.getAsync(key)
可以实现类似的场景。 然后使用
ICompletableFuture.get(timeout,timeUnit)
设置从映射获取条目的超时

通过心跳检测网络分区。当一个成员在一定的超时时间内没有发送心跳信号时,它被认为是死的。因此,没有立即检测网络分区的方法,但您可以通过
hazelcast.heartbeat.interval.seconds
hazelcast.max.no.heartbeat.seconds
属性配置行为。(见Hazelcast文件)