如何解决;“打开的文件太多”;netty的问题
当我在我们的产品环境中使用基于netty的http服务器时。我发现在工作了几天后,服务器将遇到一个非常严重的错误“打开的文件太多”,并且在关闭传入请求后无法自动恢复,此异常未停止即被抛出,我必须手动重新启动服务器 我向接受程序thead添加了一个处理程序,如下所示:如何解决;“打开的文件太多”;netty的问题,netty,Netty,当我在我们的产品环境中使用基于netty的http服务器时。我发现在工作了几天后,服务器将遇到一个非常严重的错误“打开的文件太多”,并且在关闭传入请求后无法自动恢复,此异常未停止即被抛出,我必须手动重新启动服务器 我向接受程序thead添加了一个处理程序,如下所示: serverBootstrap.channelFactory(new ChannelFactory<ServerChannel>() { @Override pub
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;
}
});
我可以在这里捕获此异常,但不知道如何处理它
如果我可以拒绝这种联系或给予友好的回应
如何从这个问题中恢复
非常感谢 您正在泄漏插座,这只能意味着您在完成时没有关闭插座。不要在这里张贴文字图片,更不要说文字图片的链接。张贴文本。