蚂蚁前行系列(一):Tomcat整体结构和基础概念

来源:互联网 发布:java泛型t 编辑:程序博客网 时间:2024/05/20 09:22

关于Tomcat,Java开发,尤其是后端开发同学都会接触过。当我们通过http://localhost:8080/xxx在浏览器成功访问网页时,我们也就了解了Tomcat最为基本使用方法了。

时常我们研发同学也并不会去关心Tomcat的高级特性,例如,连接方式、缓存、压缩、静态资源等相关配置与优化方法等。也许只有当Tomcat性能出现瓶颈时,我们才会考虑Tomcat的优化,去网上或Tomcat官网搜索,临时抱佛脚,往往在解决了一个问题后又出现另外一个问题,不能系统性很好地掌握和理解Tomcat配置管理和优化。

冥泷将以系列文章分析Tomcat源码。

Tomcat是实现了Java Servlet,JavaServer Pages,Java Expression和Java WebSocket技术的框架。

我们将从结构上分析Tomcat的整体架构(摘自网上截图)。

“tomcat architecture”的图片搜索结果

其中,有几个概念需要梳理。

Server:在Tomcat中,Server代表完整的Tomcat容器。Tomcat会提供一个标准的Server容器。

Service:是存活在Server的中间组件,关联一个或者多个Connectors到一个Engine对象上。Service很少由用户配置或修改。

Engine:一个Engine代表一个Service中的请求处理管道,由于一个Service可以有多个Connectors,那么这个Engine可以处理多个Connectors,并将响应返回到合适的connector,最终返回给客户端。

Connector:一个Connector管理与客户端的通信。在Tomcat中可以有多种Connector,包括Coyote Connector(http),JK2 Connector(AJP协议)。

Host:一个Host是一个网络名的关联,例如www.yourcompany.com 到你的Tomcat服务器。一个Engine能包含多个Hosts,并且Host名称可以支持网络别名,例如abc.company.com , yourcompany.com。

Context:一个Context代表一个Web应用,一个Host可包含多个Context。


后面将结合Tomcat源码,基于整体架构和基础概念,以一个系列文章的方式来深入浅出的分析tomcat的源码。