一次请求的来龙去脉 – Tomcat架构解析(一)

Tomcat作为我们学习JavaEE的一个重要的web服务器,对整个请求的来龙去脉有所了解,将直接使得我们对JavaEE的学习更加的事半功倍。并且深入了解Tomcat架构设计之后,将使得我们在以后搭建自己的项目架构提供借鉴。那么接下来,我们先给大家阐述一下Tomcat的架构是如何设计的,在设计的时候又是如何一步一步的考虑进行的优化升级。

1. 总体架构

其实只要我们使用过Tomcat,那么就应该可以猜测得出,Tomcat其实是包含了两个核心功能:

处理socket请求,实现字节流数据和Request对象、Response对象的转化管理Servlet,执行servlet来处理请求,响应请求
一次请求的来龙去脉 - Tomcat架构解析(一)
2. 连接器

为了更好的处理上面的两件事情,Tomcat 设计出来了两个组件: 连接器 和 容器 , 其中连接器用来接收请求,处理数据,封装成Request和response对象,对请求作出响应。 容器负责管理servlet,调用servlet,得到响应返回给连接器,然后返回给客户端。

一次请求的来龙去脉 - Tomcat架构解析(一)
2.1 Service组件

连接器和容器单独工作,并不能完成所有的内容。必须让它们组合起来一起协作。为了更好的管理他们,Tomcat使用了叫做: Service的组件来包装它们, Service并没有任何的新鲜的功能,仅仅是包装了连接器和容器而已。事实上,在Tomcat中,可以配置很多组service组件 , 这样就可以通过不同的端口号来访问在Tomcat中部署的不同项目了。

一次请求的来龙去脉 - Tomcat架构解析(一)

从上图可以看出在在一个Tomcat可以包含一个Server实例,其实Server实例就是Tomcat实例。而一个Server实例可以拥有一个或者多个Service实例,一个 Service 中有多个连接器和一个容器。连接器之所以设计为多个,主要是为了方便客户端可以通过不同的协议来发送请求。而容器只需要一份即可,因为它只需要管理servlet即可。连接器和容器是通过标准的ServletRequest和ServletResponse对象通讯的。

2.1.1 连接器

连接器的作用: 是为了接收客户端的请求,并且对socket请求进行数据读取,分析,然后封装成ServletRequest 对象,传输给容器。为了更好的实现功能内聚、分工明确,Tomcat设计了3个组件来完成这些功能: EndpointProcessorAdapter 。 为了更好的处理协议,Tomcat还使用 ProtocolHandler来对Endpoint和Processor进行了封装。

Endpoint

Endpoint 作为通信端点,是一个接口 , 具体的 Socket 接收和发送处理器 ,属于TCP/IP的具体实现。 具体的实现类有: AbstractEndpoint 。 它有两个重要的组件:Acceptor 和 SocketProcessor 。 其中: Acceptor用来监听请求,SocketProcessor用来处理接收到的socket请求,它实现了Runnable接口,最终会被提交到线程池里面执行。

Processor

Processor则是实现Http协议的具体实现。负责把 Endpoint 接收到的请求里面的数据解析成Tomcat的Request对象。

Adapter

由于客户端可以使用不同的协议来发送请求,Tomcat 接收到请求后,交由ProtocolHandler来解析并且封装成Request对象。但是想要传输给Servlet,还需要经过一次转化。这个转化的重任就落在了Adapter身上。

它的具体实现是: CoyoteAdapter,这个哥们属于典型的适配器模式。把传递过来的Tomcat的Request类型转化成了后续容器需要用到的ServletRequest对象。

一次请求的来龙去脉 - Tomcat架构解析(一)
3. 总结

Tomcat 的整体架构包含了两个核心组件连接器和容器。连接器负责对外交流,容器负责内部处理。连接器用 ProtocolHandler 接口来封装通信协议和 I/O 模型的差异,ProtocolHandler 内部又分为 Endpoint 和 Processor 模块,Endpoint 负责底层 Socket 通信,Processor 负责应用层协议解析。连接器通过适配器 Adapter 调用容器。

免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:一次请求的来龙去脉 – Tomcat架构解析(一) https://www.dachanpin.com/a/cyfx/11404.html

(0)
一次请求的来龙去脉 – Tomcat架构解析(二)
上一篇 2023-05-12 03:15:59
看了就懂的NIO深入使用详解
下一篇 2023-05-12 03:17:03

相关推荐

  • 苹果手机照片误删怎么恢复?教你怎么在手机端恢复照片

      苹果手机照片误删怎么恢复?手机里的照片丢失是一个常见的问题,经常误删一些照片,大家大部分时候也不在意,因为基本上是一些无关紧要的照片。但偶尔有时候会把重要的图片丢失了,可能是拍摄的重要的资料,现在急着要使用。在这种情况下真的是急得像热锅上的蚂蚁,不知道该怎么办才好。那究竟还能恢复手机里的照片吗?   苹果手机照片恢复   恢复工具: 苹果手机、苹果手机照…

    创业分享 2023-05-22
  • 内衣品牌代理怎么?创业投资加盟欧诗雨实力强

        开个内衣加盟店如今也成了很多创业者的首选。在女性经济的推动之下,内衣加盟店的生意非常红火,内衣市场前景很好,进入这个行业创业是个明智的选择。当然了,开内衣加盟店想要生意火爆,经营顺利,创业者在前期一定要找到一个合适自己的好的品牌。欧诗雨品牌内衣小编总结了内衣加盟选品牌技巧,今天在这里分享给大家。  &…

    创业分享 2023-06-04
  • 新浪微博副总裁曹增辉:新浪微博二次崛起的5大运营心得

      品牌推广就用这几招,七月活动立减500-1000元   很多人都觉得微博已经完蛋了,为什么还有人在用?是什么人在用?   编者按:本文来自微信公众号“混沌大学”(ID:dfscx2014),曹增辉,新浪微博副总裁;36氪经授权发布。   关于新浪微博,我先给大家看三个简单的数据。   NO.1:每天的活跃用户是1.54亿(DAU);   NO.2:每个月…

    创业分享 2023-05-22
  • 四川:返乡下乡创业纳入小微企业扶持范围

    近日,省政府办公厅印发《促进返乡下乡创业二十二条措施》,进一步加大对农民工、大学生和复员转业退役军人等人员返乡下乡创业的政策支持力度。 “22条措施站在创业者立场,从激发创业积极性、提高创业成功率角度出发,在政策制定上尽量细化量化,减少原则性要求,同时明确扶持资金的来源渠道,以增加政策可操作性。”省人社厅相关负责人介绍,政策的“干货”很多,在工作责任主体和创…

    创业分享 2023-05-13
  • 创业,你想好了吗?

    广告 你真的能把创业坚持到底吗?https://www.entrepreneur.com/上的一篇文章主张,要直面自我,判断是否有坚持到底的创业决心,你需要问这么6个问题。1.如果创业后的财务和心理状况都更糟,我能撑到底吗?除非你是天生奇才,否则有80%的几率跟其他中国创业者一样,在首次创业的过程中倒下。即使你属于剩下的那20%,也有可能长期面临收入低于之前…

    创业分享 2023-05-16

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

工作时间:周一至周五,9:30-16:30,节假日休息