netty中的option可否在服务启动后再修改
下面是一段netty服务端的代码
ServerBootstrap b = new ServerBootstrap();
b.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.option(ChannelOption.SO_BACKLOG, 1)
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE, 0, 4, 0, 4));
pipeline.addLast("frameEncoder", new LengthFieldPrepender(4));
pipeline.addLast(workerGroup, new TcpServerHandler());
}
})
.bind(IP, PORT).sync();
System.out.println("TCP服务器已启动");
,开始的时候我设置了SO_BACKLOG = 1 ,但是并发连接大的时候经常出现
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /127.0.0.1:9999
这个错误。问题的解决我试过可是修改代码中SO_BACKLOG = 1024 。然后重启服务器,可以达到更大的并发连接。
现在突然想,有没有办法在程序运行中修改SO_BACKLOG 的值,并且让他起效,而不需要重启服务器?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
后来看了源码,发现不能。