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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 无线电能传输系统MATLAB仿真问题
    • ¥50 如何用脚本实现输入法的热键设置
    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
    • ¥15 谁有desed数据集呀
    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
    • ¥15 关于#hadoop#的问题