Tomcat 学习进阶历程之Tomcat架构与核心类分析

前面的http及socket两部分内容,主要是为了后面看Tomcat源码而学习的一些网络基础。从这章开始,就开始实际深入到Tomcat的‘内在’去看一看。

在分析Tomcat的源码之前,准备先看一下Tomcat的架构与一些核心类的简单分析,并简单介绍一下Tomcat是如何处理一次Http请求的。这部分内容有相当一部分来源于网络,在此,感谢原作者的贡献。

  1. Tomcat的总体架构


Tomcat的架构关系可以从Tomcat的配置文件server.xml中看到端倪。

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

Connector又叫连接器,它的主要任务是接收浏览器发过来的Tcp连接请求(说白了就是上一章讲的Socket请求),根据请求行,请求头,请求正文信息创建一个Request和Response(这个Request和Response我想大家都再熟悉不过了,虽然他还不是真正的HttpServletRequest与HttpServletResponse,但确实是有关的,姑且现在就当它是。这部分内容在后面的章节后讲到)。然后会产生一个线程来处理这个请求并把产生的 Request 和 Response 对象传给处理这个请求的线程,处理这个请求的线程就是 Container 组件要做的事了。

在一个Service中,Connector可以有多个,每一个Connector对应了一种不同的处理协议,在Tomcat中默认支持的是Http与AJP协议,所以Tomcat中实现了HttpConnector与AjpConnector。但是Container只有一个。Connector与Container是多对一的关系。如下:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值