Tomcat 总体设计

0 tomcat中的socket服务线程:
tomcat说白了就是一个socket服务线程,监听8080端口,一旦有连接过来就生成一个socket来对应,
然后把socket扔给后端的Executor线程池,由线程池中的一个线程负责进行后续的处理,
而ServerSocket线程继续监听等待下一个连接的到来。
1.Connetor 链接器( 链接器框架名称是Coyote) ,它包含以以下功能:Tomcat 总体设计
它监听到请求的处理流程:
Tomcat 总体设计
ProtocolHandler(协议处理器) 它包括一个Endpoint 用于启动一个Socket监听,监听Connector 中的协议,
将监听到的协议请求交给Processor, Processor按照指定协议读取数据构造Request,通过Adapter提交到Catalina容器。
Mapper(维护容器映射信息) 用于将Processor 请求数据映射到具体的容器中。
MapperListener用于监听容器组件的状态,注册或取消对应的容器映射信息。
2 Bootstrap和Catalina类
Tomcat 总体设计
3.tomcat 服务架构
Tomcat 总体设计
4.tomcat服务启动
Tomcat 总体设计
说明: $CATALINA_HOME/bin/bootstrp.jar 通过反射创建Catalina实例,
Catalina提供shell程序解析server.xml并创建server.xml中各个组件,同时负责启动和停应用服务器。
5.tomcat请求处理流程
Tomcat 总体设计
6.Coyote
6.1 概念
Tomcat 总体设计
6.2 coyote支持的协议和I/O
6.2.1 支持三种协议,HTTP/1.1,HTTP/2.0,AJP
6.2.2 针对HTTP/1.1,AJP支持以下3种I/O方式 NIO,NIO2,APR

文章参考 tomcat架构解析.pdf