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

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。
今天就到这里了,欢迎吐槽...

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

转载于:https://my.oschina.net/douglas/blog/159502

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值