• 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 中当前所有线程的运行情况和线程当前状态。

  • 相关阅读:
    Hive 解析 JSON 字符串数据的实现方式
    星际争霸之小霸王之小蜜蜂(十四)--资本家的眼泪
    C++(第六篇):模板详解(函数模板、类模板、非类型模板参数、模板特化、模板分离编译问题及一些题目)
    Linux 进程间通信(IPC)详解:匿名管道、命名管道与共享内存
    FPGA数字电子技术复习笔记(二)COMS、NMOS、PMOS
    目标跟踪算法(bytetrack)-tensorrt部署教程
    egg(二十):fs读取本地的txt文件
    1.计算机组成与体系结构
    MySQL - 深入解析MySQL索引数据结构
    MyBatis04(关联关系映射)
  • 原文地址:https://blog.csdn.net/weixin_61428407/article/details/133660682