tomcat架构解析文档.pdf
http://www.100md.com
2020年11月10日
![]() |
| 第1页 |
![]() |
| 第8页 |
![]() |
| 第15页 |
![]() |
| 第27页 |
![]() |
| 第33页 |
参见附件(188701KB,385页)。
tomcat架构解析文档
Tomcat架构解析 基于Tomcat 8.5.x全面介绍了Tomcat的架构、各组件的实现方案以及使用方式,主要包括Tomcat的基础组件架构以及工作原理,Tomcat各组件的实现方案,小编为大家准备了tomcat架构解析文档,有需要的就快来吧
书籍部分内容预览









Tomcat组件架构设计
1)server
服务器可以描述为这样一个应用:接收客户端发来的请求数据并进行解析,完成相关业务处理,然后把处理结果作为相应返回给客户端。
通常我们可以使用serversocket监听指定端口来实现该功能
2)Connection和Container(Engine)
当我们将请求监听和请求处理放在一起的时候扩展性就很差。比如当我们想适配多种网络协议,但是请求处理却相同的时候。
处理方案就是:将网络协议和请求处理从概念上分开。Connection负责开启socket并监听客户端请求、返回响应数据;Container(Engine)负责具体的请求处理。
3)Service
上述方案的缺陷就是无法很好的判断Connection由哪个Container(Engine)来处理。
采用service方案,一个server包含多个service(它们相互独立),一个service包含多个Connection和一个Container,这样,connection的请求只能由该container来处理
由于Container表示一个更加通用的概念,为了与Tomcat组件命名一致,将Container重新命名为Engine,用于表示整个servlet引擎
4)Context
上述解决了网络协议和容器的解耦。下面我们需要在Engine中支持管理web应用。当接收到Connection请求时,能够找到一个合适的Web应用来处理。Context就代表一个Web应用
5)Host
为了提供对多个域名的服务,我们可以将每个域名视为一个虚拟的主机。在每个Host下包含多个Context
6)Wrapper
在一个Web应用中,可以包含多个servlet实例来处理不同链接的请求。因此,需要一个组件概念来表示Servlet定义,在Tomcat中servlet定义被称为Wrapper
7)Container
容器代表一类组件,这类组件的作用就是接收客户端请求并返回响应数据,具体操作委派到子组件完成。
Engine、Host、Context、Wrapper均继承自Container
8)LifeCycle
所有的组件均存在启动、停止等生命周期方法,拥有生命周期管理的特性,我们将这个抽取出来作为接口LifeCycle,定义生命周期管理的核心方法。
9)Executor
tomcat的并发,提供了Executor接口来表示一个可以在组件间共享的线程池。该接口同样继承LifeCycle接口
共享范围:Executor由Service维护,因此同一个Service中的组件可以共享一个线程池
10)Bootstrap和Catalina
Catalina提供一个shell程序,用于解析service.xml创建各个组件。同时负责启动、停止应用服务器
Bootstrap作为应用服务器启动入口。Bootstrap负责创建Catalina,根据执行参数调用Catalina相关方方法完成对应用服务器的操作
作者简介
刘光瑞
窝客网研发总监,负责窝客产品研发管理及总体架构设计。拥有十几年的企业级大型业务系统研发架构经验,成功带领团队设计并研发基于Tomcat的组件化微服务架构。
2007年在四达软件担任高级架构师,主导了数个省份的广播电视省网业务运营支撑系统的架构设计及优化工作。2012年在电讯盈科担任高级技术顾问,参与了中国移动供应链系统的架构及研发。在应用系统架构及性能优化方面积累了丰富的经验。
目录
第1章 Tomcat介绍1
1.1 简介1
1.1.1 Tomcat历史1
1.1.2 Tomcat许可2
1.2 安装和启动3
1.2.1 Tomcat与安装3
1.2.2 Tomcat启动4
1.2.3 IDE启动5
1.2.4 嵌入式启动10
1.2.5 Debug启动11
1.3 Tomcat目录结构12
1.4 Tomcat 8.5之后的新特性12
1.5 小结13
第2章 Tomcat总体架构14
2.1 总体设计14
2.1.1 Server14
2.1.2 Connector和Container15
2.1.3 Container设计17
2.1.4 Lifecycle20
2.1.5 Pipeline和Valve23
2.1.6 Connector设计24
2.1.7 Executor26
2.1.8 Bootstrap和Catalina28
2.2 Tomcat启动30
2.3 请求处理31
2.4 类加载器33
2.4.1 J2SE标准类加载器33
2.4.2 Tomcat加载器34
2.4.3 Web应用类加载器36
2.5 小结37
第3章 Catalina38
3.1 什么是Catalina38
3.2 Digester39
3.2.1 对象栈40
3.2.2 匹配模式41
3.2.3 处理规则41
3.2.4 示例程序42
3.3 创建Server44
3.3.1 Server的解析45
3.3.2 Engine的解析48
3.3.3 Host的解析49
3.3.4 Context的解析50
3.4 Web应用加载53
3.4.1 StandardHost54
3.4.2 HostConfig56
3.4.3 StandardContext60
3.4.4 ContextConfig64
3.4.5 StandardWrapper69
3.4.6 Context命名规则69
3.5 Web请求处理71
3.5.1 总体过程71
3.5.2 请求映射72
3.5.3 Catalina请求处理80
3.6 DefaultServlet和JspServlet81
3.6.1 DefaultServlet82
3.6.2 JspServlet84
3.7 小结85
第4章 Coyote86
4.1 什么是Coyote86
4.2 Web请求处理88
4.2.1 主要概念88
4.2.2 请求处理90
4.2.3 协议升级92
4.3 HTTP94
4.3.1 基础知识94
4.3.2 配置方式95
4.4 AJP97
4.4.1 基础知识97
4.4.2 Web服务器组件103
4.4.3 配置方式106
4.5 HTTP/2.0106
4.5.1 基础知识106
4.5.2 配置方式110
4.6 I/O111
4.6.1 BIO112
4.6.2 NIO115
4.6.3 NIO2121
4.6.4 APR130
4.7 小结134
第5章 Jasper136
5.1 Jasper简介136
5.2 JSP编译方式137
5.2.1 运行时编译137
5.2.2 预编译141
5.3 JSP编译原理144
5.4 小结151
第6章 Tomcat配置管理152
6.1 JVM配置152
6.1.1 JVM配置选项152
6.1.2 系统属性153
6.2 服务器配置158
6.2.1 catalina.properties158
6.2.2 server.xml159
6.2.3 context.xml172
6.3 Web应用配置172
6.3.1 ServletContext初始化参数173
6.3.2 会话配置174
6.3.3 Servlet声明及映射175
6.3.4 应用生命周期监听器177
6.3.5 Filter定义及映射177
6.3.6 MIME类型映射178
6.3.7 欢迎文件列表178
6.3.8 错误页面179
6.3.9 本地化及编码映射179
6.3.10 安全配置179
6.3.11 JNDI配置180
6.3.12 其他183
6.4 Web应用过滤器185
6.4.1 CorsFilter186
6.4.2 CsrfPreventionFilter188
6.4.3 ExpiresFilter188
6.4.4 FailedRequestFilter190
6.4.5 RemoteAddrFilter191
6.4.6 RemoteHostFilter191
6.4.7 RemoteIpFilter192
6.4.8 RequestDumperFilter195
6.4.9 SetCharacterEncodingFilter195
6.4.10 WebdavFixFilter196
6.5 Tomcat管理196
6.5.1 host-manager196
6.5.2 manager197
6.5.3 管理命令行199
6.5.4 Ant任务200
6.5.5 JMX201
6.6 小结201
第7章 Web服务器集成202
7.1 Web服务器与应用服务器的区别202
7.2 集成应用场景205
7.3 与Apache HTTP Server集成206
7.3.1 Windows环境安装206
7.3.2 Linux环境安装207
7.3.3 mod_jk209
7.3.4 mod_proxy_ajp229
7.4 与Ngnix集成235
7.4.1 Ngnix简介235
7.4.2 Windows环境安装237
7.4.3 Linux环境安装237
7.4.4 Tomcat集成241
7.5 与IIS集成243
7.6 小结243
第8章 Tomcat集群244
8.1 Tomcat集群介绍244
8.1.1 Tomcat集群基础246
8.1.2 Apache Tribes247
8.1.3 Tomcat集群组件实现253
8.2 集群配置254
8.3 会话同步255
8.3.1 DeltaManager256
8.3.2 BackupManager257
8.3.3 替代方案257
8.4 集群部署258
8.4.1 实现原理258
8.4.2 配置方式259
8.5 小结259
第9章 Tomcat安全260
9.1 配置安全260
9.1.1 安装部署问题260
9.1.2 server.xml配置261
9.2 应用安全263
9.2.1 Realm264
9.2.2 HttpServletRequest265
9.2.3 Authenticator266
9.3 传输安全(SSL)267
9.4 Java安全策略273
9.4.1 简介273
9.4.2 catalina.policy275
9.5 小结279
第10章 Tomcat性能调优280
10.1 Tomcat性能测试及诊断281
10.1.1 常见测试方式281
10.1.2 性能测试工具282
10.1.3 数据采集及分析290
10.2 Tomcat性能优化303
10.2.1 JVM优化304
10.2.2 Tomcat配置308
10.3 应用性能优化建议311
10.4 小结312
第11章 Tomcat附加功能313
11.1 Tomcat的嵌入式启动313
11.1.1 为什么需要嵌入式启动313
11.1.2 嵌入式启动Tomcat314
11.1.3 嵌入式启动服务器316
11.2 Tomcat中的JNDI317
11.2.1 什么是JNDI317
11.2.2 Tomcat中的JNDI318
11.3 Comet和WebSocket320
11.3.1 什么是Comet321
11.3.2 Tomcat的Comet实现322
11.3.3 什么是WebSocket326
11.3.4 Tomcat的WebSocket实现328
11.4 小结335
附录 server.xml配置336
结束语370
tomcat架构解析文档截图



相关资料1:
- 同济高等数学第五版上册.pdf
- 《梦的解析》.pdf
- 大规模分布式存储系统:原理解析与架构实战-杨传辉.pdf
- c语言解析教程第四版.pdf
- 《性格解析》了解自已了解他人.pdf
- 日本军事力量解析 上册-王强.pdf
- 同济高等数学第五版下册.pdf
- 《产品设计工艺经典案例解析》.(Making.It).(英)克里斯.拉夫特里.清晰照片版.pdf
- 《解析极限编程拥抱变化原书第2版》.pdf
- 欧姆社学习漫画-数学·漫画傅里叶解析-[日]涉谷道雄-陈芳(译)-科学出版社-2009.pdf .mobi
- 《金融投资系列典藏版》(上).pdf .epub .mobi .azw3
- 2007年临床执业助理医师考试题及解析题--儿科.exe
- 《云原生服务网格Istio:原理、实践、架构与源码解析》 -张超盟.pdf
- 《解析人体健康密码》(丁艳萍)扫描版.pdf
- 《ANSYS 14.0工程实例解析与常见问题解答》.pdf
相关资料2:




