加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

四张图带你了解Tomcat系统架构——让面试官颤抖的Tomcat回答系列!

发布时间:2019-01-06 16:35:05 所属栏目:业界 来源:今日头条
导读:俗话说,站在巨人的肩膀上看天下,一样平常进修的时辰也是先总览一下整体,然后逐个部门个个击破,最后形成思绪,相识详细细节,Tomcat的布局很伟大,可是 Tomcat 很是的模块化,找到了 Tomcat最焦点的模块,题目才可以游刃而解,相识了Tomcat的整体架构对往后

Container用于封装和打点Servlet,以及详细处理赏罚Request哀求,在Connector内部包括了4个子容器,布局图如下(图C):

四张图带你相识Tomcat体系架构——让口试官颤动的Tomcat答复系列!

4个子容器的浸染别离是:

(1)Engine:引擎,用来打点多个站点,一个Service最多只能有一个Engine;

(2)Host:代表一个站点,也可以叫假造主机,通过设置Host就可以添加站点;

(3)Context:代表一个应用措施,对应着平常开拓的一套措施,可能一个WEB-INF目次以及下面的web.xml文件;

(4)Wrapper:每一Wrapper封装着一个Servlet;

下面找一个Tomcat的文件目次比较一下,如下图所示:

四张图带你相识Tomcat体系架构——让口试官颤动的Tomcat答复系列!

Context和Host的区别是Context暗示一个应用,我们的Tomcat中默认的设置下webapps下的每一个文件夹目次都是一个Context,个中ROOT目次中存放着主应用,其他目次存放着子应用,而整个webapps就是一个Host站点。

我们会见应用Context的时辰,假如是ROOT下的则直接行使域名就可以会见,譬喻:www.ledouit.com,假如是Host(webapps)下的其他应用,则可以行使www.ledouit.com/docs举办会见,虽然默认指定的根应用(ROOT)是可以举办设定的,只不外Host站点下默认的主营用是ROOT目次下的。

看到这里我们知道Container是什么,可是照旧不知道Container是怎样举办处理赏罚的以及处理赏罚完之后是怎样将处理赏罚完的功效返回给Connector的?别急!下边就开始切磋一下Container是怎样举办处理赏罚的!

六、Container如那里理赏罚哀求的

Container处理赏罚哀求是行使Pipeline-Valve管道来处理赏罚的!(Valve是阀门之意)

Pipeline-Valve是责任链模式,责任链模式是指在一个哀求处理赏罚的进程中有许多处理赏罚者依次对哀求举办处理赏罚,每个处理赏罚者认真做本身响应的处理赏罚,处理赏罚完之后将处理赏罚后的哀求返回,再让下一个处理赏罚着继承处理赏罚。

四张图带你相识Tomcat体系架构——让口试官颤动的Tomcat答复系列!

可是!Pipeline-Valve行使的责任链模式和平凡的责任链模式有些差异!区别首要有以下两点:

(1)每个Pipeline都有特定的Valve,并且是在管道的最后一个执行,这个Valve叫做BaseValve,BaseValve是不行删除的;

(2)在上层容器的管道的BaseValve中会挪用基层容器的管道。

我们知道Container包括四个子容器,而这四个子容器对应的BaseValve别离在:StandardEngineValve、StandardHostValve、StandardContextValve、StandardWrapperValve。

Pipeline的处理赏罚流程图如下(图D):

四张图带你相识Tomcat体系架构——让口试官颤动的Tomcat答复系列!

(1)Connector在吸取到哀求后会起首挪用最顶层容器的Pipeline来处理赏罚,这里的最顶层容器的Pipeline就是EnginePipeline(Engine的管道);

(2)在Engine的管道中依次会执行EngineValve1、EngineValve2等等,最后会执行StandardEngineValve,在StandardEngineValve中会挪用Host管道,然后再依次执行Host的HostValve1、HostValve2等,最后在执行StandardHostValve,然后再依次挪用Context的管道和Wrapper的管道,最后执行到StandardWrapperValve。

(3)当执行到StandardWrapperValve的时辰,会在StandardWrapperValve中建设FilterChain,并挪用其doFilter要领来处理赏罚哀求,这个FilterChain包括着我们设置的与哀求相匹配的Filter和Servlet,其doFilter要了解依次挪用全部的Filter的doFilter要领和Servlet的service要领,这样哀求就获得了处理赏罚!

(4)当全部的Pipeline-Valve都执行完之后,而且处理赏罚完了详细的哀求,这个时辰就可以将返回的功效交给Connector了,Connector在通过Socket的方法将功效返回给客户端。

总结

至此,我们已经对Tomcat的整体架构有了大抵的相识,从图A、B、C、D可以看出来每一个组件的根基要素和浸染。我们在脑海里应该有一个或许的外观了!假如你口试的时辰,让你简朴的聊一下Tomcat,上面的内容你能脱口而出吗?当你可以或许脱口而出的时辰,这位口试官必然会对你另眼相看的!

【编辑保举】

  1. 对不起 Linux,Kubernetes此刻是更重要的操纵体系!
  2. CentOS体系下PXE处事器的搭建与陈设
  3. 详解Tomcat 与 Nginx,Apache的区别及优弱点
  4. 误删除 Linux 体系文件了?这个要领教你办理
  5. [应用处事器]把握Tomcat应用处事器只需一分钟
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读