如何从java客户端检查hazelcast集群是否存活?

u6f*_*f6o 5 java client-server hazelcast

我们在客户端 - 服务器模式下使用hazelcast.hazelcast集群包含2个hazelcast节点,我们有大约25个客户端连接到集群.

我现在要看的是一个简单的检查,试图找出群集是否还活着.它应该是一个相当便宜的操作,因为这种检查会经常发生在每个客户端上(我可以想象每秒一次).

这样做的最佳方法是什么?

pve*_*jer 9

最简单的方法是将LifecycleListener注册到客户端HazelcastInstance:

    HazelcastInstance client = HazelcastClient.newHazelcastClient();
    client.getLifecycleService().addLifecycleListener(new LifecycleListener() {
        @Override
        public void stateChanged(LifecycleEvent event) {

        }
    })
Run Code Online (Sandbox Code Playgroud)

客户端使用定期心跳来检测群集是否仍在运行.


mag*_*ter 7

您也可以使用该LifecycleService.isRunning()方法:

HazelcastInstance hzInstance = HazelcastClient.newHazelcastClient();
hzInstance.getLifecycleService().isRunning()
Run Code Online (Sandbox Code Playgroud)

  • 发现在未连接的客户端上调用此命令(这意味着群集中没有节点,并且客户端反复记录“无法获得活动的群集连接”),这将返回true。 (2认同)