mina mina Connection reset by peer异常

 出现这种原因,一般是服务器端承受不起这么多并发访问,或客户端异常断开,或解压时出现异常

只需要重载 以下方法在处理异常时,关闭掉客户端连接就可以。

 /**
     * 处理异常
     * @param session
     * @param cause
     * @throws Exception
     */
    @Override
    public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
        if (cause instanceof IOException) {
            logger.info("处理请求出现IO异常 " + session, cause);
            session.close();
        }
        else if (cause instanceof ProtocolDecoderException) {
            logger.warn("出现编码与解码异常:" + session, cause);
            session.close();
        }
        else {
            logger.error("出现其它异常:" + session, cause);
            session.close();
        }
    }


可以用

netstat -na|grep 9090|grep FIN_WAIT2|wc -l
 
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'


这两命令查看网络情况。


通过设置 linux 内核 参数,优化网络情况

 
解决方案:


为 FIN_WAIT2 增加超时机制
CLOSE_WAIT缩短keepAlive时间
修改linux系统内核参数:


vi /etc/sysctl.conf

net.ipv4.tcp_keepalive_time = 20
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_keepalive_intvl = 2
net.ipv4.tcp_fin_timeout = 20

设置fin的连接超时时间为20s
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值