tomcat ﹏ヽ暗。殇╰゛Y 2022-03-16 07:51 111阅读 0赞 ## tomcat结构 ## **模块组成结构** Tomcat的核心组件就Connector和Container,一个Connector+一个Container(Engine)构成一个Service,Service就是对外提供服务的组件,有了Service组件Tomcat就能对外提供服务了,但是光有服务还不行,还需要有环境让你提供服务才行,所以最外层的Server就是为Service提供了生存的土壤。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pbmd3dWxpcG8_size_16_color_FFFFFF_t_70] Connector是一个连接器,主要负责接受请求并把请求交给Container,Container就是一个容器,主要装的是具有处理请求的组件。Service主要是为了关联Container与Connect,只有两个结合起来才能够处理一个请求。Server负责管理Service集合,从图中我们可以看到Tomcat可以提供多种服务,那么这些Service就是由Server来管理的。具体工作包括:对外提供一个接口访问Service,对内维护Service集合,维护Service集合包括管理Service声明周期等等。 **文档结构组成** <!-- Server代表整个容器,是Tomcat的顶层元素。服务器默认在8005端口,shutdown命令=关闭Tomcat --> <Server> <Listener /> <GlobaNamingResources> </GlobaNamingResources> <!-- Service包含多个Connector元素,而这些Connector元素共享一个Engine元素。 --> <Service> <!-- Connector元素代表与客户时间交互的组件,它负责接收客户的请求,已经向客户响应结果, 配置http为https主要是修改Connector --> <Connector /> <!-- 每个Service只能有一个Engine元素,处理同一个Service中所有Connector元素接收到的客户请求. Engine用来处理Connetcor收到的Http请求它匹配请求和自己的虚拟主机,并把请求转给对应的Host来处理 --> <Engine> <Logger /> <Realm /> <!-- 一个Engine包含多个host元素,每个host元素定义了一个虚拟主机,它包含一个或多个Web应用 --> <host> <Logger /> <!-- 由Context接口定义.是使用最频繁的元素,对应于一个Web App --> <Context /> </host> </Engine> </Service> </Server> ## 类加载器流程 ## 1)Bootstrap 引导类加载器:加载JVM启动所需的类,以及标准扩展类(位于jar/lib/ext上) 2)、System 系统类加载器:加载Tomcat启动时的类,比如bootstrap.jar通常在catalina.bat或者catalina.sh中指定。指定位置位于CATALINA_HOME/bin下。 3)、Common 通用类加载器:加载tomcat使用以及应用通用的一些类,位于CATALINA_HOME/lib下,比如servlet-api.jar 4)、webapp应用类加载器:每个应用在创建后,都会创建一个唯一的类加载器。该类加载器会加载位于WEB-INF/lib下的jar文件中的class和WEB-INF/classes下的class文件。 顺序进行类加载。 ①、使用bootstrap引导类加载器加载 ②、使用system系统类加载器加载 ③、使用应用类加载器在WEB-INF/classes中加载 ④、使用应用类加载器在WEB-INF/lib中加载 ⑤、使用common类加载器在CATALINA\_HOME/lib中加载 ## 四种线程模型 ## ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pbmd3dWxpcG8_size_16_color_FFFFFF_t_70 1] ## tomcat如何调优,涉及哪些参数 ## 1)、Tomcat启动参数的优化:Tomcat 的启动参数位于tomcat的安装目录\\bin目录下,如果你是Linux操作系统就是catalina.sh文件,如果你是Windows操作系统那么你需要改动的就是catalina.bat文件。 export JAVA_OPTS="-server -Xms1400M -Xmx1400M -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=128M -XX:MaxPermSize=256M -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true " 2)、Tomcat容器内优化:打开tomcat安装目录\\conf\\server.xml文件。 其中如下参数的默认值远远不够我们使用,我们对其进行了更改,更改后的配置如下: <Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" connectionTimeout="20000" acceptCount="300" maxThreads="300" maxProcessors="1000" minProcessors="5" useURIValidationHack="false" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" redirectPort="8443" /> ▶ URIEncoding=”UTF-8”:使得tomcat可以解析含有中文名的文件的url。 ▶ minSpareThreads:最小备用线程数,tomcat启动时的初始化的线程数。 ▶ maxSpareThreads:如果空闲状态的线程数多于设置的数目,则将这些线程中止,减少这个池中的线程总数。 ▶ connectionTimeout:网络连接超时时间毫秒数。 ▶ maxThreads:Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数,即最大并发数。 ▶ acceptCount:当线程数达到maxThreads后,后续请求会被放入一个等待队列,这个acceptCount是这个队列的大小,如果这个队列也满了,就直接refuse connection。 ▶ maxProcessors与minProcessors:在 Java中线程是程序运行时的路径,是在一个程序中与其它控制线程无关的、能够独立运行的代码段。它们共享相同的地址空间。多线程帮助程序员写出CPU最大利用率的高效程序,使空闲时间保持最低,从而接受更多的请求。 通常Windows是1000个左右,Linux是2000个左右。 ▶ useURIValidationHack:设成"false",可以减少它对一些url的不必要的检查从而减省开销。 ▶ enableLookups:设置为"false",主要为了消除DNS查询对性能的影响我们可以关闭DNS查询,方式是修改server.xml文件中的enableLookups参数值 ▶ disableUploadTimeout:允许Servlet容器,正在执行使用一个较长的连接超时值,以使Servlet有较长的时间来完成它的执行,默认值为false ▶ 给Tomcat配置gzip压缩(HTTP压缩)功能:HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML、CSS、Javascript、Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP、JSP、ASP、 Servlet、SHTML等输出的网页也能进行压缩,压缩效率惊人。 1)、compression=“on” 打开压缩功能 2)、compressionMinSize=“2048” 启用压缩的输出内容大小,这里面默认为2KB 3)、noCompressionUserAgents=“gozilla, traviata” 对于以下的浏览器,不启用压缩 4)、compressableMimeType=“text/html,text/xml” 压缩类型 ▶ redirectPort: 如果我们走https协议的话,我们将会用到8443端口这个段的配置。 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pbmd3dWxpcG8_size_16_color_FFFFFF_t_70]: /images/20220316/c6d0fd8e8cfa4046b007b49a7c358de2.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pbmd3dWxpcG8_size_16_color_FFFFFF_t_70 1]: /images/20220316/c1752639c3c74a81a0e199743c57fc6c.png
相关 tomcat 1. c/s: 客户端和服务端 : 例如QQ; 安全, 升级比较麻烦 b/s: 浏览器和服务端: 只需要编写服务端; 不安全 2. web资源介绍: 灰太狼/ 2022年06月14日 08:49/ 0 赞/ 58 阅读
相关 tomcat Tomcat 1.概述 通过上面的讲解大家对JSP与Servlet已经有所理解,最起码知道它们是做什么的,说到底它们都是程序设计语言,是帮助我们更好的编写程序。大家都知 缺乏、安全感/ 2022年06月11日 07:55/ 0 赞/ 386 阅读
相关 Tomcat Tomcat简介 WEB服务器与应用服务器的概念 WEB服务器:专门处理HTTP请求,提供WEB信息浏览服务。 应用服务器:可解析运行后台代码,为应用 客官°小女子只卖身不卖艺/ 2022年06月07日 03:07/ 0 赞/ 249 阅读
相关 Tomcat 1.基本调优 bin/catalina.sh 加一行 JAVA\_OPTS='-Xms128m -Xmx512m -XX:PermSize=128m' 2.设置脚本开机启 r囧r小猫/ 2022年05月31日 22:48/ 0 赞/ 190 阅读
相关 tomcat 一、安装Tomcat5.5.20 1、下载安装包 <table> <tbody> <tr> <td><span><strong>代码:</stro 一时失言乱红尘/ 2022年05月11日 12:16/ 0 赞/ 105 阅读
相关 tomcat 前文: 对tomcat的构的初步解析 一、web服务器 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_te 偏执的太偏执、/ 2022年03月19日 16:58/ 0 赞/ 67 阅读
相关 tomcat tomcat结构 模块组成结构 Tomcat的核心组件就Connector和Container,一个Connector+一个Container(Engine)构成一个 ﹏ヽ暗。殇╰゛Y/ 2022年03月16日 07:51/ 0 赞/ 112 阅读
相关 Tomcat [Tomcat][] Tomcat运行在JVM之上,它和HTTP服务器一样,绑定IP地址并监听TCP端口,同时还包含以下指责: 1. 管理Servlet程序的生命周期 左手的ㄟ右手/ 2022年01月28日 13:21/ 0 赞/ 150 阅读
相关 Tomcat tomcat目录层次结构 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6L 我会带着你远行/ 2021年11月17日 09:02/ 0 赞/ 209 阅读
相关 Tomcat Tomcat文件目录 |-bin: 存放tomcat的命令。 |- conf: 存放tomcat的配置信息。其中server.xml文件是核心的配置文件。 ゝ一世哀愁。/ 2021年09月11日 05:40/ 0 赞/ 302 阅读
还没有评论,来说两句吧...