Tomcat分析--结构设计

本文详细阐述了Tomcat的系统架构,从顶层容器server到底层基础组件Loader、Manager、Realm,以及各层级如Service、Connector、Container的构成与作用。通过理解Tomcat的核心结构,有助于开发者更好地掌握其工作原理及优化部署。

喵喵喵。。。。之前一段时间在调试tomcat,分析结构,还找出来原来看不懂的how tomcat works。。。跟着写了一阵子。。。感觉还是学到了写东西的。。。那记录一下吧

先说说tomcat的系统架构。。。tomcat中最顶层的容器是server,代表整个服务器,server里有一个或多个service,表示具体服务。service主要包含两部分:connector和container.

connector用于处理连接相关的事情,并提供socket与request,response的转换,container用于封装和管理servlet,以及具体处理request请求。


Catalina--Tomcat中的server由catalina来管理,不过它的入口方法在Bootstrap类。Catalina是整个tomcat的管理者,是开始/关闭shell脚本的主类。它里面有三个方法load,start,stop分别用来管理整个服务器的生命周期:

--load方法用于根据conf/server.xml文件创建server并调用server的init方法进行初始化。

--start方法用于开启服务器

--stop方法用于停止服务器

Service--Service是包含Connector和Container的集合,Service用适当的Connector接收用户的请求,再发给相应的Container来处理。

Connector--实现某一协议的连接器,如默认的有实现HTTP、HTTPS、AJP协议的。

Container--可以理解为处理某类型请求的容器,处理的方式一般为把处理请求的处理器包装为Valve对象,并按一定顺序放入类型为Pipeline的管道里。Container有多种子类型:Engine、Host、Context和Wrapper,这几种子类型Container依次包含,处理不同粒度的请求。另外Container里包含一些基础服务,如Loader、Manager和Realm。

Engine--Engine包含Host和Context,接到请求后仍给相应的Host在相应的Context里处理。

Host--就是我们所理解的虚拟主机。

Context--就是我们所部属的具体Web应用的上下文,每个请求都在是相应的上下文里处理的。

Wrapper--Wrapper是针对每个Servlet的Container,每个Servlet都有相应的Wrapper来管理。


下面就是些被Container所用的基础组件:

Loader--是被Container用来载入各种所需的Class。

Manager--是被Container用来管理Session池。

Realm--是用来处理安全里授权与认证。



参考:

1. 看透spring MVC 源代码分析与实际

2. http://blog.csdn.net/cutesource/article/details/5006062

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值