240 发简信
IP属地:新疆
  • 按照您介绍的,增加判断,并改用ctx.pipeline().writeAndFlush(tcpMsg).sync()
    目前内存已经不会溢出了
    但是过了很久,出现了阻塞现象
    阻塞那个时间正好有个远程连接掉线,怀疑是远程连接掉线后,正好向该连接发送数据时,内部的DefaultChannelPromise调用wait,但是连接已经被回收了吧,所以那里一直没有被notify
    不知道我猜测的对不对。
    "pool-1-thread-4" #46 prio=5 os_prio=0 tid=0x000000002290b000 nid=0x6598 in Object.wait() [0x00000000242de000]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at io.netty.util.concurrent.DefaultPromise.await(DefaultPromise.java:239)
    - locked <0x0000000083cb8b28> (a io.netty.channel.DefaultChannelPromise)
    at io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:129)
    at io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:28)
    at io.netty.util.concurrent.DefaultPromise.sync(DefaultPromise.java:340)
    at io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:117)
    at io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:28)

    netty学习系列九:记一次压测异常排查

    一、背景描述# 基于Netty做了一个消息推送服务,将消息总线中的消息推送给与消息推送服务器进行socket连接的client。 二、问题描述# 进行压力测试,当消息发送速率...