APP下载

开源中间件Tomcat高级应用浅谈

2019-07-07温立辉

科技资讯 2019年11期
关键词:中间件部署

温立辉

摘  要:针对开源中间件Tomcat的企业级应用问题,讨论了多节点运行、远程部署等技术,同时论述了中间件节点外部署源码的格式原理、实现方法及其重要的运维管理作用,进一步阐述了内存调优的应用场景与相关核心技术,最后指出中间件Tomcat在Java开源领域举足轻重的地位。中间件Tomcat是Apache基金会下的一个优秀开源产品,其简单、易用、开源的特性深受中小企业及程序员的喜爱,因而其在编程市场占有很大的份额,是Java开源领域的一个重要支柱,随着Tomcat版本的更新升级,其性能、稳定性等方面越来越完善,甚至超出了某些非开源中间件。

关键词:中间件  内存调优  多节点  部署

中图分类号:TP311                                 文献标识码:A                          文章编号:1672-3791(2019)04(b)-0007-02

1  企业级应用技能点

开源中间件Tomcat版本的更新速度非常快,这得益于Apache基金会组织的投入力度及其他开源爱好者的无私奉献。目前该服务器中间件的最新版本已经到达Tomcat9,但目前编程市场上主流的版本是Tomcat6、Tomcat7,版本的每一次向前更新迭代都意味著功能及性能更加向前迈进,不同的版本对运营环境有一定的不同要求。就目前来说,在Java编程界使用Tomcat以传统功能及特性为主,新版本的很多特性还欠缺市场中实践的检验,在实际企业级的应用中除要掌握一般基本操作技能外还要求掌握以下一些深层次应用。

1.1 主页部署

众所周知,http://127.0.0.1:8080为中间件Tomcat的主页,但很多时候,我们需要访问此统一资源定位符(URL)就要把请求转到自己所部署的应用上,这个时候就要考虑把项目部署在Tomcat的主页上。在中间件的要目录下找到webapps目录,此目录为专门用于存放部署在中间件上的应用,进入此目录后可以看到如下资源结构:docs、examples、host-manager、manager、ROOT,这些资源全部为中间件Tomcat自带的应用资源,在这里要特别注意一个叫ROOT的资源,这正是访问官网URL时对应的应用项目,我们自己的应用只要代替资源应用即可,具体操作是删除上面原有所有资源目录,把要部署的应用改名为ROOT,重新访问官网URL即可转跳到我们所部署的应用项目。

1.2 多节点部署

在很多的场景中需要在同一台机器中开启多个Tomcat节点,如:单节点中间件无法满足并发访问的需要,因为每个节点所支持的并发数量有极限点,因而需要同时开启多个中间件节点。如果直接在同一台机器中同时开启,毫无疑问是无法启动的,这是因为开启第一个中间件节点后,相关端口已经被使用,后继要开启的时候已经无法重新取得相关端口的使用权,此时只能修改相关业务端口才能继续开启新的节点。需要在中间件要目下找到conf目录,并进入后并找到server.xml文件,此文件为中间件端口配置文件,在其中找到如下几个端口:

把以上的3个端口值修改为其他数值,再重新开启,可以看到新节点可以正常开启,开启后访问该节点时应用使用新的访问端口。

1.3 远程部署

大家都清楚webapps路径是Tomcat的应用部署目录,我们需要部署应用的时候只需要把要部署应用打好的war包或整个资源目录放在该路径即可,这是最简单、最初级的部署方式,如果程序员在编码过程中需要做单元测试可以按这种方式部署应用,但在实际的运维过程中,几乎不会使用这样的方式去部署项目应用,因为这种部署方式对同一台服务上的其他应用程序存在严重的安全问题。在中间件的实际运维实施过程中,一般使用主页远程部署的方式才更加科学、合理。

在中间件根目录的conf路径下找到tomcat-users.xml,此为Tomcat中间件的用户配置文件,在里面配置好一个可访问用户账号,配置方式如下:

配置好以上配置后重新启动,访问中间件主页并进入部署应用管理页面,可以看到很多已经部署到服务器上的项目,在此页面可以管理相关的应用(启动、停止、反部署、是否热部署、设定会话生存时间),找到“WAR file to deploy”栏,上传已经打好的war文件,即可实现远程部署应用项目。

用此种方式部署应用项目,可实现不需要登录机房服务器的状态把应用部署到远程的服务器上,能够极大地减少服务器上其他应用程序被管理人员以外的其他人员人为破坏的风险,进一步提升服务器运维的安全性。

1.4 中间件外部署

webapps路径作为应用项目的部署目录是一种比较理想状态下的通用做法,在实际服务器运维过程中可能要考虑很多的情况,因此我们更倾向于另一种更成熟的做法,就是把应用程序的代码部署在中间件安装目录以外的地方。考虑这样的一个场景:当同一套应用程序需要部署不同的多个节点上,以提高应用程序的并发处理能力,如果有n个节点,按传统的方式则需要n个中间件节点webapps路径下各部署一套完全一样的代码,当有一天需要升级应用程序的版本包时,则需要把n个节点下的代码都必须完全更新,不能有任何的遗漏,否则会出现版本不一致的问题,按这种传统的方式部署项目就会给日后服务器的运营管理带来极大的不便,增加了运维风险,如果能够把全部节点的运维的应用指向同一套资源代码,那问题就迎刃而解,日后程序版本升级就只需要管理这一套大家共同的代码就可以了,极大地提高服务器运营的效率。

在中间件的安装根目录下创建路径:conf/Catalina/localhost,并在该路径下创建xml文件,以所部署应用程序的URI命名该文件,并按如下的方式配置相关部署参数:

各参数的意义如下:path为应用访问路径,即URI;docBase为部署web应用的源码根目录;workDir为应用程序运行时Jsp文件翻译生成Java文件后的存储路径;reloadable为应用项目是否支持热部署;true表支持,false表示不支持。配置好上面的各项参数后就可以把源码部署在中间件安装目录以外的地方。

1.5 内存调优

中间件内存调优是一项相对深层次且相对复杂的应用,但经常会在中间件运营过程中使用,Tomcat默认情况下只能从操作系统中分配到64M的内存空间,相对较少,很多情况下会不足以支持应用程序的运行,因而需要优化其内在配置。

在内存配置优化前,需要首先认识3个概念:(1)MaxMemory,是JVM能够从操作系统中得到的最大内存数。(2)TotalMemory,是JVM已经从操作系统得到的内存数。(3)FreeMemory,是JVM已经从操盘系统获得而又暂时还没有用上的内存数。

在中间件根目录的bin路径下找到startup.bat、startup.sh文件,在两个文件的开头添加如下一条语句:

set JAVA_OPTS=-Xms512m -Xmx1024m-Xms表示能够从操作系统得到的内存数的初始值(512M);-Xmx表示能够从操作系统得到的内存数的最大值(1024M)。修改好上面的配置后,在Windown系统中通过startup.bat文件启动Tomcat在Linux系统中通过startup.sh启动Tomcat(通过其他方式启动,内在配置将失效),则可在Tomcat的主页上看他到其内存就不再是默认的64M了,而变成修改后的数值。

2  结语

在Java语言开源领域,中间件Tomcat的地位不言而喻,在编程领域中有众多的高级应用,作为一个程序员要重点掌握一些企业级的应用,随着时间的提升还应掌握核心的应用技术。随着Tomcat高版本的发布,功能会更加强大与完善,目前市场上Tomcat7单节点可支持到500左右并发数,已经可以满足企业编程市场中70%以上的需求,随着技术的成熟,待Tomcat8、Tomcat9经过市场实践检验后,能够达到更高的水平。

参考文献

[1] 刘冲,张海玥,张卫东,等.配置Tomcat使Apache服务器支持Java动态网页编程[J].计算机应用,2001(S1):109-110.

[2] 孙仁鹏,何淼.Tomcat性能监视和调优研究[J].软件导刊,2012(12):26-28.

[3] 李萍.浅谈TOMCAT之性能优化[J].科技情报开发与经济,2011(12):114-116.

[4] 怯肇乾.Tomcat应用服务器高并发优化处理[J].电脑编程技巧与维护,2018(2):129-136.

[5] 朱兴亮,李建章.Tomcat安全域的配置及应用[J].中国科技信息,2006(23):127-129.

[6] 余炀,曲毅,孙亦乐.基于Apache Tomcat的一站式Java应用服务器解决方案[J].中国金融电脑,2018(1):59-63.

[7] 吴文刚.中间件Tomcat在等保三級系统中的安全加固[J].山西能源学院学报,2017(4):212-214.

[8] 陈玲.基于nginx、tomcat、redis的高性能Java Web开源架构[J].计算机光盘软件与应用,2014(22):296,298.

猜你喜欢

中间件部署
我国自主可控中间件发展研究
韩暂停部署新增“萨德”系统
韩国宣布暂停部署“萨德”
美空军2017年在横田部署“鱼鹰”
以实力证明 用事实说话
中移动集采:东方通中间件脱颖而出
国产中间件苦尽甘来
基于Web Services的安全中间件的优势及其设计与实现
金蝶 引领中间件2.0新时代