最近研究了一下Tomcat源码,对Tomcat整体的架构画了两个图如下:
UML结构图:
反映到架构图上就是这样的:
总结一下,tomcat采用了清晰的组件化的架构
位于顶端的server代表了整个tomcat服务器;
server中包含一到多个service提供各种服务,默认的是名称为catalina的服务
service提供请求服务首先是根据不同协议的客户端请求选择相应的Connector来进行处理的,
Connector对请求进行分析后,转而交给真正的处理引擎(Engine),即Servlet容器。
处理引擎(Engine)内部实例化一个至多个虚拟主机(Host),
对应不同的域名请求。每个虚拟主机又包含多个web应用和上下文环境(Context),
上下文中的web应用收到客户端请求后对请求进行解析处理,
返回响应结果给Connector,并最终返回给客户端。