Tomcat 总体架构

简介: 开篇 首先一定要先感谢《Tomcat架构解析》一书的作者刘光瑞,对于我这样的新手来说,这本书关于Tomcat总体架构的介绍能够让我快速的了解整个架构的设计背景,达到了循序渐进的目的,在这里非常推荐新手入手一本。

开篇

 首先一定要先感谢《Tomcat架构解析》一书的作者刘光瑞,对于我这样的新手来说,这本书关于Tomcat总体架构的介绍能够让我快速的了解整个架构的设计背景,达到了循序渐进的目的,在这里非常推荐新手入手一本。

本篇博文的图片都是截取自《Tomcat架构解析》一书,为了能够截图我下载了这书的电子版,不过我也是身体力行的购买正版书在支持的,也非常希望技术人员能够尊重原创的成果。

 最后这个章节主要是介绍Tomcat整体架构的,整体内容主要在于模块介绍以及关联,希望通过这个章节能够串通所有模块让大家有个整体的架构


Tomcat总体架构介绍

整体架构

<Server>
    <Service>
        <Connector />
        <Connector />
        <Engine>
            <Host>
                <Context /><!-- 现在常常使用自动部署,不推荐配置Context元素,Context小节有详细说明 -->
            </Host>
        </Engine>
    </Service>
</Server>

img_733178ceaa5f9fbcdbd262a8fbda54b4.png

说明:
Tomcat的Server配置主要包括Server、Service、Connector、Engine、Host、Conetext,整体的架构如上图,各个组件的功能介绍如下:

  • Server:一个Server包含多个Service,一个Service维护多个Connector和一个Container(Tomcat将Container重命名为Engine,用以表示servlet引擎)。
  • Connector:负责开启Socket监听客户端请求。
  • Engine:Tomcat将Container重命名为Engine,用以表示servlet引擎,包含多个Host。
  • Host:提供虚拟机主机功能,一个Engine下包含多个虚拟主机功能。
  • Context:用以表示一个web应用,并且一个Engine可以包含多个Context。
  • Wrapper:Tomcat将servlet定义为Wrapper。


整体架构 - 增加生命周期

img_afb83bdf28da71588c4dc458d9f48f23.png

说明:

  • 各组件模块实现Lifecycle接口,用于各组件生命周期的管理。
  • Container接口提供子容器的添加,Engine&Host&Context&Wrapper均实现该接口。


整体架构 - 增加职责链

img_c1e2f5fe3a9a44aa07cefe979e8f7e7e.png

说明:

  • Tomcat采用职责链的模式来实现客户端请求的处理
  • Tomcat定义了PipeLine(管道)和Valve(阈)两个接口,前者用于构造职责链,后者代表职责链上的每个处理器。


整体架构 - Connector细化

img_de7dbbff25a83e29eed3fbba17ff4231.png

说明:

  • ProtocolHandler表示协议处理器,针对不同的协议和IO方式提供不同的实现。
  • AbstractEndpoint负责启动线程监听端口,接收请求后调用Processor进行数据读取。
  • Mapper维护容器映射关系,同时按照映射规则查找容器。
  • MapperListener用于在容器状态发生变更时,注册或者取消对应的容器映射信息。
  • CoyoteAdapter实现了Connector和Mapper和Container的解耦,


整体架构 - 增加线程池

img_90000a41fa6879084b850663f81a3650.png

说明:

  • Tomcat提供了Executor接口来表示一个可以在组件间共享的线程池。
  • Endpoint在接收到客户端请求后,会创建请求处理对象并交由线程池处理。


整体架构 - 组件功能介绍

img_60e4c8692835fb2d73e978ec770e5834.png
Tomcat功能组件介绍
img_75b8ee9806c459a3e329d31485a5c4cc.png
Tomcat功能组件介绍
目录
相关文章
|
设计模式 Java 应用服务中间件
Tomcat 架构原理解析到设计借鉴
Tomcat 架构原理解析到设计借鉴
490 0
|
设计模式 Java 应用服务中间件
Tomcat 架构原理解析到架构设计借鉴
Tomcat 架构原理解析到架构设计借鉴
248 0
|
安全 Java 应用服务中间件
阿里技术官架构使用总结:Spring+MyBatis源码+Tomcat架构解析等
分享Java技术文以及学习经验也有一段时间了,实际上作为程序员,我们都清楚学习的重要性,毕竟时代在发展,互联网之下,稍有一些落后可能就会被淘汰掉,因此我们需要不断去审视自己,通过学习来让自己得到相应的提升。
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
293 0
|
9月前
|
网络协议 Java 应用服务中间件
框架源码私享笔记(01)Tomcat核心架构功能 | 配置详解
本文首先分享了《活出意义来》一书序言中的感悟,强调成功如同幸福,不是刻意追求就能得到,而是全心投入时的副产品。接着探讨了Tomcat的核心功能与架构解析,包括网络连接器(Connector)和Servlet容器(Container),并介绍了其处理HTTP请求的工作流程。文章还详细解释了Tomcat的server.xml配置文件,涵盖了从顶级容器Server到子组件Connector、Engine、Host、Context等的配置参数及作用,帮助读者理解Tomcat的内部机制和配置方法。
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
前端开发 Java 应用服务中间件
21张图解析Tomcat运行原理与架构全貌
【10月更文挑战第2天】本文通过21张图详细解析了Tomcat的运行原理与架构。Tomcat作为Java Web开发中最流行的Web服务器之一,其架构设计精妙。文章首先介绍了Tomcat的基本组件:Connector(连接器)负责网络通信,Container(容器)处理业务逻辑。连接器内部包括EndPoint、Processor和Adapter等组件,分别处理通信、协议解析和请求封装。容器采用多级结构(Engine、Host、Context、Wrapper),并通过Mapper组件进行请求路由。文章还探讨了Tomcat的生命周期管理、启动与停止机制,并通过源码分析展示了请求处理流程。
|
缓存 负载均衡 应用服务中间件
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
在本章内容中,我们将深入探讨 Tomcat 服务器的运行架构、LVS 负载均衡的运行机制以及 Cache 缓存机制,并提供相应的解决方案和指导。通过理解这些关键概念和机制,您将能够优化您的系统架构,提高性能和可扩展性。
508 4
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
|
存储 负载均衡 NoSQL
【分布式技术架构】「Tomcat技术专题」 探索Tomcat集群架构原理和开发分析指南
【分布式技术架构】「Tomcat技术专题」 探索Tomcat集群架构原理和开发分析指南
406 1
|
前端开发 Java 应用服务中间件
架构篇:Tomcat 高层组件构建一个商业帝国
架构篇:Tomcat 高层组件构建一个商业帝国
436 6