zoukankan      html  css  js  c++  java
  • tomcat 的自问自答与总结


    在查看了官方文档和做了多次试验,我觉得应该给自己提几个问题,看看我是不是真正的理解,我是不是对之前疑惑的东西有了答案。

    1 tomcat 的加载问题,启动后更新是否自动加载

    1. server.xml 文件更改必须重启才能生效
    2. 在Host 定义的appBase 目录中的war包会自动加载
    3. 在Host 定义的appBase 目录中的war包如果发生更改会自动重新加载
    4. tomcat 在解压war包后,会自动向解压war包的目录添加META-INF/war-tracker 文件,用于记录在tomcat未运行的时候war包(不是解压后的文件)是否发生改变.如果改变,tomcat在启动会重新发布。这里引申一点,如果是解压后的文件目录发生改变了,是否会重新加载? 这里取决于reloadable,该参数会监测/WEB-INF/classes/和/WEB-INF/lib的文件是否发生改变,但是开启该参数会导致性能降低。
    状态 文件状态 说明
    tomcat运行中 war包更新 自动重新加载
    tomcat运行中 war包不更新,文件内容更新 如果是静态文件更改,访问可以立即获取最新的信息,如果是一些lib文件或者是class文件更新的话,需要关注参数reloadable,该参数会监测/WEB-INF/classes/和/WEB-INF/lib的文件是否发生改变,但是开启该参数会导致性能降低。
    tomcat关闭中 war包更新 war-tracker记录war包是否更新,更新了的话启动时重新部署
    tomcat关闭中 war包不更新,文件内容更新 启动会自动加载最新的文件内容。

    2 tomcat 的context.xml 文件读取顺序与覆盖原则

    tomcat 有三个可以读取Context 配置的位置。

    1. server.xml 里面的 Host 配置下的Context.
    2. conf///.xml
    3. webapps//META-INF/context.xml

    读取顺序 2 --->1--->3 后面的配置覆盖前面的配置

    3 就是 建议的tomcat 配置

    示例配置,这个配置需要根据自己的业务情况来进行配置。很多属性默认已经设置好了

    
     <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" 
    			   acceptCount="300" 
    			   acceptorThreadCount="2"
    			   compression="on" 
    			   keepAliveTimeout="25000" 
    			   maxConnections="5000" 
    			   maxThreads="400" 
    			   minSpareThreads="25"
    			   />
    
    

    4 避免二次部署加载的问题

    定义 Context 元素的docBase的属性的值(路径)不要是Host 元素的 appBase 的路径的子目录,也就是如果Host 定义的路径包含 Context元素定义的路径,这样就会引起二次部署。

    解决办法:

    1. 我们可以通过Host 的属性deployIgnore 来精确匹配。避免二次部署。
    2. 通过避免Host定义的路径包含Context 的路径,如果我们将项目已经存放在Host 定于的路径,那么我们可以无需再定义一次Context .

    如果文章有写的不足的地方,或者是写得错误的地方,请你一定要指出,因为这样不光是对我写文章的一种促进,也是一份对后面看此文章的人的责任。

  • 相关阅读:
    REUSE_ALV_GRID_DISPLAY_LVC I_CALLBACK_HTML_TOP_OF_PAGE
    查找数组中最大值java
    jvm 调优
    jvm 内存
    树形遍历文件夹
    程序创建一个ArrayList,添加1到10的10个随机数,删除大于5的数 java
    字符串反序排序 并带有空格输出 java
    摆动排序
    免密登陆
    springboot UEditor集成
  • 原文地址:https://www.cnblogs.com/operationhome/p/10455491.html
Copyright © 2011-2022 走看看