Tomcat源码 - 3. 整体分层架构

Tomcat源码 - 3. 整体分层架构

Tomcat 工程分层架构 其实比较简答,从源码中也是比较容易知晓

阅读配置文件 server.xml

可以直接获取到 Tomcat整体 架构模式
配置文件,xml,每个节点代表了一个组件,组件是一个对象=>所以每个节点都是一个对象,节点里的属性是啥?对象的属性

<!-- Tomcat服务 -->
<Server port="8005" shutdown="SHUTDOWN">

  <!-- 服务 -->
  <Service name="Catalina">

    <!-- 连接器 -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
   
    <!-- 引擎 -->
    <Engine name="Catalina" defaultHost="localhost">

      <!-- 主机 -->
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        
        <!-- 上下文 改代码未出现在配置文件里 但时间工作时有配置过该标签的 -->
	<Context path="/samples" docBase="D:\sdf\samples\WebRoot" debug="0" reloadable="true">
        </Context>	  

      </Host>
    </Engine>
  </Service>
</Server>

分析架构图

image.png

Context 架构图

image.png

完整的Tomcat 链路架构图

image.png

其中 lifecycle 生命周期 全程贯穿 Tomcat服务, 观察者模式用于监听生命周期内的各个环节

  1. 在Tomcat Server 中包含了一些监听器,其中也监听了 Tomcat生命周期
  2. Service服务组件 中 又分别 包含了 包含了 Connector(连接器)
    1. Connector(连接器) 线程池(我们都知道Tomcat针对不同的Web请求是单独开辟线程的嘛)
    2. Engine(引擎)组件 用于统一管理下属相关组件
      1. Host 组件(主机)
        1. Context组件(上下文,即一个Web应用)
          1. Wrapper 包装器
            1. Servlet 请求

本文由 在码圈 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!
原文链接:https://www.bedebug.com/archives/tomcat-3
最后更新于:2022-03-24 19:35:53

请博主喝咖啡 ☕.