【问题标题】:Fastest connection for tomcat 9.0 in 2021: NIO or APR? [closed]2021年tomcat 9.0最快连接:NIO还是APR? [关闭]
【发布时间】:2021-10-18 22:25:48
【问题描述】:

我正在安装一个服务器,该服务器主要传输超过 16MiB 的文件,单个传输的上传/下载速度至关重要,但一次最多只能连接 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 中运行。

这似乎与Tomcat with APR still says aprConnector is false有关

【问题讨论】:

标签: tomcat nio tomcat9 apr


【解决方案1】:

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

从 ApacheCon 2017 上的 presentation by Jean-Frederic Clere 可以看出:

  • OpenSSL 比 JSSE 高出一个数量级,
  • NIO 与 NIO2 与 APR 的性能非常相似,但 Java 实现通常最终名列前茅。

由于AprLifecycleListener的默认配置相当于:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 2019-01-04
    • 2021-08-16
    • 2015-02-09
    相关资源
    最近更新 更多