问题描述
当客户端从集群断开连接时,集群成员有没有办法接收回调(不仅仅是单个成员)。
在客户端,仅当客户端完全从集群断开连接时才会调用断开连接生命周期事件,但在集群成员上,当发生套接字断开连接/错误时,“所有者”成员似乎会获取断开连接/连接生命周期事件,因此我们不能将断开连接用作集群断开连接的指示(它只是暂时与该所有者成员断开连接)。
我们希望使用客户端断开连接(与整个集群)作为清除共享状态的触发器,特别是从客户端 UUID 键控的 IMap 中删除条目
解决方法
您可以将您的侦听器添加到客户端服务中。
var hazelcast = Hazelcast.newHazelcastInstance();
hazelcast.getClientService().addClientListener(new ClientListener() {
@Override
public void clientConnected(Client client) {
// TODO
}
@Override
public void clientDisconnected(Client client) {
// TODO
}
});