Tomcat源码(一):整体架构
2018-12-20 09:33:34来源:博客园 阅读 ()
由于tomcat的组件较多,处理流程比较复杂 ,这里是 由浅到深来解释tomcat的整体架构
1、首先应该大致了解下tomcat的 /conf/server.xml 配置文件:在tomcat启动的时候就会解析此文件,并初始化里面的组件
黑框Sever :代表Tomcat的整个运行实例 端口8005 (我们默认经常请求的8080端口是运行在tomcat中的子程序)配置着tomcat的运行周期 ,包含一个或 多个Service
红框Service:代表表示具体的服务有哪些(一个或多个)包含 多个Connector 和 一个Engine
黄框:Connector 用于接收socket连接,并将连接封装为erquest、response请求(一个service可以包含多个connector)
篮框:表示整个tomcat container 容器 包含:Engine 、Host 、Context 、Wrapper 四个子容器(层级嵌套的关系)
Engine:servlet引擎 请求到达容器的第一步,用于处理请求 (一个service只对应一个engine处理请求)
Host: 主机和域名有关配置 (一个Engine可以对应多个Host)
Context : 一个web工程 (一个Host可以部署多个context)
Wrapper :对应对具体的servlet (一个context含多个Wrapper)
注意 :Wrapper表示一个servlet是在项目中的 ,并不在.xml配置文件中定义
2、他们之间的关系 可以使用一个简单的图表示 :
箭头:表示依赖关系
通过观察图可以发现 当Server的运行会依赖service对象运行,service的运行又依赖connector和container等容器的运行
并且每个组件(这里说的组件在源码中都表示一个类)都 含有 start()、stop()方法 ,
为什么 ? 在tomcat中任何一个组件都是有生命周期的 不仅有启停方法,还有init()、destory(),并且组件之间都互相依赖
在整个从Server启动 和 关闭 期间都都维护着每个组件的运行周期。 因此为了方便管理每一个组件的生命周期
抽象出一个 LifeCycle接口 ,在LifeCycle定义了 tomcat 组件运行周期和监听设置的规范 ,让每个组件都间接或直接的实现此接口
3、 如下图 :
根据上图 :可以知道 每个组件的生命周期都由LifeCycle 直接或间接的控制的 ,也知道了 tomcat 的整体架构
下一篇将 结合源码 来细说Tomcat的启动过程 。。。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- java环境教程:Tomcat下载,安装,设置为Windows服务,启动 2020-06-09
- 你说研究过Spring里面的源码,循环依赖你会么? 2020-06-09
- 通俗理解spring源码(六)—— 默认标签(import、alias、be 2020-06-07
- Idea实现SpringBoot外置Tomcat的Web项目热部署(包含静态文 2020-06-04
- 学习源码的第八个月,我成了Spring的开源贡献者 2020-06-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash