目录结构
bin:可执行文件,包含启动脚本 conf:配置文件 lib:tomcat的依赖库 logs:日志 temp:临时文件 webapp:默认的应用部署目录 work:供web应用使用,tomcat的工作目录,放置tomcat运行中产生的一些文件,如,跑jsp时,翻译出来的servlet一般在这里面。 LICENSE:许可证文件 NOTICE、RELEASE-NOTES、RUNNING.txt: JVM启动参数配置 环境变量JAVA_OPTS -server-Xms512m -Xmx521m 最小堆内存,最大堆内存,一般可以一样大 如:
//在本发起有效export JAVA_OPTS = "-server-Xms2048m -Xmx2048m"//设置一直有效cat ~/.bashrc
//启动-运行bin目录下的对应启动脚本./bin/startup.sh配置文件
重要配置文件 server.xml 结构
![enter description here][enter description here 1] Server 最顶层 Service 一个Server可配置多个Service Connector 一个Service可以有多个Connector 用来接收用户请求。 Engine 一个Service有一个Engine 用于处理Connect接收到的请求,包括平时写的代码也是由其执行。 Host 一个Engine可以有多个Host Host是虚拟主机的概念,即配置域名和ip。 Context 一个Host可有一个或多个Context。 一个Context即一个web应用。
对应组件的实现
Connector
1、Coyote组件,实现了许多不同的Connector 默认BIO Connector 使用传统的 阻塞式的bio的操作的方式,实现方式也是传统的java I/O的实现。 客户端一个链接过来,服务端分配一个线程处理,若请求比较大,时间很久请求头没发完,对应的处理线程就只能一直等待。 2、Container 容器具体执行web应用代码逻辑的部分。 具体实现:Catalina tomcat中实现容器的组件,最终都是由Catalina中的代码执行的。
请求处理流程
![enter description here][enter description here 1]
java_tomcat_request01
参数配置
Connector
port address 监听网络请求时到哪个地址,一般会有多个ip,若不配置,会在所有地址上监听。 protocol 协议,默认htpp1.1,调优可能会调整更高的。 connectionTimeout 多长时间不发请求则断开,即连接超时时间 acceptCount 排队队列最大值。超过后,超出的会被拒绝处理,即不再处理后面的。 maxConnections 最大连接数。超过后值会接收但不处理。设置-1表示不设置连接数。 minSpareThreads 最小空闲线程数 maxThreads 最大线程数 Executor 线程池 事先创建一定数目的线程,当有任务时,从池中取出用完后再放回池中。 minSpareThreads 最小空闲线程数 maxThreads 最大线程数 当Connector同时配置依赖Executor和minSpareThreads/maxThreads,优先Executor。
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4"/> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" executor="tomcatThreadPool" redirectPort="8443" />Tomcat日志
作用
Tomca运行情况获知 调试利器
分类
系统运行日志:运行信息与状态 访问日志:记录请求访问 应用日志:应用程序打印日志 访问日志: 配置文件 server.xml
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> directory <日志目录>日志目录> prefix:日志名前缀 suffix:日志名后缀 pattern:日志格式 请求方式(get/post等):method: %m 客户端ip
优化相关
Tomcat学习总结(3)——Tomcat优化详细教程 闲谈Tomcat性能优化 如何优化tomcat配置(从内存、并发、缓存4个方面)优化
[enter description here 1]:
评论