您的位置:首页 > 运维架构 > Tomcat

Tomcat分析--结构设计

2016-02-12 20:19 369 查看
喵喵喵。。。。之前一段时间在调试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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: