写点什么

太厉害了,终于有人把 Tomeat 架构解析的清清楚楚了!

用户头像
周老师
关注
发布于: 2021 年 06 月 16 日


Toncat 是全世界最著名的基于 Java 语言的轻量级应用服务器,是一款完 全开源免费的 Servlet 容器实现。同时,它支持 HTML、JS 等静态资源的处理,因此又可以作为轻量级 Web 服务器使用。作为本书的开篇,本章将简单介绍 Tomcat 的发展历程以及基本的安装使用,以便读者对 Tomcat 有个初步的印象。主要包括以下几个方面的内容。

  1. Tomeat 介绍

  2. Tomeat 总体架构

  3. Catalina

  4. Coyote

  5. Jasper

  6. Tomeat 配置管理

  7. Web 服务器集成

  8. Tomeat 集群

  9. Tomeat 安全

  10. Tomeat 性 能调优

  11. Tomeat 附加功能

Tomeat 总体架构

作为一款知名的轻量级应用服务器,Tomcat 的架 构设计(如生命周期管理、可扩展的容器组件设计、类加载方式)可以为我们的服务器中间件设计,甚至是应用系统组件设计提供非常好的借鉴意义。本章概要地介绍了 Tomcat 的总体架构,通过本章的学习,你可以了解 Tomcat 各组件的基本概念,并为进一-步 了解后续章节讲述的各组件打下良好的基础。


Catalina

本章主要介绍 Tomcat 的 Servlet 容器实现一- Catalina。 对于 Tomcat 来说,Servlet 容 器是其核心组件。所有基于 JSP/Servlet 的 Java Web 应用均需要依托 Servlet 容器运行并对外提供服务。通过 Catalina,我们可以熟悉 Tomcat 的工作机制,包括它对各种应用形式.部署场景以及 Servlet 规范的综合考虑。


Coyote

通过上一章的讲解我们知道, Catalina 是 Tomcat 提供的 Servlet 容器实现,它负责处理来自客户端的请求并输出响应。但是仅有 Servlet 容器服务器是无法对外提供服务的,还需要由链接器接收来自客户端的请求,并按照既定协议(如 HTTP)进行解析,然后交由 Servlet 容器处理。可以说,Servlet 容器和链接器是 Tomcat 最核心的两个组件,它们是构成一-款 Java 应用服 务器的基础。

本章主要介绍了 Tomcat 提供的链接器实现,包括其支持的协议以及 IO 方式。


Jasper

为了提升处理性能,应用服务器会对 JSP 类和实例进行缓存,并定时检测 JSP 页面的更新情况,如发生变更,将会重新编译。由于 ISP 页面采用单独的类加载器,因此重新编译不会导致整个应用重新加载,这也是我们可以在运行状态更新 JSP 页面的原因。

接下来我们就来了解- -下 Tomcat 的 JSP 引擎一 Jasper。

  • Jasper 简介

  • JSP 编译方式

  • JSP 编译原理

Tomeat 配置管理

在使用 Tomcat 的过程中,不可避免地要对它的配置进行定制,使其符合我们的要求。这些配置可能是 JVM 相关的,如内存、系统属性;也可能是服务器相关的,如端口、虚拟主机、IO、也可能是 Web 应用相关的,如 URL 映射、过滤器等。这些配置会涉及多个方面,如开发约束、部署架构、性能、安全、监控管理等。因此无论项目处于开发阶段还是已经运行于生产环境,无论是一名开发人员还是一名架构师,都有必要了解 Toncat 的各项配置,这可以使我们充分利用 Tomcat 的各种特性来完成相关工作。


Web 服务器集成

尽管诸如 Tomcat 等应用服务器都支持 HTML、JavaScript. 图片等静态资源的处理,可以用作 Web 服务器。但是随着系统并发量的上升以及应用部署复杂度的增加,传统的基于 Java 的应用服务器很难承担起 Web 服务器的作用。这主要是因为应用服务器对于静态资源的处理普遍性能相对较差,而 Web 服务器则可以充分利用操作系统本地 IO 的优势。同时,对于静态资源,Web 服务器可以通过缓存等各种方式来提高其访问性能。除此之外,Web 服 务器普遍支持作为前置的请求调度器以支持负载均衡。所有这些都是基于 Java 的应用服务器所欠缺的。


Tomcat 集群

集群是应用服务器不可或缺的一项重要特性。无论是高并发的互联网应用,还是重业务的企业级应用系统,其部署架构均需要不同程度地考虑对集群的支持。集群不仅要求应用服务器提供相关的管理、同步等功能,还要求应用系统具备与之相应的可伸缩性,这就对应用系统架构提出了更高的要求。


Tomcat 安全

安全是系统架构中最重要的关注点之一, 通常情况下,我们所说的安全涵盖网络安全、数据安全、操作系统安全、服务器安全以及应用系统安全等诸多方面。

Tomea 作为一款应用服务 器,尽管默认情况下可以满足多数场景的安全需求,但是在安全要求相对较高的环境下,我们仍需要从多个方面对其进行配置。本章主要从以下几个方面介绍 Tomcat 中安全相关的一.些配置及功能实现。


Tomeat 性能调优

性能一直很重要,但是正如 Donald Knuth 所说:“过早的优化是- -切邪恶的根源”。我们可以在项目的关键节点(如上线前)安排相关的性能压力测试,可以在开发中避免常见的导致性能的问题(如 N+1 次查询等),但是对于如何优化系统、达到何种性能指标,我们要结合项目情况综合考虑(如项目对并发用户数和访问响应时间的要求以及未来业务发展的合理预估等),尽量避免过度优化。开发人员花费数个小时来调整一个不经常使用的小组件的性能,最后往往会发现真正的性能问题另有出处。


Tomeat 附加功能

最后,我们将集中对 Tomcat 提供的几个功能进行简要介绍。这些功能并不复杂,但是它们却在一些应用场景中被广泛使用。


感谢您的阅读,但是由于文案限制关于 Tomcat 架构解析以图片形式展现给大家,对这本 Tomcat 架构解析感兴趣的朋友们

欢迎大家扫码来关注公众号博主,获取文章全部资料,此公众号会持续更新技术干货、不定期分享 Java 进阶面试宝典、Java 核心知识、架构书籍电子版


用户头像

周老师

关注

精通java热衷于分享java领域资料,感谢支持 2020.06.09 加入

还未添加个人简介

评论

发布
暂无评论
太厉害了,终于有人把Tomeat架构解析的清清楚楚了!