其实我们要对Tomcat进行调优,肯定是要先了解Tomcat的内部结构,知道了它的运行原理,可以完善优化的部分,才能对其进行调优。
Tomcat源码:HTTPS://github.com/apache/tomcat/tree/TOMCAT_7_0_42
web http协议 浏览器--->服务器 c/s
tomcat jetty 应用中间件 HTML css photo jsp js
netty
tomcat核心组件:
connector
三种协议
1、http协议 BIO HTTP connector和NIO Http connector
2、ajp协议 与其他第三方http服务器建立连接协议 可与Apache集成
3、apr协议 APRhttp connector C语言实现 主要提升对静态资源(如HTML,图片,css,js等)的访问性能
container
engine:整个Catalina的servlet引擎
host:一个拥有数个上下文的虚拟主机
context:一个web应用对应一个context上下文 一个context包含一个或者多个wrapper
wrapper:一个单独的servlet
tomcat处理器
Defaultservlet Tomcat默认的servlet,用来处理静态资源的(没有映射到其他servlet的URL则执行)
JSPservlet httpServletRequest和httpServletResponse
init
doGet/doPost
destory
线程模型:
BIO
NIO
1、设置JVM内存
Linux:
JAVA_OPTS='-Xms512m -Xmx1024m'
windows:
set JAVA_OPTS=-Xms512m -Xmx1024m
Tomcat架构:
Tomcat容器:
总结:
tomcat性能调优后并不是说,我们的应用就稳如泰山了,还有我们的应用逻辑的优化之类等等的,一个能承受高并发,高访问量的网站是综合因素决定的,并不是只有其中一部分,所以我们要综合考虑。