我正在研究一个客户端 - 服务器对,其中多线程客户端每秒执行数千次服务器调用,第一优先级是实现最小延迟。吞吐量也应该很高。客户端和服务器都是用Java编写的,通信语义非常简单(put / get操作)。
满足这些要求的最佳Java网络库/框架是什么?像Tomacat / Jetty这样的服务器似乎是重量级的。我正在考虑MINA或Netty,但我不确定这些异步库是否会在繁重的工作负载下提供稳定的低延迟。
答案 0 :(得分:2)
我建议你试试kryonet框架。
答案 1 :(得分:2)
如果您想在同一台计算机上进行通信,可以尝试Java Chronicle之类的内容 它可以支持每秒超过一百万条持久消息,其次数为亚微秒。
如果您希望机器之间的延迟较低,则需要仔细查看硬件。对于商用硬件,您的往返延迟将更多为100微秒。使用专业硬件,您可以看到接近20微秒。
或者您可以在同一个盒子上进行通信并获得更低的延迟。 ;)
答案 2 :(得分:2)
您也可以尝试Jocket。它与Java Chronicle共享一些概念,但直接针对替换标准的Socket实现。
对于进程间的乒乓,RTT延迟低于微秒。
答案 3 :(得分:1)
如果您需要超高性能和吞吐量,我建议使用原始套接字(请查看Socket和ServerSocket - 也可能有nio版本)。这将使您免于HTTP和其他协议中包含的开销