我的应用程序不是基于 Web 的,只需要使用套接字来为大约 1000 个客户端提供服务。吞吐量和延迟对我来说至关重要。目前正在使用 NIO 的 select()
,但正在考虑转向 NIO.2 中的异步 IO。
- 什么时候应该使用异步 I/O?
- 异步 I/O 的主要用例是什么?
最佳答案
如果您使用的是 Infiniband 网络,我建议您查看异步 IO。
Comparing Java 7 Async NIO with NIO.
但是,如果您使用的是普通以太网,则速度可能会变慢。编码比使用非阻塞 IO 更复杂,而使用非阻塞 IO 比使用阻塞 IO 更复杂。
如果延迟非常重要,我建议您考虑使用像 Solarflare 这样的内核旁路网络适配器。但是,如果您可以接受 100 微秒的延迟,则您不太可能需要它。
关于java - 异步 I/O 的主要用例是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7511434/