Tomcat 架构分析
思考集结处 2021-10-28 Tomcat
Tomcat架构分析
# Tomcat 架构分析
Tomcat
是我们web
应用开发,最常用中间间之一,以至于我们很随便的就能使用它,但是知其然更应知其所以然,所以我们需要对Tomcat
的源码研究研究。
# Tomcat整体架构
看一个框架或者服务器的时候我们首先需要看一下他的配置文件,这样的话能对我们研究的东西有一个整体的把我,现在我们看一下Tomcat
在conf
目录下的配置文件server.xml
以下是我精简过的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
根据该配置文件的层级关系我们能够很清晰的了解到
Tomcat
的全貌,<Server>
标签表示Tomcat
这个服务器,该服务器下有可以有很多个<Service>
服务,每一个服务下 有连接器<Connector>
和引擎<Engine>
,引擎下又有主机<Host>
,我们知道Tomcat
是用来部署我们的应用的,所以我们的Context
-应用肯定时需要Host
来管理的。 在配置文件里我们还看到一堆<Listener>
监听器,我们进行大胆的推测,这些监听器肯定时通过监听事件来进行驱动每一个组件的运行。
# 架构简图
这个图就是我们通过分析,配置文件加推理出来的
Tomcat
的简易架构图。
# 小结
本章我们通过对Tomcat
的配置文件进行分析,能够在整体的维度上把我Tomcat
的设计,以及对其核心的组件,有一个大概的认识,从整体来把我Tomcat
。接下来我们会对Tomcat
涉及
到的相关内容进行分析。