动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

Tomcat的整体结构

06-10 18:25 619浏览
举报 T字号
  • 大字
  • 中字
  • 小字

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在很多项目和程序中得到应有,在我们正式使用Tomcat之前,最好能够了解Tomcat的整体结构。

1.Server组件:

Server组件是最顶级的组件,它代表Tomcat的运行实例,在一个JVM中只会包含一个Server。在Server的整个生命周期中,Server组件中的Listener组件实现事件的监听并完成相应的任务,此外Server中包含的GlobalNamingResources组件是为了方便在Tomcat中集成JNDI。除了这两个组件,Server的核心组件就是Service组件

2.Service组件:

Service是服务的抽象,它代表请求从接收到处理的所有组件的集合,一个Server组件可以包含多个Service组件,每一个Service组件都包含了若干的用于接受客户端消息的Connector组件和处理请求的Engine组件以及一些Executor组件。其中不同的Connector组件使用不同的通信协议,如Http协议和AJP协议等。Executor组件是一个线程池,主要是为Service内的所有组件提供任务所需的线程池。

Connector组件:Connector组件的主要职责就是接受客户端的连接并且接受消息报文,消息报文经由Connector的解析之后送往Container组件处理。Tomcat可以处理Http协议和AJP协议等,因此Connector的分类主要由Http和AJP两种协议的Connector组件。Service组件和Connector组件的关系图如下:

,此外,Connector组件中还包含有Mapper组件和CoyoteAdapter组件。 Mapper组件:客户端请求的路由导航组件,通过它能够对一个完整的请求地址进行路由,从而根据请求地址找到对应的Servlet。 CoyoteAdapter组件:一个将Connector和Container适配起来的适配器。

3.容器组件

Tomcat内部有4个级别的容器,分别是Engine、Host、Context和Wrapper。

Engine组件:

Engine代表全局的Servlet引擎,每一个Service组件只能包含一个Engine容器组件,但是一个Engine组件可以包含多个Host组件,除了Host组件之外,还包含以下的组件。

  • Listener组件:可以在Tomcat生命周期中完成某一些Engine容器相关工作的监听器
  • AccessLog组件:客户端的访问日志,所有客户端访问都会被记录
  • Cluster组件:提供集群功能,可以将Engine容器需要共享的数据同步到集群中的其他班的Tomcat实例上。
  • Pipline组件:Engine容器对请求进行处理的管道
  • Realm组件:提供了Engine容器级别的权限认证的功能。

Host组件:

Tomcat中Host组件代表的是虚拟主机,其中存放着若干的抽象的Web应用。Host组件除了包含Context组件之外还包含以下的组件:

  • Listener组件:可以在Tomcat生命周期中完成某一些Host容器相关工作的监听器
  • AccessLog组件:客户端的访问日志,用于记录指定虚拟主机上所有Web应用的访问。
  • Cluster组件:提供集群功能,可以将Host容器需要共享的数据同步到集群中的其他班的Tomcat实例上。
  • Pipline组件:Host容器对请求进行处理的管道
  • Realm组件:提供了Host容器级别的权限认证的功能。

Context组件:

Context组件是Web应用的抽象,其包含了各种静态资源、若干Servlet(Wrapper容器)以及各种其他动态资源。其除了包含主要的Wrapper组件之外还包括以下的组件:

  • Listener组件:可以在Tomcat生命周期中完成某一些Context容器相关工作的监听器
  • AccessLog组件:客户端的访问日志,用于记录对特定Web应用的访问
  • Pipline组件:Context容器对请求进行处理的管道
  • Realm组件:提供了Context容器级别的权限认证的功能。
  • Loader组件:Loader组件是Web应用的加载器,用于加载Web应用的资源并实现在不同Web应用之间资源的隔离
  • Manager组件:会话管理器,用于管理对应Web容器的会话,包括维护会话的生成、更新和销毁。
  • NamingResource组件:进行资源的命名,其负责将Tomcat配置文件的server.xml和Web应用的context.xml资源和属性映射到内存中

Mapper组件:Servlet映射器,负责Context容器内部请求的路由导航

Wrapper组件:

一个Wrapper组件对应着一个Servlet,其主要包含以下的组件:

  • Servlet组件:Servlet是请求处理的基本单元
  • ServletPool组件:Servlet对象池,用于保证Servlet对象的线程安全。
  • Pipeline组件:Wrapper容器对请求进行处理的管道

 

0人推荐
共同学习,写下你的评论
0条评论
代码小兵696
程序员代码小兵696

118篇文章贡献392976字

作者相关文章更多>

推荐相关文章更多>

RabbitMQ使用及工作原理

代码小兵86504-19 19:55

Nginx反向代理的简单实例

代码小兵49806-21 15:40

Linux删除文件夹命令

代码小兵69607-21 11:32

Nginx配置详解

代码小兵12407-22 10:47

Linux更改ip地址的三种方式

代码小兵87207-21 12:51

发评论

举报

0/150

取消