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#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
    • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
    • ¥16 mybatis的代理对象无法通过@Autowired装填
    • ¥15 可见光定位matlab仿真
    • ¥15 arduino 四自由度机械臂
    • ¥15 wordpress 产品图片 GIF 没法显示
    • ¥15 求三国群英传pl国战时间的修改方法
    • ¥15 matlab代码代写,需写出详细代码,代价私
    • ¥15 ROS系统搭建请教(跨境电商用途)
    • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。