Я пытаюсь реализовать TCP-сервер в Netty, который использует GlobalTrafficShapingHandler для скорости около 100 КБ / с. Он читает в сообщениях XML около 1 КБ на сообщение.
У меня есть отдельное приложение, запускающее 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());
}
}
Похоже, что это совсем не замедляет пропускную способность, и я читаю пропускную способность около 1 МБ / с в любом направлении. Кто-нибудь знает, что может быть причиной этого?