我有一个由3个节点组成的集群(在不同的机器上),并且我有一个“业务逻辑”,该逻辑在启动时使用分布式锁。
有时候,当延迟更高时,每个节点都会成功获取独占锁,因为集群尚未处于“启动”状态,所以每个节点还没有看到其他节点。
随后,节点彼此看到,并且集群正确配置为3个节点。我知道有一个“MemberShipListener”来捕获事件“Member added”,因此我可以再次执行“业务逻辑”,但我想知道是否有一种方法可以确保当集群启动完成时才执行“业务逻辑”,以等待集群启动完成。
我尝试使用“hazelcast.initial.wait.seconds”,但是正确配置秒数并不确定,而且我不知道这是否也会延迟成员加入操作。
有时候,当延迟更高时,每个节点都会成功获取独占锁,因为集群尚未处于“启动”状态,所以每个节点还没有看到其他节点。
随后,节点彼此看到,并且集群正确配置为3个节点。我知道有一个“MemberShipListener”来捕获事件“Member added”,因此我可以再次执行“业务逻辑”,但我想知道是否有一种方法可以确保当集群启动完成时才执行“业务逻辑”,以等待集群启动完成。
我尝试使用“hazelcast.initial.wait.seconds”,但是正确配置秒数并不确定,而且我不知道这是否也会延迟成员加入操作。