您的位置:首页 > 运维架构 > Tomcat

Tomcat 源码阅读(五)解析请求ProtocolHandler

2017-09-26 17:45 302 查看
环境:tomcat7.0.28
坚持一下,把源码看完,勤奋一点,不要在懒惰了,你已经落下别人很多了

本文主要介绍Tomcat连接器Connector的协议处理ProtocolHandler

一、大体框架

1、ProtocolHandler



2、AbstractEndPoint



3、AbstractEndPoint.Handler



4、Processor



二、模块解析

Tomcat的Connector主要支持两种协议,一个是Ajp  一个是Http

每种协议提供三种实现方式,分别是Apr,Nio 和 JIo

Ajp:AJP是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过TCP连接和SERVLET容器连接。为了减少进程生成socket的花费,WEB服务器和SERVLET容器之间尝试保持持久性的TCP连接,对多个请求/回复循环重用一个连接。一旦连接分配给一个特定的请求,在请求处理循环结束之前不会再分配。换句话说,在连接上,请求不是多元的。这个使连接两端的编码变得容易,虽然这导致在一时刻会有很多连接

JIo:Tomcat使用的是传统的Java I/O操作(即java.io包及其子包)。 默认的模式,性能最差,没有经过任何优化处理和支持。

NIo:java1.4及后续版本提供的一种新的I/O操作方式,Java
nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API。拥有比传统I/O操作(bio)更好的并发运行性能.

Apr:apr(Apache
Portable Runtime/Apache可移植运行时库),Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能。从操作系统级别来解决异步的IO问题,大幅度的提高性能。 Tomcat
apr也是在Tomcat上运行高并发应用的首选模式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: