您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        本篇内容介绍了“服务器异常问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
服务背景:
流数据接收--> 解析过滤-->调用socket服务 写入mina服务。
服务器异常日志:
java.io.IOException: Too many open files Failed to open a selectorFailed to create a new instance of org.apache.mina.transport.socket.nio.NioProcessor:null
定位到问题代码:
public void init() {NioSocketConnector connector = new NioSocketConnector();connector.getFilterChain().addLast("codec",new ProtocolCodecFilter(new TextLineCodecFactory(Charset.defaultCharset())));connector.setConnectTimeoutMillis(10000);connector.setHandler(new SocketClientHandler());connector.getSessionConfig().setReceiveBufferSize(10240); // 设置接收缓冲区的大小connector.getSessionConfig().setSendBufferSize(10240);// 设置输出缓冲区的大小ConnectFuture cf = connector.connect(new InetSocketAddress(socketConfig.getSocketServerIp(),socketConfig.getSocketServerPort()));// 等待连接创建完成cf.awaitUninterruptibly();session = cf.getSession();}
问题产生原因:
当mina服务端长时间连接不上 ,并发连接特别多的时候 都会导致上述问题。
解决方案:当连接不成功的时候 进行施放句柄。
修改之后:
public void init() {NioSocketConnector connector = new NioSocketConnector();connector.getFilterChain().addLast("codec",new ProtocolCodecFilter(new TextLineCodecFactory(Charset.defaultCharset())));connector.setConnectTimeoutMillis(10000);connector.setHandler(new SocketClientHandler());connector.getSessionConfig().setReceiveBufferSize(10240); // 设置接收缓冲区的大小connector.getSessionConfig().setSendBufferSize(10240);// 设置输出缓冲区的大小ConnectFuture cf = connector.connect(new InetSocketAddress(socketConfig.getSocketServerIp(),socketConfig.getSocketServerPort()));// 等待连接创建完成cf.awaitUninterruptibly();if (cf.isDone()) {if (!cf.isConnected()) {log.error("fail connect {} {}", socketConfig.getSocketServerIp(),socketConfig.getSocketServerPort());connector.dispose();throw new RuntimeException("Not connect to Mina Server");} else {session = cf.getSession();}}}
“服务器异常问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。