【问题标题】:Hazelcast client disconnect from whole clusterHazelcast 客户端与整个集群断开连接
【发布时间】:2021-09-08 17:04:26
【问题描述】:

当客户端与集群断开连接时(不仅仅是单个成员),集群成员是否可以接收回调。

在客户端,仅当客户端与集群完全断开连接时才会调用断开生命周期事件,但在集群成员上,当出现套接字断开/错误时,“所有者”成员似乎会获取断开/连接生命周期事件,因此我们不能将断开连接用作集群断开连接的指示(它只是暂时与此所有者成员断开连接)。

我们希望使用客户端断开连接(与整个集群)作为清除共享状态的触发器,特别是从由客户端 UUID 键入的 IMap 中删除条目

【问题讨论】:

    标签: cluster-computing hazelcast disconnect


    【解决方案1】:

    您可以将侦听器添加到客户端服务。

            var hazelcast = Hazelcast.newHazelcastInstance();
            hazelcast.getClientService().addClientListener(new ClientListener() {
                @Override
                public void clientConnected(Client client) {
                  // TODO
                }
    
                @Override
                public void clientDisconnected(Client client) {
                  // TODO
                }
            });
    

    【讨论】:

    • 我在配置中添加了一个客户端侦听器,这与使用“getClientService().addClientListener”添加它有什么不同吗?我正在使用 config.addListenerConfig(listenerConfig);但是正在调用 clientDisconnected(Client client) 以从集群中暂时断开连接,我认为这仅适用于“所有者”成员,其他集群成员不会断开连接并重新连接。所以我不能使用 clientDisconnected 方法,因为它可能是暂时断开而不是整个集群断开。我们正在使用 4.0.3
    猜你喜欢
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    相关资源
    最近更新 更多