当我在我们的产品环境中使用基于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;
}
});
我可以在这里抓住这个例外但不知道如何处理它
如果我可以拒绝这种联系或给予友好的回应?
如何从这个问题中恢复?
非常感谢!