Tomcat的底层架构模型

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-03-13 06:53 被阅读0次

上一篇 <<<SpringBoot常见面试问题
下一篇 >>>Tomcat启动流程说明


执行流程

1、当我们的tomcat启动的时候,默认的情况下会创建两个Connector监听端口号,分别是为Http协议Connector8080监听端口号和AJP协议Connector8009监听端口号。
2、Http协议Connector8080监听到了Http请求之后会采用Executor(线程池)处理请求,最终交给我们的Container(Engine)实现处理
3、Container(Engine)处理完请求之后在交给我们的Connector连接器封装响应的结果集给客户端。

核心配置

<!--整个tomcat服务器,一个tomcat服务器只有一个server,管理tomcat所有组件-->
<Server port="8105" shutdown="SHUTDOWN">
    <!--Server服务处理的一个业务逻辑,一个Server可以存在多个Service业务逻辑-->
    <Service name="Catalina">
        <!--线程池定义-->
        <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4"/>
        <!--核心组件:Connector连接器,主要作用监听请求与封装请求和响应,一个Service可以有多个Connector-->
        <!--Http协议的监听器-->
        <Connector executor="tomcatThreadPool" port="8180" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
        <!--AJP协议的监听器,以前可以做内部通讯和负载均衡,由于nginx的发展,现在基本上不用了-->
        <Connector port="8109" protocol="AJP/1.3" redirectPort="8443"/>
        <!--核心组件:Engine容器,作用是执行业务逻辑,一个Service只有一个Engine-->
        <Engine name="Catalina" defaultHost="localhost">
            <!--Host虚拟主机站点,Engine可以有多个Host-->
            <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
                <!--每个host可以存在多个Context上下文路径访问-->
                <Context docBase="/Users/jiangjinrong/Downloads/aaa" reloadable="true"/>
                <!--还可以定义Wrapper,相当于servlet类-->
            </Host>
        </Engine>
    </Service>
</Server>

AJP协议与Http协议区别:

Http协议超文本传输协议
AJP协议Tomcat内部之间通讯协议,可以实现tomcat集群


推荐阅读:
<<<Tomcat启动流程说明
<<<Tomcat8的四种部署方式
<<<站在微服务架构对Tomcat进行性能调优
<<<Tomcat的AJP连接器漏洞

相关文章

网友评论

    本文标题:Tomcat的底层架构模型

    本文链接:https://www.haomeiwen.com/subject/rqrpxltx.html