Java 崩溃节点的Hazelcast检测

Java 崩溃节点的Hazelcast检测,java,concurrency,hazelcast,Java,Concurrency,Hazelcast,以下是我的简化用例: 我有两个嵌入式节点,每个节点在同一台物理机器上运行在自己的JVM中。我启动它们,它们形成一个简单的集群 两个节点都尝试获取相同的锁 第一个获得锁的人会将其保持30秒 如果我杀死持有锁的节点,集群需要5到10秒的时间来断定节点已死亡并释放锁 我的问题是:在杀死保持锁的节点和集群释放锁之间的间隔能缩短吗?我需要它小于1秒 我尝试了一些可用的属性,这些属性似乎与此问题有关: hazelcast.socket.connect.timeout.seconds hazelcast.

以下是我的简化用例:

  • 我有两个嵌入式节点,每个节点在同一台物理机器上运行在自己的JVM中。我启动它们,它们形成一个简单的集群
  • 两个节点都尝试获取相同的锁
  • 第一个获得锁的人会将其保持30秒
  • 如果我杀死持有锁的节点,集群需要5到10秒的时间来断定节点已死亡并释放锁
我的问题是:在杀死保持锁的节点和集群释放锁之间的间隔能缩短吗?我需要它小于1秒

我尝试了一些可用的属性,这些属性似乎与此问题有关:

hazelcast.socket.connect.timeout.seconds
hazelcast.client.heartbeat.timeout
hazelcast.client.invocation.timeout.seconds
没有任何帮助,我注意到锁的行为没有变化

更新:

似乎这两个是正确使用的:

<property name="hazelcast.socket.connect.timeout.seconds">1</property>
<property name="hazelcast.connection.monitor.max.faults">1</property>
1
1.
我还没有看到它在实际使用场景中是否会导致稳定性问题。在这个简单的测试中,它工作得相当好