tomcat多实例配置

有一台server上跑个tomcat的实例的情况,我遇到过这种情况,毕竟把多个应用部署到一个实例中,如果某个应用出了问题,导致tomcat奔溃,其他应用也gg了。闲话到此。


通常部署多实例就是解压多个tomcat的包,然后保证不同实例所涉及的端口不一致就好了。另外的方法是共用tomcat的bin和lib进行多个实例的部署,下面是示范动作:

  1. 下载tomcat的zip版本,解压到D盘,到conf目录把setclasspath.bat前加上“set JAVA_HOME=jdk目录”(不要带引号)
  2. 进入tomcat所在的目录并新建实例目录,加速为x-instance,把除了bin和lib目录的所有内容全部移动到x-instance目录,复制x-instance到当前目录多份,重命名为y-instance、z-instance,此时就有三个实例了。
  3. 修改y实例下的server.xml配置文件的三个端口号,我是在之前基础上加一
  4. 修改z实例下的server.xml配置文件的三个端口好,我是在之前基础上加二
  5. 为x、y、z实例分别创建启动脚本
  6. 打完收工

启动脚本:

# windows版本,linu版本原理相同
# 存放位置在实例的目录内

@echo off
@echo 删除缓存
rmdir /S /Q %CD%/work

rem------------------------------------------------------------------------------------------
rem set the CATALINA_OPTS & JAVA_OPTS
rem set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=200m -XX:MaxPermSize=200m
rem
rem-------------------------------------------------------------------------------------------

SET CATALINA_BASE=%CD%

cd ../bin

set title=实例名称

catalina.bat start



关闭脚本:

# 这里用到了sed和awk工具需要自己到网上找windows版本的,比较好找。
# 对应位置需要修改。

@echo off
rem ----------------------------------------------------------------

set tomcatport=8080
set appinfo=测试服务

rem -----------------------------------------------------------------

netstat -ano | findstr %tomcatport% | gawk "{ print $5 } " > command.tmp


findstr [0-9] command.tmp > tmp.tmp


if   %errorlevel% == 1 goto done

	sed -e "s/.*/taskkill \/f \/pid  &/" command.tmp | sed -n "w b.bat"
	call b.bat
	echo 当前已经关闭了端口为%tomcatport%的tomcat服务
	echo 被关闭的应用为:%appinfo%
	goto done

:done
	del /f command.tmp
	if exist b.bat del /f b.bat
         if exist tmp.tmp del /f tmp.tmp
	echo 当已经没有端口为%tomcatport%的tomcat服务在运行。
	echo by:luohaonan 


pause


实例的目录的截图:

三个实例运行的截图:

关闭服务脚本运行的截图:

posted on 2017-09-08 13:34  blbl9527  阅读(104)  评论(0编辑  收藏  举报

导航


github sina微博 FB