一次请求的来龙去脉 – 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)
上一篇 2023-05-12 03:15:59
下一篇 2023-05-12 03:17:03

相关推荐

  • 创业4年、融资10次、估值33亿:A股区块链公司在它面前都是垃圾!

    对于中国人来说,世界上最美妙的技术,就是能实现一夜暴富的技术,区块链和数字货币或许正中下怀,妙不可言。 用张楠赓的话来说,创业就是因为生活很无聊。读研期间,他偶然认识了比特币,并利用专业所学技术做成了用于挖比特币的机器,并卖到国外赚取外快。 2、下游客户: 2018年伊始,吴晓波的跨年演讲成为比罗振宇热度还高的跨年节目。 也正是嘉楠耘智的这一选择,让市场得以…

    创业分享 2023-06-02
    46
  • 首次创业如何少走弯路?宿迁多路径支持高校毕业生创业

    俗话说,“万事开头难”,选择一个好的项目就是成功的一半。为此,我市通过开展省级创业示范基地创建和省级优秀大学生创业项目遴选活动,帮助高校毕业生选准项目。我市将依托宿迁市银杏树网络创业孵化示范基地,打造省级大学生创业园,满足大学生创业孵化、提速、产业化的功能需求。同时,开展优秀大学生创业项目遴选、创业项目推介会、优秀项目展览会等活动,为大学生创业者搭建创业项目…

    创业分享 2023-05-25
    115
  • 高价值专利是怎样“炼”成的

      “在和专业的专利代理人接触前,一些企业的负责人对专利的认识较为片面。”陈浩说,然而,这些企业负责人在与陈浩的专利代理团队有了深入的业务交流后,都意识到高质量的代理是让专利成为企业出征市场重磅武器的重要环节。   冬日的暖阳斜斜地洒进落地玻璃窗,照在郑州睿信知识产权代理有限公司(下称睿信)总经理陈浩办公室的一排排书架上,窗台上的各种绿植生气盎然,暖融融地带…

    创业分享 2023-05-19
    71
  • 午评:科技股走强 创业板指高开高走涨近2%

    客户端   证券时报网 张一帆   证券时报e公司讯,1月20日早盘,两市小幅高开后走势分化,沪指窄幅震荡,创业板指持续走高。截至中午收盘,沪指涨0.43%,深成指涨0.98%,创业板指涨1.97%。盘面上,电子、军工、通信、保险等板块涨幅居前,旅游、食品饮料、影视板块跌幅居前。海南、芯片、生物疫苗概念多股涨停。北向资金保持净流入态势,净流入逾42亿元。 新…

    2023-05-12
    61
  • 芊荟优选品牌致力于小资本创业平台的发展与创新

    市场上的创业项目与品牌多如牛毛,如何选择适合自己、能够赚钱的平台是关键。作为国内目前风头正盛的百货行业,在2018年持续火热。而2019年作为百货行业集体转型的大年,充满了可知的机遇。芊荟优选以专业扶持小资本商家创业,成为珠三角地区知名企业,合作双赢,合作商的成功,才是芊荟优选实力的强效证明! 在芊荟优选的客户营运部门,有这样一则标语:深度拓展盈利渠道,一次…

    创业分享 2023-05-13
    52

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

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