7

我正在开发一个客户端-服务器对,其中多线程客户端每秒执行数千次服务器调用,首要任务是实现最小延迟。吞吐量也应该很高。客户端和服务器都是用 Java 编写的,通信语义非常简单(put/get 操作)。

满足这些要求的最佳 Java 网络库/框架是什么?像 Tomacat/Jetty 这样的服务器似乎是重量级的。我正在考虑 MINA 或 Netty,但我不确定这些异步库能否在繁重的工作负载下提供稳定的低延迟。

4

4 回答 4

2

我建议你试试kryonet框架。

于 2012-06-22T14:53:17.713 回答
2

如果您想在同一台机器上进行通信,您可以尝试Java Chronicle之类的东西 ,它可以支持每秒超过一百万条持久消息,往返时间为亚微秒。

如果您想要机器之间的低延迟,您需要非常仔细地查看您的硬件。对于商品硬件,您的往返延迟将增加 100 微秒。使用专业硬件,您可以看到接近 20 微秒的时间。

或者您可以在同一个盒子上进行通信并获得更低的延迟。;)

于 2012-06-22T15:04:27.050 回答
2

你也可以试试Jocket。它与 Java Chronicle 共享一些概念,但直接针对替换标准 Socket 实现。

对于进程之间的乒乓,RTT 延迟低于微秒。

于 2013-09-10T20:55:44.963 回答
1

如果您需要超高性能和吞吐量,我建议使用原始套接字(查看 Socket 和 ServerSocket - 可能也有 nio 版本)。这将使您摆脱 HTTP 和其他协议中包含的开销

于 2012-06-22T14:53:02.043 回答