Tomcat原理系列之一:整体架构,抓住主线
作为一个web容器,请求在服务端的第一站,理解tomcat对我们今后理解spring,理解springmvc等等很多框架都有很大的帮助。
Tomcat整体架构与重要组件
1.Tomcat整体架构
如果你浏览过Tomcat源码相关文章,你一定对此图不陌生.
2.Tomcat重要组件
- Server代表服务器,一个Tomcat只有一个Server
- Service 代表服务: 一个Server可以对外提供多个服务
- Connector连接器: service服务的核心组成之一,主要是链接客户端请求
- Container容器:service服务的核心组成之一,主要是执行业务逻辑,这里按层级为Engine、Host、Context
3.Tomcat生活场景类比
我们可以举个生活场景来理解tomcat
工商局(Tomcat)
- 工商局大楼(Server服务器)
- 办证服务台(Service),缴税服务台(Service) 等等。工商局提供多种服务能力
- 办证服务台有N个工作人员(Connector)接待客户.
- 办证服务台后面那个屋子(Container)里面是幕后工作人员,处理各种流程中的任务
这样理解起来是否清晰呢?
4.Tomcat层次结构的本质
Tomcat的这种层次结构在代码层面是如何体现的呢?
答:上层持有下层对象的引用,即下层作为上层的一个属性存在.
例如:Server组件里面持有 service的引用Service[] services = new Service[0]
public final class StandardServer extends LifecycleMBeanBase implements Server {
private static final Log log = LogFactory.getLog(StandardServer.class