Tomcat系统架构与设计模式,第1部分: 工作原理

本文以 Tomcat 5 为基础,也兼顾最新的 Tomcat 6 和 Tomcat 4。Tomcat 的基本设计思路和架构是具有一定连续性的。

Tomcat 总体结构

Tomcat 的结构很复杂,但是 Tomcat 也非常的模块化,找到了 Tomcat 最核心的模块,您就抓住了 Tomcat 的“七寸”。下面是 Tomcat 的总体结构图:

图 1.Tomcat 的总体结构

从上图中可以看出 Tomcat 的心脏是两个组件:Connector 和 Container,关于这两个组件将在后面详细介绍。Connector 组件是可以 被替换,这样可以提供给服务器设计者更多的选择,因为这个组件是如此重要,不仅跟服务器的设计的本身,而且和不同的应用场景也十分 相关,所以一个 Container 可以选择对应多个 Connector。多个 Connector 和一个 Container 就形成了一个 Service,Service 的概念 大家都很熟悉了,有了 Service 就可以对外提供服务了,但是 Service 还要一个生存的环境,必须要有人能够给她生命、掌握其生死大权 ,那就非 Server 莫属了。所以整个 Tomcat 的生命周期由 Server 控制。

以 Service 作为“婚姻”

我们将 Tomcat 中 Connector、Container 作为一个整体比作一对情侣的话,Connector 主要负责对外交流,可以比作为 Boy, Container 主要处理 Connector 接受的请求,主要是处理内部事务,可以比作为 Girl。那么这个 Service 就是连接这对男女的结婚证了 。是 Service 将它们连接在一起,共同组成一个家庭。当然要组成一个家庭还要很多其它的元素。

说白了,Service 只是在 Connector 和 Container 外面多包一层,把它们组装在一起,向外面提供服务,一个 Service 可以设置多个 Connector,但是只能有一个 Container 容器。这个 Service 接口的方法列表如下:

图 2. Service 接口

时间: 2025-01-20 09:27:15

Tomcat系统架构与设计模式,第1部分: 工作原理的相关文章

Tomcat 系统架构与设计模式--工作原理

本文以 Tomcat 5 为基础,也兼顾最新的 Tomcat 6 和 Tomcat 4.Tomcat 的基本设计思路和架构是具有一定连续性的. Tomcat 总体结构 Tomcat 的结构很复杂,但是 Tomcat 也非常的模块化,找到了 Tomcat 最核心的模块,您就抓住了 Tomcat 的"七寸".下面是 Tomcat 的总体结构图: 图 1.Tomcat 的总体结构 从上图中可以看出 Tomcat 的心脏是两个组件:Connector 和 Container,关于这两个组件将在

Tomcat系统架构与设计模式,第2部分: 设计模式分析

门面设计模式 门面设计模式在 Tomcat 中有多处使用,在 Request 和 Response 对象封装中.Standard Wrapper 到 ServletConfig 封装中.ApplicationContext 到 ServletContext 封装中等都用到了这种设计模式. 门面设计模式的原理 这么多场合都用到了这种设计模式,那这种设计模式究竟能有什么作用呢?顾名思义,就是将一个东西封装成一个门面好与人家更容易进行 交流,就像一个国家的外交部一样. 这种设计模式主要用在一个大的系统

jetty的工作原理以及与tomcat 的比较

Jetty 的基本架构 Jetty 目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器,它有一个基本数据模型,这个数据模型就是 Handler,所有可以被扩展的组件都可以作为一个 Handler,添加到 Server 中,Jetty 就是帮你管理这些 Handler. Jetty 的基本架构 下图是 Jetty 的基本架构图,整个 Jetty 的核心组件由 Server 和 Connector 两个组件构成,整个 Server 组件是基于 H

深入理解Tomcat系列之一:系统架构

前言 Tomcat是Apache基金组织下的开源项目,性质是一个Web服务器.下面这种情况很普遍:在eclipse床架一个web项目并部署到Tomcat中,启动tomcat,在浏览器中输入一个类似http://localhost:8080/webproject/anyname.jsp的url,然后就可以看到我们写好的jsp页面的内容了.一切都是那么自然和顺理成章,然而这一切都是源于tomcat带给我们的,那么在tomcat背后,这一切又是怎么样发生的呢?带着对tomcat工作原理的好奇心,我决定

深入理解Tomcat系列之一:系统架构(转)

前言 Tomcat是Apache基金组织下的开源项目,性质是一个Web服务器.下面这种情况很普遍:在eclipse床架一个web项目并部署到Tomcat中,启动tomcat,在浏览器中输入一个类似http://localhost:8080/webproject/anyname.jsp的url,然后就可以看到我们写好的jsp页面的内容了.一切都是那么自然和顺理成章,然而这一切都是源于tomcat带给我们的,那么在tomcat背后,这一切又是怎么样发生的呢?带着对tomcat工作原理的好奇心,我决定

性能测试知多少---系统架构分析

有些事儿一旦放一放就难再拾起来,突然发现<性能测试知多少>这个系列两月没更新,关键时我都不知道啥时候放下的,总容易被各种技术所吸引走,如饥似渴的想学更多的东西,这几天一直有朋友问我为啥不写了,我才意识,事情要一样一样做,我现在要把这个系列完成.   之前有对性能需求进行过分析,那篇主要从项目业务.背景等角度如何抽丝剥茧的将项目的需求抽离出来.在我们进行需求的时候也需要对被测项目的架构有一定的认识,如果不了解被测系统的架构,那么在后期的性能分析与调优阶段将无从下手.   简单系统架构介绍    

系统架构-性能篇章2(系统拆分2-问题)

在文章<系统架构-性能篇章2(系统拆分1)>有提及到过关于系统在什么情况下会拆分,拆分的目之类的问题,本文会阐述一些关于拆分过程中遇到的各种各样的常见问题进行分析,和上一个文章中提及到的一样,讲解的目录如下: 1.负载均衡设备的问题. 2.不同系统之间的通信问题. 3.数据写入和查找的问题. 4.跨数据库事务问题. 5.跨数据库序列问题. 6.不同应用的本地缓存问题. 7.系统之间的直接依赖和间接依赖问题. 8.独立模块面临的单点问题. 9.各类批量分组.切换.扩展的问题. 10.统一监控和恢

学习顺便翻译:理解jsp模式2架构——MVC设计模式探险

js|架构|设计 理解jsp模式2架构 MVC设计模式探险 摘要:通过开发一个熟悉的基于web的购物店,你将学到如何工具化mvc设计模式并且真正地在使用jsp的时候分离内容和表现.Govind Seshadri 会向你展示这是多么的容易(2000字(原文字数)). 作者:Govind Seshadri 尽管相对抛开最近的相关介绍而言,jsp技术正在很好地以自己的方式成为卓越的创建提供动态web内容的应用程序的java技术.java开发者因为许多不同的理由喜爱jsp.一些人喜欢它给交互式web页面

深入解析大数据虚拟化的架构(下)- 系统架构

继<零起点部署大数据虚拟化>系列教程之后,本着"知其然,亦知其所以然"的原则,本系列走进大数据虚拟化的内部,分上下两篇博文,帮助读者了解vSphere Big Data Extensions(以下简称BDE)的部署架构和系统架构,理解部署原理和内部构成,以及各自的作用.希望对您有所帮助,也欢迎您留言评价. 上: Serengeti虚拟化应用 下: Serengeti管理服务器的系统架构(即本文) Serengeti管理服务器的系统架构 Serengeti管理服务器包括几个重