查漏补缺:毗连器在Tomcat中是怎样计划的
这里我们发明协议处理赏罚器最终会挪用适配器(CoyoteAdapter),而适配器最终的事变是转换Request和Response工具为HttpServletRequest和HttpServletResponse,从而可以去挪用容器,到这里整个毗连器的流程和浸染我们就已经说明完了。 小结 那么我们往返想下整个流程,我画了一张时序图来声名: ![]() 这张图包括了两个流程,一个是组件的初始化,一个是挪用的流程。毗连器(Connector)首要初始化了两个组件,ProtcoHandler和EndPoint,可是我们从代码布局发明,他们两个是父子相关,也就是说ProtcoHandler包括了EndPoint。后头的流程就是各个子组件的挪用链相关,总结来说就是Acceptor认真吸取哀求,然后注册到Poller,Poller认真处理赏罚哀求,然后挪用processor处理赏罚器来处理赏罚,最后把哀求转成切合Servlet类型的request和response去挪用容器(Container)。点击免费“领取Java架构资料” 我们流程梳理清晰了,接下来我们来布局化的梳理下: 回到毗连器(Connector)是源码,我们发明,上述说的模块只有ProtocolHandler和Adapter两个属于毗连器中,也就是说,毗连器只包括了这两大子模块,那么后续的EndPoint、Acceptor、Poller、Processor都是ProtocolHandler的子模块。 而Acceptor和Poller两个模块的焦点成果都是在EndPoint 中完成的,以是是其子模块,而Processor较量独立,以是它和EndPoint是一个级此外子模块。 我们用图来声名下上述的相关: ![]() 按照上图我们可以知道,毗连器首要认真处理赏罚毗连哀求,然后通过适配器挪用容器。那么详细流程细化可以如下:
总结 我们从毗连器的源码,一步一步理会,说明白毗连器首要包括了两大模块,ProtocolHandler和Adapter。ProtocolHandler首要包括了Endpoint模块和Processor模块。Endpoint模块首要的浸染是毗连的处理赏罚,它委托了Acceptor子模块举办毗连的监听和注册,委托子模块Poller举办毗连的处理赏罚;而Processor模块首要是应用协议的处理赏罚,最后提交给Adapter举办工具的转换,以便可以挪用容器(Container)。其它我们也在说明源码的进程中增补了一些特殊常识点:
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |