Hazelcast:如何确保集群启动完成

时间:2016-02-20 07:30:03

标签: java locking startup hazelcast

我有一个包含3个节点的群集(在不同的机器中),我有一个"业务逻辑"在启动时使用分布式锁

有时候有更多延迟每个 节点获取独占 锁定 成功因为群集已经没有"启动"所以每个节点还没有看到另一个节点。

随后,节点看到对方,并且群集已正确配置3个节点。我知道有一个" MemberShipListener"捕获事件"会员添加"所以我可以再次执行"业务逻辑"但我想知道是否有一种方法可以确保集群启动何时正确完成以便等待执行"业务逻辑&#34 ;直到群集开启。

我尝试使用hazelcast.initial.wait.seconds,但配置正确的秒数不确定,我也不知道这是否也会延迟成员加入操作。

1 个答案:

答案 0 :(得分:6)

Afaik,Hazelcast中没有这样的东西。由于群集是动态的,因此节点可以随时离开,因此群集永远不会“完整”。

但是你可以:

  1. 配置初始等待,如您所述,以帮助初始延迟
  2. 使用hazelcast.initial.min.cluster.size来定义hazelcast在开始时等待的最小成员数
  3. 定义最小法定数量:群集被视为可用/健康的最小节点数(请参阅cluster quorum
  4. 使用PartitionService检查群集是否安全,或者是否存在待定迁移