一次请求的来龙去脉 – 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个组件来完成这些功能: Endpoint、Processor 和 Adapter 。 为了更好的处理协议,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

相关推荐

  • 义乌:干事创业得有那股子劲

     义乌光电信息高新区 洪兵 摄 瑞丰光电生产忙  洪兵 摄 记者 黄晓华 何百林 这是一个人们既熟悉又陌生的义乌。 人们熟悉义乌熙来攘往、人头攒动的市场,却不知位于赤岸的绿色动力小镇每天将诞生近千台“义乌造”的汽车“心脏”,苏溪的光源科技小镇将崛起为世界LED产业的中心。 人们习惯了义乌老城部分区块杂乱无序、满目疮疤的街景,却没想到城市改…

    创业分享 2023-05-24
  • 大兴安岭地区全民创业之养殖篇

      五月的图强,松枝吐绿,草色青青,杜鹃花开遍山冈,一派生机盎然。景区内车来人往,食用菌养殖户挂袋繁忙,棚室蔬菜反季上市,养殖场里猪、羊撒欢儿……这是大兴安岭地区图强林业局发展管护区经济带来的繁荣景象。   皮草素有“软黄金”之称,大兴安岭地区图强林业局凭借地处北纬53°的地理位置优势,致力于发展蓝狐养殖业。针对养殖过程中的薄弱环节,从东北林业大学、东北农业…

    创业分享 2023-05-17
  • 喜推教你如何通过小程序进行用户运营

    另外,当一个用户进入企业的小程序,一般会有登录、浏览、点击、跳出、支付等操作行为,如果我们割裂来看它们,似乎意义不大。但是,我们可以根据这些动作,去了解用户对界面是否喜欢,在哪些地方遇到阻碍,这些地方是否可以改进,用户转化情况如何,是否可以优化相关流程等。 小程序用户所产生的数据,往往涉及到企业经营上的一些根本问题。通过对这些客户数据、订单转化等数据进行深入…

    创业分享 2023-05-13
  • 科技创新创业成果展:创新创业 普惠大众

    广大观众在科博会现场可以通过多种方式了解自双创活动实施以来,我国在政策、平台、资金、技术、人才、服务等方面的支持投入和取得的显著成效。其中,将着重展现孵化器、众创空间、科技型中小企业、两创示范城市的发展成效,并通过互动地图生动演示科技企业孵化器、众创空间的全国布局和发展特点,观众还可现场查询各地区双创政策的出台情况。 第二十一届中国北京国际科技产业博览会(以…

    2023-05-18
  • 不差钱企业怎么开始做互联网营销?

      创业项目优选 好项目来A5招商 ,点击入驻!   互联网营销的作用相信大家已经很清楚了,守护袁昆在以往多篇文章中从各角度讲解了中小企业怎么做好互联网营销,那么对于中大型企业特别是不差钱的企业怎么做互联网营销呢?   首先明确的问题是:中大型企业不差钱,资源也很丰富,当然也很容易吸引人才。关键是很多企业做不好互联网营销,到底是怎么回事?又该如何做好互联网营…

    创业分享 2023-05-20

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

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