2021 年 tomcat 9.0 的最快连接:NIO 还是 APR?

Fastest connection for tomcat 9.0 in 2021: NIO or APR?

我正在安装一个服务器,该服务器将主要传输超过 16MiB 的文件,upload/download 个人传输的速度将是必不可少的,但一次不超过 100 个连接。我们有一个使用自定义 UDP 连接的后端,但故障转移是 HTTP/TCP 所以我想确保它也很快

Web 服务器是 Apache Tomcat 9.0,我已经安装了 APR 库,因此我在 $CATALINA_HOME/conf/server.xml 中的 SSL 连接器可以与任一
一起使用 protocol="org.apache.coyote.http11.Http11NioProtocol"

protocol="org.apache.coyote.http11.Http11AprProtocol"
然后
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />

但是我在网上发现关于哪个是 Tomcat 9.0.52 之类的更好选择的相互矛盾的信息。如果有任何改变,它是 Debian 11 VM 中的 运行。

这似乎是相关的

当使用 HTTPS 时,您实际上有 5 个选择:NIO+JSSE、NIO+OpenSSL、NIO2+JSSE、NIO2+OpenSSL、APR+OpenSSL。

在 ApacheCon 2017 的 presentation by Jean-Frederic Clere 中,您可以看到:

  • OpenSSL 胜过 JSSE 一个数量级,
  • NIO vs NIO2 vs APR 的性能非常相似,但 Java 实现通常排在首位。

因为 AprLifecycleListener 的默认配置等同于:

<Listener SSLEngine="on" FIPSMode="off" SSLRandomSeed="builtin"
          useAprConnector="false" useOpenSSL="true"
          className="org.apache.catalina.core.AprLifecycleListener"/>

只要在您的系统中检测到 Tomcat 本机库,您就会默认获得 NIO+OpenSSL。