我们有一个使用 websocket 和 netty 的网络应用程序。我们正在尝试推送大量数据流,并注意到一旦我们每秒达到大约 300-400 个响应,通道就会开始被标记为 NOT_WRITABLE,并且我们无法发送一些响应。
似乎 netty 正在等待套接字上的 ack。有什么方法可以禁用它,或者有什么方法可以加速它以便能够处理更多?chrome 中的 javascript 实现非常简单,我们似乎无法从这方面提高性能。
似乎您的写入速度更快,然后数据可以“发送”给客户端。您可以尝试增加写入水印。见[1]。
您可能还想尝试一些 TCP 选项,例如“tcpNoDelay”和“sendBufferSize”。见[2]
[1] http://static.netty.io/3.5/api/org/jboss/netty/channel/socket/nio/NioChannelConfig.html#setWriteBufferHighWaterMark(int ) [2] http://static.netty.io/ 3.5/api/org/jboss/netty/channel/socket/SocketChannelConfig.html