估计Netty客户端的吞吐量

时间:2018-05-12 14:56:59

标签: netty

我有以下设置。 enter image description here

Netty Server正在通过10G链路从第三方客户端接收流量。我必须通过1G链路使用Netty客户端将此流量转发到其他主机。 netty是否有任何API可用于估算我的Netty客户端(1G链接)的写入速度,因此我可以使用此信息来限制我的Netty Server(10G链接)的带宽?

1 个答案:

答案 0 :(得分:0)

正确的方法是使用TCP背压,这意味着您的代理读取的内容超出了其写入的内容。仅当您准备接收更多信号时,才发送TCP ACK信号来实现此目的。

仅基于吞吐量测量的方法不适用,因为它不能处理暂时的性能下降。 (通过对滑动时间窗口中的缓冲区的大小进行计数,这样的测量是微不足道的。)

Netty提供了用于TCP背压的API,这正是您所需要的。在写入成功之后,您“只需”将ChannelOption.AUTO_READ设置为false并设置为Channel.read()即可自动读取。

我建议您仔细查看Netty's sample proxy,它会禁用AUTO_READ

LittleProxy是一段更复杂的代码,它还监视吞吐量。