前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tomcat系统架构简介

Tomcat系统架构简介

作者头像
mazhen
发布2023-11-24 15:39:13
3120
发布2023-11-24 15:39:13
举报
文章被收录于专栏:mazhen.techmazhen.tech

Tomcat系统架构图

tomcat-architecture
tomcat-architecture

从架构图可以看出,顶层组件Server代表一个Tomcat Server实例,一个Server中有一个或者多个Service,每个Service有多个Connector,以及一个Engine

ConnectorEngine是Tomcat最核心的两个组件。

Connector负责处理网络通信,以及应用层协议(HTTP,AJP)的解析,生成标准的ServletRequestServletResponse对象,然后传递给Engine处理。每个Connector监听不同的网络端口。

Engine代表整个Servlet引擎,可以包含多个Host,表示它可以管理多个虚拟站点。Host代表的是一个虚拟主机,而一个虚拟主机下可以部署多个Web应用程序,Context表示一个Web应用程序。Wrapper表示一个Servlet,一个Web应用程序中可能会有多个Servlet

从Tomcat的配置文件server.xml也能看出Tomcat的系统架构设计。

代码语言:javascript
复制
<Server>
  <Service>
    <Connector />
    <Connector />
    <Engine>
      <Host>
      </Host>
    </Engine>
  </Service>
</Server>

Connector

我们再仔细看一下Connector的内部实现。

connector
connector
  • Endpoint 负责网络通信
  • Processor 实现应用层协议(HTTP,AJP)解析
  • Adapter 将Tomcat的Request/Response转换为标准的ServletRequest/ServletResponse

Tomcat的网络通信层支持多种 I/O 模型:

  • NIO:使用Java NIO实现
  • NIO.2:异步I/O,使用JDK NIO.2实现
  • APR:使用了Apache Portable Runtime (APR)实现
endpoint
endpoint

Tomcat实现支持了多种应用层协议:

  • HTTP/1.1
  • HTTP/2
  • AJP:二进制协议,Web Server和Tomcat之间的通信协议
processor
processor

Processor解析网络字节流生成Tomcat的Request对象后,会调用Adapter.service(request, response)方法。AdapterServlet引擎的入口,Adapter负责将Tomcat的Request对象转换为标准的ServletRequest,然后再调用Servlet引擎的service方法。

adapter
adapter

ProtocolHandler

Tomcat允许一个Engine对接多个Connector,每个Connector可以使用不同的 I/O 模型,实现不同的应用层协议解析。Connector屏蔽了 I/O 模型和协议的区别,传递给Engine的是标准的ServletRequest/ServletResponse对象。

由于 I/O 模型和应用层协议解析可以自由组合,Tomcat使用ProtocolHandler实现这种组合。各种组合都有相应的具体实现类。比如:Http11NioProtocol 和 AjpNio2Protocol。

tomcat-ProtocolHandler
tomcat-ProtocolHandler

关于NioEndpointNio2Endpoint组件的内部实现,会在后续文章进行分析。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Tomcat系统架构图
  • Connector
  • ProtocolHandler
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档