Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决;“打开的文件太多”;netty的问题_Netty - Fatal编程技术网

如何解决;“打开的文件太多”;netty的问题

如何解决;“打开的文件太多”;netty的问题,netty,Netty,当我在我们的产品环境中使用基于netty的http服务器时。我发现在工作了几天后,服务器将遇到一个非常严重的错误“打开的文件太多”,并且在关闭传入请求后无法自动恢复,此异常未停止即被抛出,我必须手动重新启动服务器 我向接受程序thead添加了一个处理程序,如下所示: serverBootstrap.channelFactory(new ChannelFactory<ServerChannel>() { @Override pub

当我在我们的产品环境中使用基于netty的http服务器时。我发现在工作了几天后,服务器将遇到一个非常严重的错误“打开的文件太多”,并且在关闭传入请求后无法自动恢复,此异常未停止即被抛出,我必须手动重新启动服务器

我向接受程序thead添加了一个处理程序,如下所示:

    serverBootstrap.channelFactory(new ChannelFactory<ServerChannel>() {
            @Override
            public ServerChannel newChannel() {

                NioServerSocketChannel nioServerSocketChannel = new NioServerSocketChannel();
                nioServerSocketChannel.pipeline().addLast(new ChannelHandler() {
                    @Override
                    public void handlerAdded(ChannelHandlerContext ctx) throws Exception {

                        String name = Thread.currentThread().getName();
                        System.out.println("Thread " + name +" add handler! ");

                    }

                    @Override
                    public void handlerRemoved(ChannelHandlerContext ctx) throws Exception {

                    }

                    @Override
                    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {

                        cause.printStackTrace();
                        LOG.error("Error occurs!",cause);

                    }
                });

                return nioServerSocketChannel;
            }
        });
serverBootstrap.channelFactory(新的channelFactory(){
@凌驾
公共服务器频道newChannel(){
NioServerSocketChannel NioServerSocketChannel=新的NioServerSocketChannel();
nioServerSocketChannel.pipeline().addLast(新的ChannelHandler()){
@凌驾
public void handleraded(ChannelHandlerContext ctx)引发异常{
字符串名称=Thread.currentThread().getName();
System.out.println(“线程”+name+“添加处理程序!”);
}
@凌驾
public void handlerRemoved(ChannelHandlerContext ctx)引发异常{
}
@凌驾
public void exceptionCaught(ChannelHandlerContext ctx,可丢弃原因)引发异常{
cause.printStackTrace();
LOG.error(“发生错误!”,原因);
}
});
返回nioServerSocketChannel;
}
});
我可以在这里捕获此异常,但不知道如何处理它

如果我可以拒绝这种联系或给予友好的回应

如何从这个问题中恢复


非常感谢

您正在泄漏插座,这只能意味着您在完成时没有关闭插座。不要在这里张贴文字图片,更不要说文字图片的链接。张贴文本。