前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tomcat单机多实例部署

Tomcat单机多实例部署

作者头像
Ant丶
发布2022-03-01 19:34:20
4320
发布2022-03-01 19:34:20
举报
文章被收录于专栏:cayzlhcayzlh

Tomcat单机多实例部署

前言

单机多实例部署tomcat, 可以充分利用系统资源, 周期性地更新Tomcat,使用最新版的Tomcat, 统一管理,让Tomcat版本统一, 实例的配置统一.

本文介绍Linux下Tomcat单机多实例的部署步骤.

实现四路

1、Tomcat运行时,系统会从conf及webapps目录中读取配置文件,并且写入logs、temp和work目录中 2、一些jar文件和class文件需要从公共目录例如lib/中加载,只需要加载一次就可以。 3、为了多个实例能同时运行,每一个Tomcat实例必须有自己的目录集

传统实现方式:简单的复制出一个新的Tomcat目录后改一下端口

缺点: 1、资源浪费,公用资源被多次加载,造成在内存中不必要的重用 2、针对不同web服务做配置能做但是异常麻烦 3、对Tomcat进行版本升级时能做但是异常麻烦,每个目录都需要替换,不必要的大量工作

实现步骤

下载并解压安装包到目录
代码语言:javascript
复制
cd /usr/local/path/tomcat
编辑 /etc/profile 文件
代码语言:javascript
复制
sudo vi /etc/profile
添加Tomcat
代码语言:javascript
复制
export CATALINA_HOME=/usr/local/path/tomcat/apache-tomcat-7.0.85

以上代码添加到profile

将在 /data/service/中创建两个实例文件夹
代码语言:javascript
复制
cd /data/service
mkdir tomcat1
mkdir tomcat2
tomcat的配置文件复制到实例文件夹内
代码语言:javascript
复制
cd tomcat1/
cp -a /usr/local/path/tomcat/* ./
rm -rf lib/ bin/

cd ..
cp -a tomcat1/* tomcat2/

cd /usr/local/path/tomcat
rm -rf work/ webapps/ logs/ conf/
此时

/usr/local/path/tomcat 内剩下文件为: bin/, lib/; 两个实例文件夹中剩下的文件为; work/ webapps/ logs/ conf/

创建运行脚本
代码语言:javascript
复制
cd /data/service/tomcat1
mkdir bin
cd bin/
touch startup.sh
touch shutdown.sh
编辑startup.shshutdown.sh

startup.sh :

代码语言:javascript
复制
#!/bin/bash

export CATALINA_BASE=/data/service/tomcat1

echo $CATALINA_BASE

TOMCAT_ID=`ps aux |grep "java"|grep "Dcatalina.base=$CATALINA_BASE "|grep -v "grep"|awk '{ print $2}'`

if [ -n "$TOMCAT_ID" ] ; then
echo "tomcat(${TOMCAT_ITOMCAT_ID}) still running now , please shutdown it firest";
    exit 2;
fi

TOMCAT_START_LOG=`$CATALINA_HOME/bin/startup.sh`


if [ "$?" = "0" ]; then
    echo "$0 ${1%/} start succeed"
else
    echo "$0 ${1%/} start failed"
    echo $TOMCAT_START_LOG
fi

shutdown.sh :

代码语言:javascript
复制
rt CATALINA_BASE=/data/service/tomcat-1

echo $CATALINA_BASE

TOMCAT_ID=`ps aux |grep "java"|grep "[D]catalina.base=$CATALINA_BASE "|awk '{ print $2}'`

if [ -n "$TOMCAT_ID" ] ; then
TOMCAT_STOP_LOG=`$CATALINA_HOME/bin/shutdown.sh`
else
    echo "Tomcat instance not found : ${1%/}"
    exit

fi


if [ "$?" = "0" ]; then
    echo "$0 ${1%/} stop succeed"
else
    echo "$0 ${1%/} stop failed"
    echo $TOMCAT_STOP_LOG
fi

至此, 单机多实例的tomcat已经基本上配置好了.

运行:

代码语言:javascript
复制
/data/service/tomcat1/bin/startup.sh

即可.

当然, 要运行两个以上实例的话, 还得配置 server.xml, 这里就不讨论了.

两个tomcat实例运行起来之后, 可以看到2个tomcat实例的PID是不同的,也就是说对某个实例进行操作是不会影响到另外一个实例的.

分享计划

博客内容将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/

许可协议

本文采用 署名-非商业性使用-相同方式共享 4.0 国际 许可协议,转载请注明出处。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Tomcat单机多实例部署
    • 前言
      • 实现四路
        • 传统实现方式:简单的复制出一个新的Tomcat目录后改一下端口
          • 实现步骤
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档