tomcat 测试环境多实例配置搭建

简述

实际使用场景中,如果使用tomcat ,在一个测试服务器中会有多个开发团队部署多个java服务,每个服务都有自己的端口。如果是生产环境同一台服务器每个java服务都部署一个tomcat 实例,每个服务都配置自己的 catalina.sh 配置。但是在测试环境中仅用于测试没有个性化配置要求,所以为了维护方便可以统一配置tomcat ,然后每个服务部署自己的应用,也就是说共用一个catalina.home  ,独享自己的catalina.base,但是这种情况也是多实例部署。

具体配置

安装jdk 及tomcat

每个服务部署一个单独的目录,例如 test-pay  test-shop  test-message ,目录结构如下:

ls test-pay
conf  lib  logs  temp  webapps  work

每个服务一个启动和停止脚本,脚本内容如下:

#!/bin/bash
#set env
export JAVA_HOME=/usr/java/jdk1.8.0_65
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CATALINA_HOME=/data/tomcat8              #所有服务此处的catalina.home 都是相同
export CATALINA_BASE=/data/test-pay             #每个服务都有自己的base ,例如test-shop 就是/data/test-shop
$CATALINA_HOME/bin/startup.sh                 #停止脚本此处脚本名为shutdown.sh,其他配置一样

tomcat  启动和停止过程

所有的服务启动脚本调用都是/data/tomcat8/bin/startup.sh , 此脚本调用的是同级目录的catalina.sh ,此脚本中配置了统一的jvm参数等配置,启动的时候会加载服务启动脚本中定义的CATALINA_HOME路径,根据路径加载每个服务的conf目录下的server.xml等配置文件,每个server.xml都定义了自己服务对应的端口默认的appBase,一般默认weapps,所有然后就会解压其下的war包。整个过程启动了三个进程

1 S tomcat 30279 1 0 80 0 - 27064 do_wai Feb21 ? 00:00:00 /bin/sh /data/tomcat/bin/catalina.sh start


4 S root 30280 1 0 80 0 - 1527 pipe_w 09:02 pts/6 00:00:00 /usr/sbin/cronolog /data/qa-instances/logs/catalina.%Y-%m-%d.out


0 S root 30281 30279 0 80 0 - 1181811 futex_ 09:02 pts/6 00:00:34 /usr/java/jdk1.8.0_65/bin/java -Djava.util.logging.config.file=/data/qa-instances/qa-/conf/logging.properties 

 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xms1024m -Xmx1024m -Xloggc:/data/qa-instances/qa-/logs/gc.log -Djdk.tls.ephemeralDHKeySize=2048 

 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dignore.endorsed.dirs= -classpath /data/tomcat8/bin/bootstrap.jar:/data/tomcat8/bin/tomcat-juli.jar 

 -Dcatalina.base=/data/qa-instances/qa-  -Dcatalina.home=/data/tomcat8 -Djava.io.tmpdir=/data/qa-instances/qa-/temp 

 org.apache.catalina.startup.Bootstrap start
View Code

 注意停止脚本也要定义自己的CATALINA_BASE ,这样停止的时候只会停止对应的服务。

原文地址:https://www.cnblogs.com/fanggege/p/12360859.html