- 1
- 0
- 约2.41万字
- 约 25页
- 2023-08-06 发布于上海
- 举报
Tomcat 的系统架构与设计模式
(君山 ,11/20/2009 )
如有错误之处请指出( junshan@)
一、Tomcat 总体设计前言:从标题看上去很大,Tomcat 很复杂,不是一篇文章就能说清楚的,就算我想说恐怕我也说不清楚,我主要是想知道 Tomcat 如何分发请求的,如何处理多用户同时请求的,还有他的容器是如何工作的。这也是一个
一、
Tomcat 总体设计
这里所说的 Tomcat 是以 Tomcat5 为基础,也兼顾最新的 Tomcat6。Tomcat 基本的设计思路还是有连贯性的。
1. Tomcat
1. Tomcat 总体结构
Tomcat 的结构复杂,但是 Tomcat 也非常的模块化,找到了 Tomcat 最主要的模块其实 Tomcat 就能被你抓住“七寸”了。下面是 Tomcat 的总体结构图:
Server
Server 服 务 器
Service 服 务
Service 服 务
Service 服务Connector核心组件
Container核心组件
Connector
Connector
Connector
Container
Jasper
Naming
Session
Loging
JMX
图 1.Tomcat 的总体结构
从上图中可以看出 Tomcat 的心脏是两个组件:Connector 和 Container,关于这两个组件将在后面详细介绍。C onnector 组件是可以被替换,这样可以提供给服务器设计者更多的选择,因为这个组件是如此重要,不仅跟服务器的设计者本身,而且和不同的应用场景十分相关,所以一个Container 可以选择对应多个 Connector。多个 Connect or 和一个 Container 就形成了一个 Service,Service 的概念大家都很熟悉了,有了 Service 就可以对外提供服务了, 但是 Service 还要一个生存的环境,必须要有人能够给她生命、掌握其生死大权,那就非Server 莫属了。所以整个T omcat 的生命周期由 Server 控制。
1.1
1.1 以 Service 作为“ 婚姻”
我们将 Tomcat 中 Connector、Container 和其他一些组件作为一个整体比作一对情侣的话,Connector 主要负责对外交流,可以比作为 Boy,Container 主要处理 Connector 接受的请求,主要是处理内部事务,可以比作为Girl。那么这个 Service 就是连接这对男女的结婚证了。是Service 将他们连接在一起,共同组成一个家庭。
说白了,Service 只是在 Connector 和 Container 外面多包一层,把他们组装在一起,向外面提供服务,一个Ser vice 可以设置多个 Connector,但是只能有一个 Container 容器。这个 Service 接口的类图如下:
图 2. Service 类图
从 Service 接口中定义的方法中可以看出,它主要是为了关联Connector 和 Container,同时会初始化它下面的其他组件,注意接口中它并没有规定他一定要控制了它下面的组件的生命周期。所有组件的生命周期在一个Lifecyc le 的接口中控制,这里用到了一个重要的设计模式,关于这个接口将在后面介绍。
Tomcat 中 Service 接口的标准实现类是StandardService 它不仅实现了 Service 借口同时还实现了Lifecycle 以可以控制它下面的组件的生命周期。StandardService 类结构图如下:
图 3 StandardService 的类结构图
从上图中可以看出除了 Service 接口的方法的实现以及控制组件生命周期的Lifecycle 接口的实现,还有几个方法是用于在事件监听的方法的实现,不仅是这个Service 组件,Tomcat 中其他组件也同样有这几个方法,这也是一个典型的设计模式,将在后面介绍。
下面看一下 StandardService 中主要的几个方法实现的代码,下面是 setContainer(Container)和 addConnector(Con nector)方法的源码:
public void setContainer(Container container) { Container oldContainer = this.container;
if ((oldContainer != null) (oldContainer instanceof Engine)) ((Engine) oldContainer).setService(null);
this.contain
您可能关注的文档
- RAW还是JPEG 3篇分析和总结.docx
- RAW还是JPEG 其他软件篇.docx
- Raw数码摄影流程完全解3.docx
- Raw数码摄影流程完全解4.docx
- Raw数码摄影流程完全解析.docx
- RealTimePCR实验流程分析和总结.docx
- REDONE摄像机测试报告.docx
- Report forep2分析和总结分析和总结.docx
- Rest of my life歌词正反双面.docx
- RIO鸡尾酒广告项目策划书.docx
- (正式版)DB51∕T 1867-2014 《袋栽黑木耳生产技术规程》.docx
- (正式版)DB51∕T 2413-2023 《油橄榄密植丰产栽培技术规程》.docx
- (正式版)DB51∕T 2436-2017 《川菜东坡一品肉烹饪工艺技术规范》.docx
- (正式版)DB51∕T 2396-2017 《农村电子商务服务站(点)服务与管理规范》.docx
- (正式版)DB51∕T 2419-2017 《桢楠扦插育苗技术规程》.docx
- CN105145773B 一种无花果曲奇饼干及其制作方法 (江苏农林职业技术学院).docx
- CN105203825A 微测量电极的制作方法和热电势的测量方法及相关装置 (国家纳米科学中心).docx
- CN105137533B 一种啁啾光纤光栅及其制作方法 (南京航空航天大学).docx
- (正式版)DB51∕T 2453-2018 《巴山新居公共管理指南》.docx
- (正式版)DB51∕T 1892-2014 《川西北地区沙化土地治理技术规程》.docx
最近下载
- 高一必修一化学笔记总结.pdf VIP
- NCCN临床实践指南:子宫肿瘤(2026.v2)PPT课件.pptx VIP
- 2025年江西应用技术职业学院高职单招高职单招英语2016-2024年参考题库含答案解析.docx
- 《无机化学》电子教案.pdf VIP
- 孔子游春课件62260.ppt VIP
- 2025年江西应用技术职业学院单招笔试语文试题库含答案解析.docx VIP
- 2025年江西应用技术职业学院单招笔试综合素质试题库含答案解析.docx VIP
- 2025年江西应用技术职业学院单招《数学》题库试题附参考答案详解(突破训练).docx VIP
- The Mummy《木乃伊(1999)》完整中英文对照剧本.docx VIP
- 2026年江西应用技术职业学院单招职业技能考试模拟测试卷带答案解析.docx VIP
原创力文档

文档评论(0)