tomcat6.0.x框架结构图-tomcat 6.x 源码阅读

时光怂恿深爱的人放手 提交于 2019-11-29 08:47:07

2013-09-05
昨天搞域名,没有写blog,愧疚蛮久,还好域名搞定了...嘻嘻
继续行程,记录点滴... : tomcat6.0.x已经通过svn导入eclipse运行,接下来就是阅码之旅。,每个人阅读源码方式可能不尽相同,我第一次,没啥经验,凭空想象自己的方式:了解程序结构,运行程序,跟踪源码,设置断点,打印输出,验证假设,弄清楚启动过程,了解数量流向。 我们都知道tomcat调度Servlet来处理来自HTTP的请求,我猜想原理是这样的:Tomcat启动ServerSocket监听网络端口,tomcat分配线程处理来自HTTP的请求,线程负责解析请求,在请求上调用过滤器,使用反射调用Servlet的service方法来处理请求完成响应,tomcat如何实现调度功能?如何实现处理HTTP协议的请求?结构框架如何。
先看看tomcat6.0.x的框架结构图,在网上看到过多种框架图,有记忆的有两种。

图片来自网络
来自Tomcat 系统架构与设计模式

图片来自网络
来自[忘记来自哪个blog了]

第一张图给以的信息很少,只标出了Server,Server下面的多个Service,以及Service中的组件,结构层次很清晰,但是不够细,例如Engine,Host,Context等组件没有画出来,以及他们之间的层次关系也没有,我喜欢第二张图,因为第二张展示了tomcat的结构层次图,从Server到servlet全都画出来,一看就明白他们的层次关系,同时第二张图中还有数据流图,从起点到servlet,再从servlet回来,线路明了,能减少精力在数据流的分析,当然第二张图也有的组件没有画出来,比如Logging,Naming等。
我们都知道tomcat的基本就是容器,通过容器来管理资源,调度信息,控制数据流向,tomcat的框架是由容器构成的,往框架往里面替补容器,容器连起来构成一个处理请求的生产线。图中传递很多信息,容器之间的关系,数据流向,组件结构,tomcat的框架结构直接展现出来。

还有一张必须看的图 图片来自网络
来自Tomcat启动过程原理详解

这张结构图也是描述tomcat框架结构的,他从另一个维度来描述,通过网络端口来源,逐级分解结构,从图上我们可以看出,一个Server可以有多个Service,但一个Service下面只能有一个Engine,一个Engine下面可以有多个Host,一个Host下面可以有多个Context,数据流向也可以从图中获知,请求从Connector中开始,一直通过容器传递到Context中,再有Context传递给Servlet,还有一个就是Server会启动一个ServerSocket来监听8005端口,负责监听是否要关闭Server。
今天就到这里了,欢迎吐槽...

是否每一天都是新,我们要如何改变

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!