Tomcat多实例部署

 前言

一般我们使用tomcat时,如果是多实例的情况都会拷贝多个tomcat,但实际上tomcat还可以建立类似于weblogicdomain,以实现多实例部署。

Weblogic多实例部署回顾

tomcat多实例部署前我们先回顾一下weblogic的多实例。以weblogic10为例,安装完weblogic后,会在c:\bea10生成weblogicHome目录,里面放置的是jdkweblogic的管理目录等:

                              Tomcat多实例部署_第1张图片

使用的时候我们会建立一个独立的domain,可以放置到任何目录。每个独立的domain包含自己的bin目录,在bin目录中启动domain时会设置两个环境变量,一个是weblogic home的位置,一个是domain的位置,如下:

setDomainEnv.cmd中设置的是weblogichome的位置

 Tomcat多实例部署_第2张图片

startWebLogic.cmd中设置的是domain的位置

 Tomcat多实例部署_第3张图片

Weblogic建立domain时,通过自动设置了这两个参数,使得安装一个weblogic可以自动创建多个domain,并分别启动(每个domain应该设置不同的端口)。

Tomcat多实例实现

各种应用服务器的思路其实大同小异,下面看tomcat的多实例部署。以下我把tomcat的实例称作instance。并通过tomcat7进行讲解(tomcat5的文件夹略有不同)。总的结构如下:

 Tomcat多实例部署_第4张图片

首先,我们建立tomcat主目录,如下:

          Tomcat多实例部署_第5张图片

对于tomcat主目录,从apache上下载解压以后,删除复制出来binlib和根目录的文件几个。

然后,我们建立instance。如下我在tomcat目录建立了一个主目录,然后创建了nstc-instances用于放置各种实例:

 Tomcat多实例部署_第6张图片

 Tomcat多实例部署_第7张图片

而对于每个实例,其实需要的内容也很少,必须的是conf文件夹和里面的文件。Logstempwork创建实例时可以不设置(实例启动时会自动生成),而对于webapps目录可以在conf的文件中指定。最完整的实例如下:

 Tomcat多实例部署_第8张图片

Startup.bat是我手动创建的

 Tomcat多实例部署_第9张图片

对于tomcat也存在两个变量CATALINA_HOMECATALINA_BASE,其中CATALINA_HOME指定的是tomcat主目录,CATALINA_BASE指定的是instance的目录,因为CATALINA_BASE默认和主目录相同,所以一般不用单独建立instance。如上图设置了实例的目录,然后因为导航到了tomcat主目录启动,所以不需要单独设置CATALINA_HOME了。

实际使用时webapps也可以单独设置,例如在conf\Catalina\localhost\WST.xml文件中,可以指定应用的目录就是程序编译后的目录,这样程序编译后就不用再拷贝到webapps中了。

 

最后,注意每个实例需要设置不同的端口。

结尾

至此,我们非常快速的了解了如果对tomcat建立多个instance,同时我们也了解到了其实tomcat的主目录只需要binlib文件夹中的内容就可以了。

通过对tomcat的了解,未来可以在产品中嵌入tomcat(不是使用tomcat的嵌入模式),让应用变成自启动程序。也可以通过程序控制建立多个tomcat实例。


你可能感兴趣的:(Tomcat多实例部署)