• Tomcat多实例


    最近在研究Apache+Tomcat+负载均衡/集群的过程中,发现了一篇好的在单机上部署多个tomcat实例的blog。

    感受:关于Apache+Tomcat+负载均衡/集群,国内关于这方面的资料是挺多,但不知道是我搜索的问题还是国内的资料参差不齐,没有几个是全面并且精准的。经过不懈的尝试,还是外来的和尚会念经,而且质量很高(-:

    单机多tomcat实例:

    http://www.ramkitech.com/2011/07/running-multiple-tomcat-instances-on.html

    再讲些有用没用的,其实类似这样单机上部署多个tomcat实例,只要对源码有所了解就可以自己动手配置实现(比如说我这样低水平的,花些时间看看startup脚本就知道配置的道理了),所以更多时候,我们静不下心来去认真研究,单纯的求快,碰巧work了就万事大吉了。可能这也是我们总是跟在美国后面的原因吧。

    废话少说,我用的环境,Win7(没有管理员权限)+ apache-tomcat-7.0.54.zip

    知识准备:

    1. JDK和JRE环境提前准备好,这个肯定是必须的前提;

    2. Tomcat的启动需要设置CATALINA_HOME和CATALINA_BASE。CATALINA_HOME将用来访问bin和lib;CATALINA_BASE将用来访问conf,webapps,logs,temp,work;

    3. CATALINA_BASE若不指定,则默认为CATALINA_HOME

    开始部署多个tomcat实例

    1. 解压apache-tomcat-7.0.54.zip到某文件目录,解压后的目录作为CATALINA_HOME指向的目录;

    2. 在同级目录下建立多个tomcat的实例,结构类似如下(我用了Application的名字命名的,这都无所谓了);

      

    3. 拿其中一个实例Lego来说,将apache-tomcat-7.0.54目录下的conf,logs,temp,webapps(work目录在tomcat启动时会自动创建)拷到Lego实例下

      

    4. 下面修改conf下的配置文件server.xml,而且只需要修改shutdown, connector, ajp三个端口号。为了防止以后忘了端口号,我把这些端口号记录在README.txt中。

    5. 如上图所示,在Lego目录下,编写start和shutdown脚本。

    startup-lego.bat

     

    shutdown-lego.bat

     

    6. 别忘了把自己的application放在webapps下;

    7. 运行start和shutdown脚本,测试。

    --- 到此,一个tomcat实例Lego部署完成;照此方法可以部署其他的tomcat实例,但注意三个端口号不能冲突。

    然后想到个问题:单机下这样部署多个tomcat实例有什么用呢?

      答:拿我的经历为例,之前是将所有的application放在webapps目录下,导致所有application共用一套配置,一起start,一起shutdown;但很多时候,我只想让其中的某个application shutdown掉。之前的解决办法简单粗暴,多弄几个tomcat,每个tomcat的webapps下放一个application,然后再配置不同的端口号。但这样弄,明显觉得application过重了,而且需要维护多套tomcat。

    刚刚发现application的log生成位置不对,还是生成在apache-tomcat-7.0.54的logs目录下。这应该是application中log4j配置的问题。

    经检查发现,log4j.appender.R.File =${catalina.home}/logs/lego.log,修改成log4j.appender.R.File =${catalina.base}/logs/lego.log解决!

    Done!

    清醒时做事,糊涂时读书,大怒时睡觉,独处时思考; 做一个幸福的人,读书,旅行,努力工作,关心身体和心情,成为最好的自己 -- 共勉
  • 相关阅读:
    Spring源码阅读BeanFactory体系结构分析 coder
    Spring源码阅读IoC容器解析 coder
    Spring源码阅读ApplicationContext体系结构分析 coder
    【学习笔记】卷积神经网络 coder
    Spring源码阅读环境搭建 coder
    【学习笔记】分布式Tensorflow coder
    【spring实战第五版遇到的坑】3.1中的例子报错 coder
    阿里云服务器磁盘空间不足解决办法
    Tomcat配置https SSL证书
    mybatis:Creating a new SqlSession Closing non transactional SqlSession
  • 原文地址:https://www.cnblogs.com/hello-yz/p/5756957.html
Copyright © 2020-2023  润新知