如何提高JavaNIO2网络性能?

如何提高JavaNIO2网络性能?,java,io,nio,nio2,Java,Io,Nio,Nio2,我阅读了nio2的api,并找到了以下改进方法: AsynchronousSocketChannel.setOption(StandardSocketOptions.SO_RCVBUF, [size]); AsynchronousSocketChannel.setOption(StandardSocketOptions.SO_SNDBUF, [size]); [size] = RTT (from ping) * bandwidth (from net-card) 以下是特定情况下的情况: As

我阅读了nio2的api,并找到了以下改进方法:

AsynchronousSocketChannel.setOption(StandardSocketOptions.SO_RCVBUF, [size]);
AsynchronousSocketChannel.setOption(StandardSocketOptions.SO_SNDBUF, [size]);
[size] = RTT (from ping) * bandwidth (from net-card)
以下是特定情况下的情况:

AsynchronousSocketChannel.setOption(StandardSocketOptions.TCP_NODELAY, ...); 
AsynchronousSocketChannel.setOption(StandardSocketOptions.SO_REUSEADDR, ...);
AsynchronousSocketChannel.setOption(StandardSocketOptions.SO_KEEPALIVE, ...);

点到点还有其他方法吗?

这取决于您的用例。然而,如果您想要最小化延迟并最大化少量连接的吞吐量,我建议使用非阻塞NIO和繁忙等待。如果您只需要高吞吐量,请使用阻塞NIO。NIO2只有在你有infiniband的情况下才有真正的帮助。谢谢你。我需要在局域网的两台服务器之间按给定顺序传输100字节的大消息。