xuxueli / xxl-rpc

A high performance, distributed RPC framework.(分布式服务框架XXL-RPC)
http://www.xuxueli.com/xxl-rpc/
Apache License 2.0
620 stars 404 forks source link

NettyHttpConnectClient.java 如果无法连接会持续创建NioEventLoopGroup #16

Closed zhufg closed 5 years ago

zhufg commented 5 years ago
    this.channel = bootstrap.connect(host, port).sync().channel();

如果这里面连接不成功,NioEventLoopGroup不会进行释放 ConnectClient ConnectClient connectClient_new = connectClientImpl.newInstance(); connectClient_new.init(address, xxlRpcReferenceBean.getSerializer(), xxlRpcReferenceBean.getInvokerFactory()); connectClientMap.put(address, connectClient_new);

xuxueli commented 5 years ago

你好,最新Release版本做了优化的,可以参考master分支代码,如下,如果连接创建失败,会主动销毁的:

// 代码位置:com.xxl.rpc.remoting.net.common.ConnectClient
……
ConnectClient connectClient_new = connectClientImpl.newInstance();
 try {
        connectClient_new.init(address, xxlRpcReferenceBean.getSerializer(), xxlRpcReferenceBean.getInvokerFactory());    // 初始化
        connectClientMap.put(address, connectClient_new);
} catch (Exception e) {
        connectClient_new.close();    // 销毁
        throw e;
}
……
zhufg commented 5 years ago

与release的版本有代码冲突,做了个本地的小版本,只能后续切换了