美文网首页
Tomcat体系结构

Tomcat体系结构

作者: 黄二狗V | 来源:发表于2020-10-15 22:02 被阅读0次

tomcat实现的主要两个核心功能:

  • 处理socket连接以及网络字节流与request与response的转换
  • 加载与管理servlet,处理具体的请求以及响应

所以,tomcat设计了连接器(connector)和容器(container)分别来做这两件事,连接器负责处理socket,容器负责内部处理。

Tomcat 为了实现支持多种 I/O 模型和应用层协议,一个容器可能对接多个连接器,通常连接器和容器组合才能对外提供服务,这个组合叫做service,它本身并没有实现什么功能,只是组合连接器和容器,一个tomcat实例(server)可以包含多个service,以实现监听不同的端口号。所以,整体上的一个体系结构就如下图所示:


整体结构

连接器

tomcat连接器完成了以下几个功能:

  • 监听端口,进行网络通信
  • 解析协议,转换为Tomcat Request/Response
  • Tomcat Request/Response与 ServletRequest/ServletResponse 的转化以及与容器的交互

Tomcat 设计了Endpoint、Processor 和 Adapter三个组件来实现这三个功能:

  • Endpoint负责网络通信
  • Processor负责解析协议与转换
  • Adapter负责Request/Response与 ServletRequest/ServletResponse 的转化

其中Endpoint、Processor放在一起抽象成了 ProtocolHandler 组件,他们的结构关系如下:

连接器

容器

容器就是用来装载 Servlet 的,Tomcat 设计了 4 种容器,分别是 Engine、Host、Context 和 Wrapper,这 4 种容器不是平行关系,而是父子关系:

容器

如上图所示,容器是一种分层的组合的关系结构:

  • Wrapper 表示一个 Servlet,一个 Web 应用程序中可能会有多个 Servlet
  • Context 表示一个 Web 应用程序
  • Host 代表的是一个虚拟主机(站点),可以配置多个虚拟主机地址,一个虚拟主机下可以部署多个 Web 应用程序
  • Engine 表示引擎,用来管理虚拟站点,一个 Service 最多只能有一个 Engine

总结

最后,可以从tomcat配置文件server.xml来加深理解:

配置文件

整体结构图:


整体结构图

相关文章

网友评论

      本文标题:Tomcat体系结构

      本文链接:https://www.haomeiwen.com/subject/mqjnpktx.html