• Tomcat 多实例


    一、Tomcat 多实例

    1、概念:

    Tomcat 多实例是指在同一台服务器上运行多个独立的 Tomcat 服务器实例。它们可以同时运行在同一台物理服务器或虚拟服务器上,但它们彼此之间是相互独立的,有各自的配置、应用程序和资源。

    2、配置:

    (1) 关闭 Tomcat:

    bash /usr/local/tomcat/bin/shutdown.sh

    配置Tomcat之前关闭主站的主要原因是为了确保配置更改能够正确生效且不会引发问题。

    (2) 准备多实例目录:

    ① 创建目录:

    mkdir  /usr/local/tomcat/instance{1..3}

    ② 将 /usr/local/tomcat/ 目录下的 conf、logs、temp 和 work 这四个子目录及其内容复制到实例目录中:

    cp  -r  /usr/local/tomcat/{conf,logs,temp,work}  /usr/local/tomcat/instance1/

    cp  -r  /usr/local/tomcat/{conf,logs,temp,work}  /usr/local/tomcat/instance2/

    cp  -r  /usr/local/tomcat/{conf,logs,temp,work}  /usr/local/tomcat/instance3/

    (3) 修改端口

    Tomcat 多实例的配置中,修改端口是为了确保每个 Tomcat 实例在同一台服务器上运行时能够使用不同的网络端口,避免端口冲突,同时可以将这些不同的实例隔离开。

    ① 修改实例1的端口配置:

    vim /usr/local/tomcat/instance1/conf/server.xml

    ● 修改服务端口:8080 → 8081

    ● 修改程序端口:8005 → 8091

    ● 修改网站目录:

    appBase:定义了虚拟主机将从哪个目录加载部署的Web应用程序。

    ② 修改实例2的端口配置:

    将实例1的web配置文件拷贝给实例2:

    cp  /usr/local/tomcat/instance1/conf/server.xml  /usr/local/tomcat/instance2/conf/

    ● 修改服务端口:8081 → 8082

    ● 修改程序端口:8091 → 8092

    示例2与示例3的网站主目录也是 /webapps

    ③ 修改示例3的端口配置:

    将实例1的web配置文件拷贝给实例3:

    cp  /usr/local/tomcat/instance1/conf/server.xml  /usr/local/tomcat/instance3/conf/

    服务端口:8081 → 8083 ;程序端口:8091 → 8093

    (4) 编写启动脚本:

    ① 编写实例1的脚本:
    1. #!/bin/bash
    2. #instance1
    3. . /etc/init.d/functions
    4. export CATALINA_BASE="/usr/local/tomcat/instance1"
    5. case "$1" in
    6. start)
    7. $CATALINA_HOME/bin/startup.sh
    8. ;;
    9. stop)
    10. $CATALINA_HOME/bin/shutdown.sh
    11. ;;
    12. restart)
    13. $CATALINA_HOME/bin/shutdown.sh
    14. sleep 5
    15. $CATALINA_HOME/bin/startup.sh
    16. ;;
    17. esac
    18. export JAVA_OPTS='-Xms64m -Xmx128m'

    ② 将实例1的启动脚本拷贝给实例2、3:

    cp  /usr/local/tomcat/instance1/ins1.sh  /usr/local/tomcat/instance2/ins2.sh

    cp  /usr/local/tomcat/instance1/ins1.sh  /usr/local/tomcat/instance3/ins3.sh

    拷贝后记得修改对应的 CATALINA_BASE 路径:

    ③ 给脚本授权:

    chmod  +x  /usr/local/tomcat/instance1/ins1.sh  /usr/local/tomcat/instance2/ins2.sh  /usr/local/tomcat/instance3/ins3.sh

    (5) 准备网站源码:

    mkdir  /webapps/

    cp  -r  /usr/local/tomcat/webapps/ROOT/  /webapps/

    (6) 启动脚本并测试:

    /usr/local/tomcat/instance1/ins1.sh  start

    /usr/local/tomcat/instance2/ins2.sh  start

    /usr/local/tomcat/instance3/ins3.sh  start

    二、JVM 常用分析工具

    1、jps

    jps(Java Virtual Machine Process Status Tool)是Java开发工具包(JDK)提供的一个命令行工具,jps 通常用于查看和管理Java应用程序的运行时进程。

    语法:

    jps:列出正在运行的Java进程的PID和主类名。

    jps -l:列出正在运行的Java进程的PID和完整的主类名(包括包路径)。

    jps -m:除了PID和主类名外,还显示传递给main方法的参数。

    jps -v:显示传递给java命令的所有JVM参数。

    jps -q:只显示PID,不显示主类名或参数。

    2、jinfo

    jinfo 是Java Development Kit(JDK)提供的一个命令行工具,用于查看和修改正在运行的Java进程的Java虚拟机(JVM)配置参数。

    3、jstack

    jstack 是Java Development Kit(JDK)提供的一个命令行工具,用来观察 jvm 中当前所有线程的运行情况和线程当前状态。

  • 相关阅读:
    后台可视化布局打印设计
    力扣:71. 简化路径
    linux系统java环境变量的下载与安装
    keepalived 主备都存在vip, keepalived主备跨网段配置;keepalived主备服务器不在同一个网段怎么配置
    java计算机毕业设计医院临床管理系统录屏源程序+mysql+系统+lw文档+远程调试
    idea和maven常见问题
    Docker搭建ELK日志采集服务及Kibana可视化图表展示
    汇编语言(Assembly Language)简介
    websocket拦截
    【docker】docker安装与优化
  • 原文地址:https://blog.csdn.net/weixin_61428407/article/details/133660682