我正在尝试在Netty中实现一个使用GlobalTrafficShapingHandler的TCP Server,速度约为100KB / s。它读取XML消息,每条消息大约1KB。
我有一个单独的应用程序在全速触发xml,但是它似乎并不受TrafficShaper的限制。
主类
this.throttleHandler = new GlobalTrafficShapingHandler(
Executors.newScheduledThreadPool(1),
100*ONE_KB,
100*ONE_KB,
5000);
private ServerBootstrap createStreamingServer() {
return new ServerBootstrap()
.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.childHandler(new ChannelInitializer<SocketChannel>() {
ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast("bandwitdh-handler", this.throttleHandler);
pipeline.addLast("xml-decoder", new XmlFrameDecoder(1048576);
pipeline.addLast("string-decoder", new StringDecoder());
pipeline.addLast("inputHandler", new SimpleChannelInboundHandler() {
//DO STUFF
}
pipeline.addLast("string-encoder", new StringEncoder());
}
}
似乎完全没有减慢带宽,并且我在任一方向上以大约1MB / s的速度读取吞吐量。有人知道是什么原因造成的吗?