读书笔记《apache-tomcat-7-essentials》Tomcat升级
第 10 章 Tomcat 升级
技术变革和创新以非常快的速度发生。为了适应当前的技术要求并为用户提供最新技术,需要对系统进行升级。新版系统自带最新功能和bug修复,更加稳定可靠。
在本章中,我们将讨论:
升级过程的生命周期
IT 行业遵循的最佳实践
如何将 Tomcat 6 升级到 Tomcat 7
每个组织都根据系统的关键性按照他们的流程升级服务器。通常,产品的评估由技术架构师完成。架构师根据应用程序的重要性定义架构,升级应用程序需要遵循该架构。只有在开发服务器上成功升级后才能进行生产升级。
不同类型的环境
根据其架构,IT 行业中的任何系统基本上都有四种类型的环境。下图展示了大多数行业创建的不同环境:
升级的生命周期
在本主题中,我们将讨论升级期间执行的各个步骤。生命周期由升级中涉及的端到端流程组成。通常,升级从开发环境开始,然后是 QA/阶段/生产环境。以下屏幕截图显示了 IT 行业任何系统升级所遵循的基本步骤顺序:
1.增强功能及业务需求分析:这一步在升级过程中起着非常关键的作用。在这个过程中,常设委员会(技术架构师、业务所有者和功能所有者)决定哪些特性对于新版本是必不可少的,以及它们如何用于支持业务需求。
2.安装新版本的先决条件:按照前面的流程,基础架构团队确保整个软件都可用于安装及其依赖性也存在。
3.升级产品的安装:在这个过程中,新版本产品的安装将由基础架构工程师完成。
4.配置和性能调优:安装完成后,就可以对新产品进行配置和性能调优了。
5.应用迁移:Tomcat 7配置完成后,升级仍未完成。现在,迁移最繁琐的部分从这里开始,即应用从当前环境迁移到新系统。
笔记
在将应用程序从当前环境迁移到新环境之前,您需要确认应用程序是否支持新版本。如果没有,请确认供应商提供的解决方法是什么。
6.负载和功能测试:应用迁移完成后,您必须对升级后的系统进行负载和功能测试,以便确保应用程序正常运行,并且通过升级过程嵌入的新功能根据业务需求运行。
7. 适应新环境。
Tomcat从6升级到7
到目前为止,我们已经讨论了升级的各种理论过程。现在是享受乐趣的时候了,这是每个管理员在其职业生涯中都想要的。
在这个话题中,我们将讨论本书最期待的话题,那就是Tomcat升级。网络管理员总是希望从以前的主要版本升级到新版本。它还将管理员的观念从日常维护问题转变为架构级集成。如果您参与了产品的升级活动,那么您是组织中第一个从事该产品工作的人,这使您在其他人中具有更好的知名度。但在执行升级之前,让我们讨论一下 Tomcat 7 与 Tomcat 6 相比提供了哪些新功能/更新。以下是这些功能:
小服务程序 3.0
异步支持
动态配置
扩展的 Servlet API
更简单、更快、对开发人员更友好
简化嵌入
改进的日志记录
系统改进
没有更多的内存泄漏
安全改进
现在我们知道了使用 Tomcat 7 的优点是什么,让我们开始从 Tomcat 6 升级到 Tomcat 7。为了启动升级过程,首先想到的是,我们必须在哪个硬件上执行升级?升级基本上有两种方式:
笔记
这种方法的主要优点是您可以在升级期间并行运行当前操作,并且对当前环境没有影响。
我们将采用第二种方法进行升级,因为这是任何 IT 行业中最常用的方法。
Tomcat 7 的先决条件
默认情况下,Tomcat 6 运行在 JDK 1.5 上,而 Tomcat 7 需要 JDK 1.6,因此 Tomcat 7 升级的主要前提是安装 JDK 1.6。在第一章中,Tomcat 7的安装,我们已经讨论了详细的Java安装步骤。因此,我们将继续进行下一个安装步骤。
如果您必须在运行 Tomcat 6 的同一系统上安装 Tomcat 7,那么您一定在想如何设置两个不同的 JAVA_HOME
或 Path?
在这种情况下,您必须使用不同的用户安装 Tomcat,并在用户配置文件中设置 JAVA_HOME
。此外,同一用户应该具有 sudo 访问权限来运行 Tomcat 服务。
安装Tomcat 7进行升级
在系统上完成 JDK 1.6 的安装和配置后,就可以在机器上安装 Tomcat 7 了。执行以下步骤:
1.从Tomcat官网下载最新稳定版, http://tomcat .apache.org/download-70.cgi。下载完成后,将其保存在
/opt
位置。2.解压Tomcat 7源码,即
apache-tomcat-7.0.12.zip
,使用如下命令:3. 解压
apache-tomcat-7.0.12.zip
后,会创建一个名为apache-tomcat-7.0.12
的文件夹opt
目录中的 code>。4。使用以下命令进入
apache-tomcat-7.0.12
的bin
目录:5. 运行以下命令。如果您错过执行以下命令,则在启动服务时 Tomcat 将不会启动。原因是,包带有读/写权限,但没有给包执行权限。我们必须手动更新权限。
笔记
chmod 0755 file
相当于u=rwx (4+2+1),go=rx (4+1 & 4+1) 。
0
没有指定特殊模式。6. 启动 Tomcat 服务并验证 Tomcat 设置。
笔记
如果您在同一台机器上进行安装,则必须更改 Tomcat 7 的默认连接器端口,否则您将收到
Port already in use
异常并且服务不会开始。要更改默认连接器端口,您必须编辑server.xml
。
Tomcat 7的配置
您一定在思考我们是在安装还是升级 Tomcat。阅读本节后,您将了解实际的升级。我们将讨论需要参考 Tomcat 7 完成的各种配置。它还应该执行与 Tomcat 6 相同的功能,并集成新功能。让我们按顺序讨论配置。
JVM 配置
JVM 在 J2EE 容器的性能和维护中起着至关重要的作用。从 Tomcat 6 升级到 Tomcat 7 时,适应旧环境的 JVM 参数并添加新的增强功能是非常重要的要求。在配置 JVM 时,我们必须牢记许多事情。其中一些提到如下:
当前在 Tomcat 6 上运行了多少应用程序
并发用户数
当前配置
从 32 位升级到 64 位
让我们对比一下Tomcat 6和Tomcat 7的默认内存分配。你会发现在内存分配方面没有太多的重大变化。但是,在实践中,当我们升级系统时,与之前的版本相比,我们定义了更多的 JVM 内存。原因是,它既要支持当前的应用程序,又要支持最新版本的增强功能。
上一张截图显示了 Tomcat 6 的内存结构及其组件的内部划分。下图是Tomcat 7的内存分配情况。对比系统,你会发现内存方案的架构并没有太大的区别,但是在实时生产环境中,这个配置因系统而异.
笔记
如果您将系统从 32 位升级到 64 位,那么内存分配将比系统上当前分配的内存多 30%。
在进行升级时,您必须启用与旧版本相同的配置参数,并且您必须对环境启用整个自定义配置。为了为应用程序提供支持,它有助于维护 Tomcat 服务器的性能。下面以Tomcat 6的配置为例,参照Tomcat 7实现,如下代码行所示:
现在,如果您想对 Tomcat 7 进行相同的配置,则必须根据资源的可用性和应用程序要求增加配置,如以下代码行所示:
笔记
内存泄漏问题在 Tomcat 7 中完全解决。如果我们增加 JVM 内存,那么应用程序将更密集地使用内存。此外,这不会在一段时间内对系统造成任何问题,与之前版本的 Tomcat 相比,我们必须定期回收 Tomcat。
数据库连接设置
数据库响应在应用程序性能调优中非常关键。一个微不足道的错误也会对应用程序产生很大的影响。但是,如果您正确地进行配置,它将导致应用程序的性能出现奇迹(我们将看到性能结果超过基准)。让我们比较一下 Tomcat 6 和 Tomcat 7 的数据源配置。以下代码行中突出显示的代码显示了 Tomcat 6 和 7 的配置差异:
Tomcat 6:
Tomcat 7:
Tomcat 6 和 7 连接到不同的 DB 服务器,但它们使用相同的用户名和密码连接到同一个数据库。原因是,在升级时,建议使用数据库的新实例。这种方法的好处是,如果数据库崩溃,那么当前应用程序不会受到影响,您可以并行进行升级。此外,您可以尝试不同的配置参数来提高性能。
笔记
如果是升级环境,建议使用最新的JDBC驱动连接数据库。
应用程序迁移
应用程序迁移是升级生命周期中非常困难和棘手的任务。我们不能直接部署应用程序。一些应用程序与新版本的 Tomcat 7 以及 JDK 1.6 不兼容。在这种情况下,我们必须在新版本中构建和编译应用程序。当涉及到应用程序部署时,这是一个棘手的问题。如果不在 TRACE 或 DEBUG 模式下运行应用程序,我们就无法直接指出错误。如果我们仔细分析应用日志,会发现 Path not found
和 Class not found
等异常。
笔记
对于新版本的应用程序,始终建议检查第三方应用程序 JAR 的兼容矩阵。
以下是应用程序迁移的步骤:
别名配置
在当前环境中,您可能已经配置了许多虚拟主机。但是您不能对应用程序使用相同的 URL,因为它们指向旧环境。要解决此问题,您必须在新的 Tomcat 7 环境中配置虚拟 URL 以进行测试。这将帮助我们执行环境的上线前任务。
将 Tomcat 6 升级到 Tomcat 7 时会遵循前面的过程。
概括
在本章中,我们讨论了从 Tomcat 6 升级到 Tomcat 7 的各种策略以及升级过程中遵循的各个步骤,例如升级的生命周期、Tomcat 7 的升级配置和数据源配置。
下一章,我们将讨论 Tomcat 7 的各种高级配置以及它们在实时 IT 行业中的使用方式,例如虚拟主机、Tomcat 7 的多实例、多应用部署、环境配置等.