前言
Tomcat作为一款免费的开源应用服务器,凭借技术先进、性能稳定、体积小巧、扩展性好等优势,深受开发者和软件开发商认可。鉴于Tomcat是一款较轻量级的应用服务器,它广泛使用在中小型系统中,并且是一个很流行的Web服务器。那么,如此优秀的Tomcat是怎样创造出来的呢?它的架构是怎样的呢?内部到底又是怎样运作的呢?需要哪些技术来支撑呢?有很多疑问都需要我们去研究和探索,作者试图在本书中阐明Tomcat内部的秘密。
虽然Tomcat已经广泛使用了很长时间,市面上也有很多相关图书,但多数关于Tomcat的图书基本都停留在如何使用Tomcat、如何在Tomcat服务器上进行Web应用开发等方面。本书将从Web服务器基础知识开始讲起,循序渐进,让读者不仅能了解Tomcat内核的设计,还能掌握Web服务器的原理,体会到一个工业级的Web服务器是如何设计的。本书可以帮助读者快速建立Tomcat的内部运作模型。
重复发明轮子不是我们提倡的,本书并不鼓励读者重复开发轮子,而是鼓励大家去研究开源软件,学习其中的优秀架构,从中借签优秀的设计理念,看看这些优秀开源产品的过人之处,从而提高自己的软件素养。
本书具备如下特点。
所探讨的Tomcat基于Tomcat 7版本。
通篇大量采用图解,方便读者理解。
对各个设计要点都做深入剖析,读者可以体会到其中为什么要这样设计,原来工业级软件要考虑的如此多、如此细。
脉络结构比较清晰,由整体到部分,由浅到深,循序渐进,知识点的连贯性比较强,对于基础知识有补充说明,避免读者读到一半无法继续阅读。
组织结构
本书旨在剖析Tomcat的内核设计及其原理,全书共分为22章,主要内容如下。
第1章:Web服务器机制,介绍Web相关的基础知识,如HTTP、套接字通信及服务器模型等。
第2章:Servlet规范,介绍Java体系Web容器的Servlet规范。
第3章:Tomcat的启动与关闭,介绍Tomcat启动、关闭的批处理及相关的变量。
第4章:从整体预览Tomcat,先从整体介绍Tomcat内部结构以及请求处理的整个过程,让读者能从整体了解Tomcat结构,为后面深入介绍各个组件做铺垫。
第5章:Server组件与Service组件,介绍Server和Service组件,以及Tomcat中对内存泄漏的监听检查。
第6章:Connector组件,介绍Tomcat包含的HTTP和AJP两种协议的连接器,以及它们不同的I/O模式,如BIO模式、NIO模式和APR模式。
第7章:Engine容器,介绍Engine容器。
第8章:Host容器,介绍Host容器及其包含的内部组件。
第9章:Context容器,介绍Context容器及其包含的内部组件。
第10章:Wrapper容器,介绍Wrapper容器及Servlet的种类和工作机制,以及Comet模式的实现、WebSocket协议的实现和异步Servlet的实现。
第11章:生命周期管理,介绍Tomcat的生命周期管理机制及其事件监听机制。
第12章:日志框架及其国际化,介绍Tomcat的日志系统及日志的国际化,同时还有Tomcat的访问日志的设计及使用介绍。
第13章:公共与隔离的类加载器,介绍Tomcat内部的类加载器结构,如何达到多个Web应用既能共用某些类库又能互相隔离。
第14章:请求URI映射器Mapper,介绍Tomcat对请求URI处理的原理,以及局部路由和全局路由两种Mapper。
第15章:Tomcat的JNDI,介绍Tomcat内部对JNDI的集成支持,以及在Tomcat中如何使用JNDI。
第16章:JSP编译器Jasper,介绍JSP的语法及Tomcat如何对其进行解析,介绍从JSP到Servlet,再从Servlet到Class的整个编译过程。
第17章:运行、通信及访问的安全管理,介绍Tomcat内部运行时的安全管理,Tomcat通信信道的安全实现,以及客户端访问认证机制。
第18章:处理请求和响应的管道,介绍Tomcat中对请求和响应处理的管道模式的设计,以及在Tomcat中如何定制阀门。
第19章:多样化的会话管理器,介绍Tomcat内部的会话管理机制,以及标准会话管理器、持久化会话管理器、集群增量会话管理器和集群备份会话管理器的实现机制及原理。
第20章:高可用的集群实现,介绍Tomcat如何实现集群的高可用性,Tomcat从单机模式到集群模式的会话管理,以及Tomcat的Cluster组件。
第21章:集群通信框架,介绍Tomcat的集群通信框架Tribes,剖析Tribes的原理机制,以及Tomcat如何使用Tribes进行会话同步和集群部署。
第22章:监控与管理,介绍了Tomcat如何实现自身内部的监控及其管理。
读者对象
假如你对浏览器上单击某个按钮后发生的事情感兴趣,那么这本书适合你。
假如你想深入了解Web服务器原理,那么这本书适合你。
假如你想深入了解Tomcat核心架构的原理及Tomcat内组件的工作原理,那么这本书适合你。
假如你想设计开发一个类似Tomcat的中间件,那么这本书适合你。
假如你想基于Tomcat做二次开发,自定义Tomcat,那么这本书适合你。
反馈
在本书交稿时,我仍在担心本书是否遗漏了某些知识点,其中的内容是否翔实齐备,是否能让读者有更多收获,是否会因为自己理解的偏差而误导读者。由于写作水平和写作时间所限,本书中难免存在谬误,恳请读者评判指正。
读者可将任何意见及建议发送到邮箱wyzz8888@foxmail.com,本书相关的勘误也会发布到我的个人博客blog.csdn.net/wangyangzhizhou上。欢迎读者通过邮件或博客与我交流。