tomcat架构 大风起

Server元素在最顶层,代表整个Tomcat容器,因此它是server.xml中唯一一个最外层的元素。Server的作用是提供接口让客户端能够访问到这个Service集合,同时维护它所包含的所有的Service的声明周期,包括如何初始化、如何结束服务、如何找到客户端要访问的Service。

一个Server元素中可以包含多个Service。

Service的作用是组装Connector和Engine对外提供服务。一个Service可以包含多个Connector,但是只能包含一个Engine。

Connector的作用是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程携带该request和response交给绑定的Engine来处理,最后把处理后的Request和Response返回给客户端。

executor是线程池,tomcat提供了默认线程池,线程池配置可以在源码中查找Executor

在实际中我们可以根据实际项目情况添加自己的线程池。

Engine是Service组件中的请求处理组件。engine从Connector中接收请求并处理,并将处理后的response返回Connector。
engine可以包含多个host。

一个Host代表Engine中的一个虚拟主机。Host的作用是运行多个Web应用(一个Context代表一个Web应用),并负责安装、展开、启动和结束每个Web应用。Host组件至少有一个,且其中一个的name必须与Engine组件的defaultHost属性相匹配。
客户端通过主机名来访问服务器。Tomcat从HTTP头中提取出主机名,寻找名称匹配的host。如果没有匹配,请求将发送至默认主机。

一个host可以包含多个context。

context元素代表在指定host上运行的一个web应用。这个web应用对应一个war文件,或者war文件解压后对应的目录。

刚下载的tomcat,server.xml文件中没有context元素,因为默认tomcat的host开启了自动部署。

假设是一种超能力
原文地址:https://www.cnblogs.com/Haihong72H/p/11004811.html