猜你喜欢
Tomcat源码全解与架构思维

Tomcat源码全解与架构思维

书籍作者:黄俊 ISBN:9787302616184
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:3868
创建日期:2023-05-09 发布日期:2023-05-09
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
《Tomcat源码全解与架构思维》首先介绍了Tomcat的架构、配置文件、源码结构,然后介绍了Tomcat的整体架构与设计思维,帮助读者建立一个整体的源码构建思维和Tomcat的“上帝视角”。然后详细介绍了Tomcat的核心;组件生命周期与容器生命周期,因为在Tomcat中,组件结构是一棵多叉树,我们需要统一管理它们的初始化、启动、停止、销毁,而生命周期框架便贯穿始终。接下来向读者展示了独立部署的Tomcat启动器原理与内嵌启动器原理(这里以SpringBoot内嵌为例),这样有助于帮助读者了解从哪些入口可以进入Tomcat的源码分析。紧接着向读者展示了JDK的类加载器原理与Tomcat的类加载器设计,因为根据Servlet的规范,每个Web应用拥有自己的类加载器,简称Web类加载器,同时Tomcat自身也有自己的类加载器,所以当采用独立部署多个Web应用时,就需要配置多级类加载器。最后以Server为项层组件从上到下,根据Tomcat的生命周期框架,顺序向读者逐一介绍了每个核心组件、子组件、容器、子容器的核心方法的实现原理。
  《Tomcat源码全解与架构思维》适合以下读者阅读:需要求职进入互联网公司的读者,对Tomcat底层知识感兴趣的读者,从事高并发支撑中间件及高并发业务支撑的读者,以及对多线程感兴趣的读者和希望通过Tomcat源码找到调优点的读者。
作者简介

黄俊

专注于研究Java语言

专注于研究Hotspot

专注于研究Linux内核

专注于研究C语言与汇编

专注于研究架构设计

专注于研究多线程并发处理

专注于研究高效学习方式

曾就职于美团、阿里

前新东方业务架构师

编辑推荐

《Tomcat源码全解与架构思维》对于使用的设计模式进行详细讲解,对于源码中的重点和难点也进行了详细注释,并在每一个内容前面写上了流程和总结,读者可以根据流程来阅读源码理解记忆。

前言

为什么要写这本书

Tomcat是目前市面上使用率较高的Web服务器中间件,同时也是历史较为悠远的,实现了Servlet规范的容器。它的架构设计非常明确,且源码较为易懂,其中不像Netty那样,需要兼容不同的Web应用和编码器,只需要面向Http/Https/Ajp协议来编程即可,底层IO仅仅只是简单的包装了NIO而已,上层处理主要还是对Http协议处理,所以流程较为简单。同时,在调研市场后发现,需要一本Tomcat的书将Tomcat的核心骨架源码和架构思想进行统一的描述,帮助读者通过该书直接将所有难点、重点的代码掌握,剥离其他诸如:JNDI、Http协议处理等等与Tomcat架构设计和核心脉络不相关的内容,毕竟学习架构设计与思想,关这些什么事呢同时,在微服务、云原生时代,又有几个人会使用JNDI呢?在SpringBoot内嵌Tomcat中默认就是关闭了JNDI功能。

本书读者对象

本书适合以下读者阅读:

需要求职进入互联网公司的读者。

希望研究Tomcat底层知识的读者。

在工作中遇见瓶颈希望通过学习Tomcat提升底层知识的读者。

从事开发高并发支撑中间件的读者。

从事互联网高并发业务支撑的读者。

对多线程编程感兴趣的读者。

希望通过Tomcat源码找到调优点的读者。

背景知识

本书并没有介绍Java语言层面的一些基础知识,比如变量、面向对象、泛型等等JavaSE的基础,所以阅读本书需要读者对于JavaSE理解掌握,而由于本书致力于研究Tomcat架构和源码层面的知识,自然必不可少的接触到NIO、线程模型、网络编程的知识,但是读者只要拥有Java语言的基础,相信阅读本书并不难。

本书对于使用的设计模式进行详细讲解,对于源码中的重点和难点也进行了详细注释,并在每一个内容前面写上了流程和总结,读者可以根据流程来阅读源码理解记忆。

如何阅读本书

本书抽丝剥茧,去掉了JNDI、JSP引擎、分布式集群、Http协议处理细节,这几部分的源码描述,因为这几部分代码与Tomcat架构实在没多大关系,同时在当下内嵌微服务、云原生,都希望把Web项目变得足够简单,同时前后端分离已是趋势,Tomcat独立部署+Redis集群集中管理状态,Tomcat集群也早已淘汰。所以再花大量篇幅介绍这些不相关的内容,笔者认为只不过是增加篇幅,浪费读者的时间罢了。

本书的第一、二章主要帮助读者开启“上帝视角”,了解掌握Tomcat的整体设计有助于在阅读源码时不会不知所措。第三、四章主要介绍了Tomcat组件生命周期、容器生命周期原理,第五章介绍了启动器原理,第六章介绍了类加载器层级设计与JDK类加载器原理。读者可以从前面这六章,找到Tomcat的源码入口,总体生命周期的设计,这样读者就可以从第一、二章的“上帝视角”,也即组件树开始,从根节点Server开始向下紧贴着生命周期来完成对Tomcat架构的理解和学习。后面的章节设计,均是按照树形结构图的描述来进行介绍,读者也可以根据这样的方式来学习。分别是Server、Service、Connector、Engine、Host、Context、Wrapper。

勘误和支持

由于笔者水平有限,加之编写的时间也很仓促,书中难免会存在一些不准确的地方,愿请读者批

评指正。读者可以扫描下方二维码,获取更多资源并加入读者群。读者可以将对本书的意见发布在群

中,同时,如果遇见任何问题,也可以在群中进行提问,笔者将尽量在线上为读者提供最满意的解答。

书中的全部源文件均发布在这个群中,笔者也会将更多的更新及时发布于其中。

目录
第1章 Tomcat架构原理
1.1 Tomcat到底是什么
1.2 Tomcat架构概览
1.3 Tomcat配置文件
1.4 Tomcat源码结构
1.5 小结

第2章 Tomcat架构设计思维
2.1 自顶向下分析Tomcat架构
2.2 自底向上分析Tomcat架构
2.3 面向对象设计Tomcat架构
2.4 小结

第3章 Tomcat生命周期原理
3.1 生命周期管理接口Lifecycle原理
3.2 生命周期状态接口Lifecycle原理
3.3 生命周期函数与组件状态转换原理
3.4 生命周期监听器与事件类原理
3.4.1 生命周期事件
3.4.2 生命周期监听器
3.5 生命周期模板类实现原理
3.6 生命周期实例
3.7 Tomcat生命周期与JMX原理
3.8 核心监听器原理
3.9 小结

第4章 Tomcat容器原理
4.1 容器接口定义
4.2 容器生命周期事件与监听器原理
4.3 容器模板类实现原理
4.3.1 实例变量实现原理
4.3.2 属性操作方法实现原理
4.3.3 容器操作方法实现原理
4.3.4 后台周期执行操作方法实现原理
4.3.5 JMX注册支持方法实现原理
4.4 小结

第5章 Tomcat启动器原理
5.1 独立启动器原理
5.1.1 文件原理
5.1.2 Bootstrap启动类描述
5.1.3 Catalina核心类描述
5.1.4 SystemLogHandler类原理
5.2 内嵌启动器原理
5.2.1 AbstractApplicationContext类refresh方法
5.2.2 ServletWebServerApplicationContext类onRefresh方法
5.2.3 ServletWebServerApplicationContext类createWebServer方法
5.2.4 TomcatServletWebServerFactory类getWebServer方法
5.2.5 Tomcat类核心变量与构造器
5.2.6 Tomcat类方法
5.3 小结

第6章 Tomcat类加载器原理
6.1 Java类加载器原理
6.1.1 Java类加载器层级结构
6.1.2 Java双亲委派机制原理
6.1.3 JavaClassLoader类原理
6.1.4 JavaURLClassLoader类原理
6.1.5 Java双亲委派机制的打破
6.1.6 Java自定义类加载器
6.2 Tomcat类加载器层级结构与定义
6.3 Tomcat顶层类加载器源码分析
6.4 Tomcat应用层类加载器源码分析
6.5 小结

第7章 TomcatServer服务器原理
7.1 TomcatServer接口定义
7.2 TomcatServer接口实现
7.2.1 StandardServer属性和构造器定义
7.2.2 StandardServer核心方法
7.2.3 StandardServer生命周期方法
7.3 小结

第8章 TomcatService服务原理
8.1 TomcatService接口定义
8.2 TomcatService接口实现
8.2.1 核心属性和构造器原理
8.2.2 核心方法
8.2.3 生命周期方法
8.3 MapperListener原理
8.4 Mapper原理
8.4.1 核心变量与构造器原理
8.4.2 核心内部类原理
8.4.3 Mapper核心方法
8.5 小结

第9章 TomcatConnector连接器原理
9.1 Connector核心属性与构造器
9.2 ConnectorProtocolHandler协议初始化原理
9.3 Connector生命周期方法
9.3.1 initInternal原理
9.3.2 startInternal原理
9.3.3 stopInternal原理
9.3.4 destroyInternal原理
9.4 小结

第10章 TomcatProtocolHandler协议处理器原理
10.1 ProtocolHandler接口定义
10.2 AbstractProtocol原理
10.2.1 构造函数和核心变量
10.2.2 生命周期函数
10.2.3 核心支撑内部类
10.3 AbstractHttp11Protocol原理
10.3.1 构造函数和核心变量
10.3.2 套接字处理器创建原理
10.4 AbstractHttp11JsseProtocol原理
10.5 Http11NioProtocol原理
10.6 小结
……

第11章 TomcatEndpoint端点类原理
第12章 TomcatProcessor协议处理原理
第13章 TomcatPipeline流水线原理
第14章 TomcatEngine原理
第15章 TomcatHost原理
第16章 TomcatContext原理
第17章 TomcatWrapper原理
短评

原先买了高并发的书,刚又买了tomcat。黄师傅的书还是一如既往的棒。思路也很清晰,学到了很多。支持黄师傅很赞

2022-10-27 12:10:01

书很好,很快就送到了

2022-10-28 18:52:38

这本书真大,挺厚的 看了前两章的内容,讲的还不错,对tomcat架构有了初步的了解 物流很快,包装很好

2022-10-25 15:52:23

产品特色