Java笔记··By/蜜汁炒酸奶

tomcat基础小结

目录结构

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
1
2
3
4
5
6
7

配置文件

重要配置文件 server.xml 结构 enter description here ![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" />
1
2
3
4
5
6

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" />
1
2
3

directory :日志目录 prefix:日志名前缀 suffix:日志名后缀 pattern:日志格式 请求方式(get/post等):method: %m 客户端ip:client ip:%a 请求时刻:time:%t 用户响应码: status:%s 服务端下发字节数: byteSent: %b User-Agent:%{User-Agent}i 日志切割 fileDateFormat=“yyyy-MM-dd.” --时戳格式 rotatable = “true” --是否开启日志滚动

优化相关

[Tomcat学习总结(3)——Tomcat优化详细教程][Tomcat_3_Tomcat] [闲谈Tomcat性能优化][Tomcat] [如何优化tomcat配置(从内存、并发、缓存4个方面)优化][tomcat_4]

[enter description here 1]:
[Tomcat_3_Tomcat]: http://blog.csdn.net/u012562943/article/details/51441157
[Tomcat]: http://www.cnblogs.com/zhuawang/p/5213192.html
[tomcat_4]: http://blog.csdn.net/centre10/article/details/50639693

预览
Loading comments...
0 条评论

暂无数据

example
预览