迄今为止讲解最详细的 Tomcat 架构解析与 JVM、GC 详解及调优文档

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

Tomcat作为著名的Servlet容器实现以及轻量级Java应用服务器,是Apache软件基金会的顶级项目。它开源、轻量,与JBoss、Weblogic 等企业级应用服务器相比,占用资源小,扩展性好,深受Java研发人员喜爱,尤其是在当前主流的基于POJO ( Without EJB )的轻量级编程方式下构建应用系统。除此之外,Apache Tomcat还可以很容易与Apache Htp Server. Nginx等知名的Web服务器集成,以实现负载均衡和集群化部署。所有这些特性都使得Tomcat被广“泛用于开发、测试环境,甚至大规模、高并发的互联网产品部署。



Tomcat也是全世界最著名的基于Java语言的轻量级应用服务器,是一款完 全开源免费的Servlet容器实现。同时,它支持HTML、JS等静态资源的处理,因此又可以作为轻量级Web服务器使用。

从以下几个方面来讲解Apache Tomcat。

  • 基本设计:主要讲述Tomcat的核心接口及概念,并阐述Tomcat的设计理念。

  • 架构及工作原理:主要讲述Tomcat的整体架构,以及各模块如何密切协调来完成应用服务器的相关工作。

  • 各个模块的特性及使用方式:详细讲述各模块的特性,以及如何使用该特性实现高质量的部署架构。每个方面均融合了相关的设计理念及架构知识的讲解,以使读者更容易从中间件产品架构的角度审视Tomcat。

第1章 Tomcat介绍

照例对Tomcat进行简单的介绍,主要包括安装、启动、部署应用以及Tomcat目录结构。如果你是一-位初级开发者,阅读完本章,你会对Tomcat有最基本的认识,基本可以覆盖应用开发过程中能够涉及的各种问题。如果你已经可以熟练部署使用Tomcat



第2章 Tomcat总体架构

主要介绍了Tomcat 容器、连接器各组件的基本概念,阅读这一章有助于初步 了解Tomcat的架构设计。

本章主要包含如下几个部分。

  • Tomcat总体架构设计及Tomcat各组件的概念。

  • Tomcat启动及请求处理过程。

  • Tomcat的类加载器。



第3章 Catalina

第3~5章、第8-9章对Tomcat架构及相关模块进行了深入的讲解。如果你希望详细了解Tomcat架构的各个方面,这部分应该是你的侧重点。如果你是一名中间件设计人员或者系统架构师,可以从中发现许多值得学习和借鉴的地方,包括中间件设计、系统部署架构的构建以及安全管理等多个方面。

本章主要包含以下几个部分。

  • 什么是Catalina。

  • XML解析工具Digester。

  • Catalina标准的创建过程。

  • Catalina加载Web应用以及处理请求的过程。

  • DefaultServlet和JspServlet。



第4章 Coyote

主要介绍了Tomeat提供的链接器实现,包括其支持的协议以及I/O方式,主要内容如下。

  • 什么是Coyote,Tomcat链 接器的基础知识。

  • Coyote的主要概念以及请求处理过程。

  • HTTP、AJP、HTTP/2.0协议知识。

  • NIO、NIO2、APR这3种I/O方式。



第5章 Jasper

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

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

  • Jasper现状简介。

  • JSP的编译方式。

  • JSP编译原理。



第6章 Tomcat配置管理

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

主要通过以下4个方面介绍与Tomcat相关的配置。

  • JVM配置:主要介绍Tomecat启动时支持的JVM相关配置项。

  • 服务器配置:主要介绍$CATALINA_ BASE/conf下的配置。

  • Web应用配置:主要介绍Servlet容器配置以及通过context.xml进行Web应用定制部署。此外,还介绍了Tomcat默认提供的一些非常有用的Web应用过滤器实现。

  • 管理配置:主要介绍了Tomcat支持的几种Web应用部署管理方式,如JMX、 Ant。



第7章 Web服务器集成

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

正是考虑到这些差异化,Tomcat从构建之初,便作为一款可以 与Apache HTTP Server集成的Servlet实现,以支持复杂场景下的Java Web应用部署运行。

介绍了Tomcat与Web服务器进行集成相关的知识,主要包含以下内容。

  • Web服务器与应用服务器的区别。为了更好地理清这两个概念,本章简单地做了定义区分。

  • 需要与Web服务器集成的应用部署场景。

  • 与Apache HTTP Server服务器集成。

  • 与Nginx服务器集成。



第8章 Tomcat集群

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

本章主要从技术角度,讲解Tomcat中 集群的实现方案及其使用配置方式,包括以下内容

  • Tomcat集群架构的实现方案,以及集群通信框架Apache Tribes。

  • Tomcat集群配置方式。

  • Tomcat集群部署的原理及配置方式。

  • 集群会话同步。



第9章 Tomcat安全

安全是系统架构中最重要的关注点之一, 通常情况下,我们所说的安全涵盖网络安全、数据安全、操作系统安全、服务器安全以及应用系统安全等诸多方面。Tomcat作为一款应用服 务器,尽管默认情况下可以满足多数场景的安全需求,但是在安全要求相对较高的环境下,我们仍需要从多个方面对其进行配置。本章主要从以下几个方面介绍Tomeat中安全相关的- - 些配置及功能实现。

  • 配置安全:介绍Tomcat安装、配置及部署过程中需要注意的一些常见问题。

  • 应用安全:介绍Tomcat中应用安全管理的实现原理。

  • 协议安全:简单介绍Tomcat中SSL的配置方式。

  • Java安全策略许可:介绍Java安 全策略许可的概念以及在Tomcat下的使用方式。



第10章 Tomcat性能调优

性能是应用系统非常重要的非功能性需求之--,也是评价应用系统质量的重要方面,性能的好与坏甚至是软件产品能否取得成功的关键原因之一。

侧重于系统的性能优化,讲解如何优化Tomcat,以便提高请求处理速度,增加系统并发访问量。

本章主要从以下几个方面来讨论系统性能的优化。

  • Tomcat性能测试及诊断:如何通过工具及命令进行系统性能测试、采集并分析性能数据。

  • Tomeat性能优化:如何通过修改Tomcat配置来提升服务器性能。

  • 应用系统性能优化建议:常见的应用优化方案。



第11章 Tomcat附加功能

主要介绍了Tomcat提供的一些附加功能, 如嵌入式启动、JNDI、 Comet和WebSocket实现。如果你对嵌入式启动Tomcat或者基于Tomcat进行服务器推送感兴趣,那么绝对不容错过。我们将集中对Tomcat提供的几个功能进行简要介绍。这些功能并不复杂

  • Tomcat的嵌入式启动。

  • Tomcat中的JNDI支持。

  • Tomcat的Comet和WebSocket。



全面介绍了Tomcat的架构、各组件的实现方案以及使用方式,包括Tomcat的基础组件架构以及工作原理,Tomcat各组件的实现方案、使用方式以及详细配置说明,Tomcat 如Web服务器集成以及性能优化,Tomcat部分扩展特性介绍等,使读者全面了解应用服务器的架构以及工作原理,学习Tomcat的使用、优化以及详细配置。

总之,能够真实地、系统性地讲解Tomcat的最新架构。它涉及了Tomcat 的代码设计,却不仅仅是围绕代码进行分析。它涉及了Tomcat的使用方式,却不仅仅是对其配置方式进行简单说明。对于每个技术点相关的规范、方案的考量及隐含问题、如何使用等,本书将进行系统化的讲解。希望读者读完这本书,可以清晰地知道-款Servlet 容器所包含的组件、涉及的规范以及实现方案,也知道如何深度地定制及优化Tomcat。

需要领取这份技术大佬整理的《Tomcat架构解析与性能调优落地实战》以及《JVM、GC详解及调优》的朋友,麻烦+我的小助理vx:bjmsb02,感谢支持!

总目录:









需要领取这份技术大佬整理的《Tomcat架构解析与性能调优落地实战》以及《JVM、GC详解及调优》的朋友,麻烦+我的小助理vx:bjmsb02,感谢支持!



用户头像

周老师

关注

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

还未添加个人简介

评论

发布
暂无评论
迄今为止讲解最详细的Tomcat架构解析与JVM、GC详解及调优文档