dubbo 版本 3.2.4

实验过程：服务端关闭网络，节点在15min内不会从nacos平台消失。导致consumer仍然能够拿到invoder，此时客户端如果能判断服务端invoker不能连接，就会从全局的invoker列表中剔除该invoker，执行故障转移。但是dubbo consumer 在服务端突然断网后，判断连接仍然存在，导致无法剔除invoker，无法进行故障转移。

问题：针对服务端突然断电、断网，是否是应为tcp链接无法正常断开，导致consumer判断连接失效？



<img width="916" alt="image" src="https://github.com/apache/dubbo/assets/139483558/38486a89-695a-4792-83a6-51f783f5abf2">

connectingPromise.compareAndSet(null, new DefaultPromise<>(GlobalEventExecutor.INSTANCE));
    }
    public Promise<Void> getClosePromise() {
        return closePromise;
    }
    public static AbstractConnectionClient getConnectionClientFromChannel(io.netty.channel.Channel channel) {
        return channel.attr(CONNECTION).get();
    }
    public ChannelFuture write(Object request) throws RemotingException {
        if (!isAvailable()) {
            throw new RemotingException(null, null,
                    "Failed to send request " + request + ", cause: The channel to " + remote
                            + " is closed!");
        }
        return ((io.netty.channel.Channel) getChannel()).writeAndFlush(request);
    }
    @Override
    public void addCloseListener(Runnable func) {
        getClosePromise().addListener(future -> func.run());
    }
    @Override
    public void destroy() {
        close();
    }
    @Override
    public String toString() {
        return super.toString() + " (Ref=" + this.getCounter() + ",local=" +
                (getChannel() == null ? null : getChannel().getLocalAddress()) + ",remote=" + getRemoteAddress();
    }
    class ConnectionListener implements ChannelFutureListener {