架构篇:Tomcat 高层组件构建一个商业帝国

Posted 码哥字节

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了架构篇:Tomcat 高层组件构建一个商业帝国相关的知识,希望对你有一定的参考价值。


友情提示:阅读本文前需要对 Tomcat 有一个全局架构认识,可先翻阅我的历史文章:。

在中我们学到 Tomcat 的总体架构,学会从宏观上怎么去设计一个复杂系统,怎么设计顶层模块,以及模块之间的关系;

Tomcat 实现的 2 个核心功能:

  • 处理 Socket 连接,负责网络字节流与 RequestResponse 对象的转化。
  • 加载并管理 Servlet ,以及处理具体的 Request 请求。

所以 Tomcat 设计了两个核心组件连接器(Connector)和容器(Container),连接器负责对外交流,容器负责内部处理。

Tomcat整体架构

本篇作为 系列的第三篇,带大家体会 Tomcat 帝国是如何构建的?高层组件如何管理组件的?连接器和容器是如何被启动和管理的?

Tomcat 启动流程:startup.sh -> catalina.sh start ->java -jar org.apache.catalina.startup.Bootstrap.main()

架构篇:Tomcat 高层组件构建一个商业帝国
Tomcat 启动流程

Bootstrap、Catalina、Server、Service、 Engine 都承担了什么责任?

架构篇:Tomcat 高层组件构建一个商业帝国

单独写一篇介绍他们是因为你可以看到这些启动类或者组件不处理具体请求,它们的任务主要是管理,管理下层组件的生命周期,并且给下层组件分配任务,也就是把请求路由到负责干活儿的组件。

他们就像一个公司的高层,管理整个公司的运作,将任务分配给专业的人。

我们在设计软件系统中,不可避免的会遇到需要一些管理作用的组件,就可以学习和借鉴 Tomcat 是如何抽象和管理这些组件的。

因此我把它们比作 Tomcat 的高层,同时愿干活的。