itishsy 2019-05-28 15:59
浏览 452

Netty为什么无法接收到其中一个客户端的请求?

项目中有两个web应用(W1、W2)使用Netty调用同一个后台服务S1。开始都是正常的,运行一段时间(不确定多长时间)后,W1-S1可正常请求-响应,但W2无法请求到S1。

跟踪日志发现,W2执行 channel.writeAndFlush 返回 isSuccess=true

logger.info("发送一个请求(" + id + "):" + channel.remoteAddress() + Constants.RPC_SEPARATOR + request);
channel.writeAndFlush(channelObject).addListener(future -> {
    if (!future.isSuccess()) {
        logger.error("channel writeAndFlush failed");
        syncObject.release();
    } else {
        logger.info("channel writeAndFlush success");
    }
});

但服务端未接收到请求。可以看到channel writeAndFlush success,但就是没有接收到响应。(可以判断服务端是正常的,W1-S1还是一直请求/响应正常。且W2-S1的心跳也一直维持)。

后续来自W2的请求一直都是这种状态,直到把W2重启重新建立连接后正常。

有没有人知道是什么原因?最近生产的rpc框架时不时报这种请求的异常出来,急!

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 对于相关问题的求解与代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作
    • ¥15 求NPF226060磁芯的详细资料