tomcat架构解析文档--笔记
章2:tomcat总体架构
1.最简单是架构是一个server:start()、stop()方法。开启start()方法监听并处理请求,stop()释放资源。
2.如果请求处理都相同,只是网络协议不同,我们可以将网络协议和处理请求分开。
==》产生了Connector和Container。Connector用于监听连接,返回数据;Container用于处理请求。
但是会导致一个Connector连接多个Container,更灵活的方式是一个Service对应一个Connector和一个Container(也叫Engine,表示Servlet引擎)。Server才是容器,Engine负责请求的处理。
3.Server只是运行环境,并不具有业务处理能力,用于部署web应用。Engine是一个容器,里面可以包含多个web应用即Context,Engine可以找到对应的Context进行处理。
4.在Engine和Context之间加一个host,一个host代表一台主机(可以是虚拟的),并且可以对应多个context。
5.Wrapper(Servlet)装载context中。
6.抽取出的组件的共同特征生命周期,每个组件都有init()、start()、stop()、destroy()方法。
7.Pipline和value。Pipline用于创建责任链,value在pipline里面是执行者。每个组件都有责任链。
8.另一端Connector
它主要做了4件事:
1)监听请求
2)解析请求,可以解析不同网络协议
3)转发到相应的容器
4)返回相应到客户端
它有一个mapper和一个mapperlistener。mapper将请求映射到对应的容器。mapperlistener根据容器的生命周期注册和销毁请求实体。
9.适配器模式在哪里?在Connector和Container之前,copotypeAdapte就是适配器。将请求对象转换成容器能使用的对象。
10.bootstrap独立于tomcat的,它是启动类,构建Catalina,Catalina使用shell脚本读取server.xml构建容器。
浙公网安备 33010602011771号