我想在服务器上打开 2 个端口,1 个用于生产,2 个用于监控,1 个客户端用于远程登录到另一台服务器。但是我的服务器在运行最多 1 天时总是收到“到许多打开的文件”的通知,我的代码如下:
ServerBootstrap bootstrap = new ServerBootstrap( new NioServerSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool()));
private PipelineServer ps= new PipelineServer(listenMessage1);
bootstrap.setPipelineFactory(ps);
bootstrap.setOption("child.tcpNoDelay", true);
bootstrap.setOption("child.keepAlive", true);
bootstrap.setOption("reuseAddress", true);
bootstrap.bind(new InetSocketAddress(server_port));
ServerBootstrap bootstrap2 = new ServerBootstrap( new NioServerSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool()));
private PipelineServer ps2 new PipelineServer(listenMessage2);
bootstrap2.setPipelineFactory(ps2);
bootstrap2.setOption("child.tcpNoDelay", true);
bootstrap2.setOption("child.keepAlive", true);
bootstrap2.setOption("reuseAddress", true);
bootstrap2.bind(new InetSocketAddress(server_port2));
listenMessage1 & listenMessage2 用于端口生产和端口监控之间的通信,处理程序解码和编码使用 StringDecoder() & StringEncoder(); 但如果程序运行很长时间,例如:1 天,我们的日志发现“有许多打开的文件”,我无法连接到服务器。
请您的解决方案。谢谢