将 Tomcat 7.0 升级至 8.5 或 9.0?

将 Tomcat 7.0 升级至 8.5 或 9.0?

我最近继承了一个运行 Tomcat 7.0.68 的系统,并发现 Tomcat 7 将于 2021 年 3 月终止使用。我还了解到 Tomcat 8.0 似乎已被 Tomcat 8.5 和 9.0 取代,这让我感到困惑。哪个是推荐的升级候选?两者之间有什么优缺点吗?我目前正在运行 Java 1.8.0_74,但在我们的整个基础设施中都在使用 Java 8 的更高版本。我们正在运行的 Web 应用程序是 THREDDS v4.6.10。任何建议或建议都将不胜感激。

答案1

Tomcat 8.5 和 9.0 之间没有太大区别:前者最初是 Tomcat 9.0 的第一个预发布版本的分支。由于 Java EE Servlet API 的重大变化来自版本 3.0(由 Tomcat 7.0 支持),因此我预计迁移到较新的 Tomcat 版本不会出现任何重大问题。

我会选择 Tomcat 9.0,因为它是“您所需要的最后一个版本”,这意味着 Tomcat 10.0 将使用二进制不兼容的标准 Jakara EE Servlet 5.0(基本上他们将软件包从 重命名javax.servletjakarta.servlet),所以我认为 Tomcat 9.0 将会存在很长一段时间。

迁移期间需要注意以下几点:

  • 首先设置一个测试服务器,比如以意想不到的方式中断,
  • 继续使用 Java SE 8.0,因为它将至少支持到 2026 年 5 月而且由于新版本缺少许多 Java EE API(您的应用程序可能依赖这些 API,最明显的是 JAXB),
  • 如果你使用容器管理的连接池,Tomcat 7.0 使用commons-dbcp,而 Tomcat 8.0+ 使用commons-dbcp2,因此你可能需要调整连接池参数,

您没有提到运行 Tomcat 的系统。如果您使用 Windows,我见过许多客户错误地安装了 32 位 Java(这是您在 Google 上找到的第一个结果),这会将可用内存限制在 2 GiB 左右。

答案2

为了闭合循环,我们决定使用 Tomcat 9.0.31 和 Java 11.0.16,尽管不可否认的是,链中最薄弱的环节是 THREDDS 应用程序本身,现已升级到 5.4 版本。

相关内容