代码改变世界

Tomcat工作原理

2022-12-15 11:19  杭伟  阅读(228)  评论(0编辑  收藏  举报

Tomcat要实现两个核心功能:

1,处理Socket连接,负责网络字节流与Request/Response对象的转化。

2,加载和管理Servlet,以及具体处理Request请求体(比如HelloServlet的doGet()方法进入和将请求对象转化为HttpServletRequest)。

 

核心组件示意图(图从网上扒的):

Server:Tomcat实例,只有一个。

Service:可以有多个。 比如一个Tomcat运行多个项目,则每个独立项目对应一个Service。

CONNECTOR:连接器,一个Service可以有多个(支持多种IO模型和协议)。负责处理网络字节流并经由Adapter转化为HttpServletRequest对象(注意这里有个接收请求的线程池)。

Engine:引擎,每个Service只有一个。用来管理多个虚拟站点(Host)。

在Engine内部,可以有多个Host,Host内部有多个Context,Context内部有多个Wrapper,Wrapper则对应一个Servlet。每种容器(子容器)都用到了Pipeline管道思想处理网络请求,

最终转发给业务Servlet。

 

源码入口:

startup.bat启动catalina.bat

catalina.bat执行Bootstrap类的main方法:

 

 

 

**Tomcat优化方向:

1,CONNECTOR连接器优化:

1.1,如需要几个连接器?是否需要AJP联动

1.2,线程池参数优化。

1.3,Tomcat运行模式。

2,JVM参数调整。