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参数调整。
标签:bat,Service,多个,工作,Host,Tomcat,连接器,原理 From: https://www.cnblogs.com/hangwei/p/16979332.html