按照您介绍的,增加判断,并改用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。 二、问题描述# 进行压力测试,当消息发送速率...