书籍作者:黄俊 | ISBN:9787302616184 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:3868 |
创建日期:2023-05-09 | 发布日期:2023-05-09 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
黄俊
专注于研究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。
勘误和支持
由于笔者水平有限,加之编写的时间也很仓促,书中难免会存在一些不准确的地方,愿请读者批
评指正。读者可以扫描下方二维码,获取更多资源并加入读者群。读者可以将对本书的意见发布在群
中,同时,如果遇见任何问题,也可以在群中进行提问,笔者将尽量在线上为读者提供最满意的解答。
书中的全部源文件均发布在这个群中,笔者也会将更多的更新及时发布于其中。
原先买了高并发的书,刚又买了tomcat。黄师傅的书还是一如既往的棒。思路也很清晰,学到了很多。支持黄师傅很赞
2022-10-27 12:10:01
书很好,很快就送到了
2022-10-28 18:52:38
这本书真大,挺厚的 看了前两章的内容,讲的还不错,对tomcat架构有了初步的了解 物流很快,包装很好
2022-10-25 15:52:23