架构概述

概述

本页面提供了Tomcat服务器架构的概述。

术语

服务器 (Server)

在Tomcat中,Server(服务器)代表整个容器。Tomcat提供了一个Server接口的默认实现,用户很少对其进行自定义。

服务 (Service)

一个Service(服务)是一个中间组件,它位于Server内部,并将一个或多个Connector(连接器)绑定到恰好一个Engine(引擎)。Service元素很少由用户自定义,因为其默认实现简单且足够用:Service接口

引擎 (Engine)

一个Engine(引擎)代表特定Service的请求处理管道。由于一个Service可能有多个Connector,因此Engine接收并处理来自这些连接器的所有请求,并将响应返回给相应的连接器以传输给客户端。Engine接口可以被实现以提供自定义的Engine,尽管这并不常见。

请注意,Engine可以通过jvmRoute参数用于Tomcat服务器集群。有关更多信息,请阅读集群文档。

主机 (Host)

一个Host(主机)是将网络名称(例如 www.yourcompany.com)与Tomcat服务器关联起来。一个Engine可以包含多个Host,Host元素还支持网络别名,例如 yourcompany.com 和 abc.yourcompany.com。用户很少创建自定义的Host,因为StandardHost实现提供了大量额外的功能。

连接器 (Connector)

Connector(连接器)负责处理与客户端的通信。Tomcat提供了多种连接器。其中包括用于大多数HTTP流量的HTTP连接器,尤其是在将Tomcat作为独立服务器运行时,以及实现AJP协议的AJP连接器,AJP协议用于将Tomcat连接到Apache HTTPD服务器等Web服务器。创建自定义连接器需要付出巨大的努力。

上下文 (Context)

一个Context(上下文)代表一个Web应用程序。一个Host可以包含多个Context,每个Context都有一个唯一的路径。Context接口可以被实现以创建自定义的Context,但这种情况很少见,因为StandardContext提供了大量额外的功能。

评论

Tomcat旨在成为Servlet规范的快速高效实现。Tomcat最初是该规范的参考实现,并且始终严格遵守该规范。同时,Tomcat的性能也受到了高度重视,它与包括商业产品在内的其他Servlet容器不相上下。

在Tomcat的当前版本中,我们旨在通过JMX使Tomcat可管理。可管理性仍然是一个主要关注领域和持续开发的方向。