netty使用技巧
所属分类 netty
浏览量 1573
高低水位设置
客户端频繁发送消息导致发送队列积压,内存增大,响应时间变长
ch.config().setWriteBufferHighWaterMark(10 * 1024 *1024);
日常监控 连接数 网络读写速度
netstat -anp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5238/java
Recv-Q Send-Q
recv-Q 网络接收队列
send-Q 网络发送队列
对方没有收到或者没有Ack
如果Send-Q不能很快清零,可能是应用向外发送数据包过快,或者是对方接收数据包不够快。
这两个值通常应该为0
发送端和接收端处理速度不均衡
流量整形
流量整形 VS 流控
流控会拒绝消息,流量整形不拒绝和丢弃消息,无论接收量多大,它总能以近似恒定的速度发消息
ChannelPipeline pipeline = ch.pipeline();
ch.pipeline().addLast("channelTrafficShaping", new ChannelTrafficShapingHandler(1024 * 1024, 1024 * 1024, 1000));
pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192, Delimiters.lineDelimiter()));
pipeline.addLast("decoder", new StringDecoder());
pipeline.addLast("encoder", new StringEncoder());
pipeline.addLast(bizGroup,new EchoServerHandler());
public ChannelTrafficShapingHandler(long writeLimit,long readLimit, long checkInterval)
上一篇
下一篇
eclipse使用用技巧
netty ByteBuf 实战
netty ByteBuf 泄露实例
vert.x介绍
基于netty实例演示NIO BIO 异步和同步
netty读写流量统计实例