将Tomcat内核高度抽象,可以看成由连接器(Connector)组件和容器(Container)组件组成,其中Connector组件负责在服务
器端处理客户端链接,包括接受客户端链接、接受客户端的消息报文以及消息报文的解析工作,而Container组件负责对客户端的请
求进行逻辑处理,并把结果返回给客户端,包括四个级别的容器:Engine组件、Host组件、Context组件和Wrapper组件。
1.Server组件
Server是最顶级的组件,代表Tomcat的运行实例,在一个JVM中只会包含一个。在Server的整个生命周期中,不同阶段会有不同
的事情发生,为了方便扩展,它引入了监听器的方式,所以它也包含了Listener组件,为了方便集成JNDI,引入了GlobalNamingResource
组件,同时也包含了Service核心组件
2.Service组件
Service是服务的抽象,它代表请求从接收到处理的所有组件的集合。设计上Server可以包含多个Service组件,每个Service组
件都包含若干用于接收客户端消息的Connector组件和用于处理请求的Engine组件。不同的Connector组件使用不同的通信协议(Http、
AJP)若干Connector组件和一个客户端请求处理组件Engine组成的集合即为Service.Service组件还包含了若干Executor组件,每个
Executor都是一个线程池,它可以为Service内所有组件提供线程池执行任务。
3.Connector组件
Connector主要职责是接受客户端链接并接受消息报文,消息报文经由它解析后送往容器中处理
4.Engine组件
Tomcat内部有4个级别的容器,分别是Engine、Host、Context和Wrapper
Engine代表全局Servlet引擎。每个Service组件只能包含一个Engine容器组件,但Engine组件可以包含若干Host容器组件
还包括
Listener组件:在Tomcat生命周期中完成某些Engine容器相关工作的监听
AccessLog组件:客户端的访问日志,所有客户端访问都会被记录
Cluster组件:它提供集群功能,将Engine容器需要共享的数据同步到集群中的其他Tomcat实例上
Pipeline组件:Engine容器对请求进行处理的管道。
5.Host组件
Tomcat中Host组件代表是虚拟主机,这些虚拟主机可以存放若干Web应用的抽象(Context容器)。除了Context组件外,还包括
Listener组件:在Tomcat生命周期中完成某些Engine容器相关工作的监听
AccessLog组件:客户端的访问日志,所有客户端访问都会被记录
Cluster组件:它提供集群功能,将Engine容器需要共享的数据同步到集群中的其他Tomcat实例上
Pipeline组件:Host容器对请求进行处理的管道。
6.Context组件
Context组件是Web应用的抽象,开发的Web应用部署到Tomcat后运行就会转化成Context对象。主要包含了各种静态资源、若干
Servlet以及各种其他动态资源
Listener组件:在Tomcat生命周期中完成某些Engine容器相关工作的监听
AccessLog组件:客户端的访问日志,所有客户端访问都会被记录
7.Wrapper组件
Wrapper容器是Tomcat中4个级别的容器中最小的,与之对应的是Servlet,一个Wrapper对应一个Servlet,主要包括
Servlet组件:Servlet即Web应用开发常用的Servlet,我们会在Servlet中编写好请求的逻辑处理。
ServletPool组件:Servlet对象池,当Web应用的Servlet实现了
器端处理客户端链接,包括接受客户端链接、接受客户端的消息报文以及消息报文的解析工作,而Container组件负责对客户端的请
求进行逻辑处理,并把结果返回给客户端,包括四个级别的容器:Engine组件、Host组件、Context组件和Wrapper组件。
1.Server组件
Server是最顶级的组件,代表Tomcat的运行实例,在一个JVM中只会包含一个。在Server的整个生命周期中,不同阶段会有不同
的事情发生,为了方便扩展,它引入了监听器的方式,所以它也包含了Listener组件,为了方便集成JNDI,引入了GlobalNamingResource
组件,同时也包含了Service核心组件
2.Service组件
Service是服务的抽象,它代表请求从接收到处理的所有组件的集合。设计上Server可以包含多个Service组件,每个Service组
件都包含若干用于接收客户端消息的Connector组件和用于处理请求的Engine组件。不同的Connector组件使用不同的通信协议(Http、
AJP)若干Connector组件和一个客户端请求处理组件Engine组成的集合即为Service.Service组件还包含了若干Executor组件,每个
Executor都是一个线程池,它可以为Service内所有组件提供线程池执行任务。
3.Connector组件
Connector主要职责是接受客户端链接并接受消息报文,消息报文经由它解析后送往容器中处理
4.Engine组件
Tomcat内部有4个级别的容器,分别是Engine、Host、Context和Wrapper
Engine代表全局Servlet引擎。每个Service组件只能包含一个Engine容器组件,但Engine组件可以包含若干Host容器组件
还包括
Listener组件:在Tomcat生命周期中完成某些Engine容器相关工作的监听
AccessLog组件:客户端的访问日志,所有客户端访问都会被记录
Cluster组件:它提供集群功能,将Engine容器需要共享的数据同步到集群中的其他Tomcat实例上
Pipeline组件:Engine容器对请求进行处理的管道。
5.Host组件
Tomcat中Host组件代表是虚拟主机,这些虚拟主机可以存放若干Web应用的抽象(Context容器)。除了Context组件外,还包括
Listener组件:在Tomcat生命周期中完成某些Engine容器相关工作的监听
AccessLog组件:客户端的访问日志,所有客户端访问都会被记录
Cluster组件:它提供集群功能,将Engine容器需要共享的数据同步到集群中的其他Tomcat实例上
Pipeline组件:Host容器对请求进行处理的管道。
6.Context组件
Context组件是Web应用的抽象,开发的Web应用部署到Tomcat后运行就会转化成Context对象。主要包含了各种静态资源、若干
Servlet以及各种其他动态资源
Listener组件:在Tomcat生命周期中完成某些Engine容器相关工作的监听
AccessLog组件:客户端的访问日志,所有客户端访问都会被记录
7.Wrapper组件
Wrapper容器是Tomcat中4个级别的容器中最小的,与之对应的是Servlet,一个Wrapper对应一个Servlet,主要包括
Servlet组件:Servlet即Web应用开发常用的Servlet,我们会在Servlet中编写好请求的逻辑处理。
ServletPool组件:Servlet对象池,当Web应用的Servlet实现了