设为首页 收藏本站
查看: 465|回复: 0

[经验分享] Tomcat 源码学习 之 StandardService

[复制链接]

尚未签到

发表于 2017-1-20 09:21:31 | 显示全部楼层 |阅读模式
类名org.apache.catalina.core.StandardService
继承关系LifecycleMBeanBase
Service
关联类Container
Connector
Excecutor
实现功能管理子组件

 
 
 
 
分析
从这节开始,我们就真正进入了对开发人员来说至关重要的一些内容,Connector,Container以及Excecutor。而所有这些,都是被StandardService类管理和维护的。
 
 
 
 
Connector
Tomcat官方对于Connector的定义这样的:A "Connector" represents an endpoint by which requests are。  received and response are returned. 也就是说,Connector是Tomcat接受Request和发送response的端口。
 
Tomcat目前支持两种Connector:
 

  • HTTP
  • AJP
HTTP Connector
Http Connector顾名思义,是Tomcat用来接收HTTP Request和发送HTTP Response的端口,支持HTTP/1.1协议。正是因为拥有了HTTP Connector, Tomcat得以处理servlet和JSP页面,并可以被用作独立的web Server。而HTTP Connector监听server上的某个端口,并将request发送到后台的Engine中进行处理,并返回response.
 
对于每一个request, Connector都会使用一个单独的线程来处理。如果request数量大于线程数量,Connector就会创建更多的线程,直到达到峰值。后面再来的request就会被丢弃。(拒绝服务攻击就是基于这样的原理)
 
Tomcat7中使用的HTTP Connector的代号是Coyote.
AJP Connector
相应的,AJP Connector支持AJP协议,其通常被用于两个web connector之间的通讯。
 
常用的case是当你希望将Tomcat集成到Apache中时,你希望Apache帮你处理静态内容,而Tomcat专注于动态内容时,AJP Connector便可以从中协调。
 
 
Executor
Executor是一个可以在Tomcat各个组件中共享的线程池。Tomcat在过去版本中,曾经有过各个组件拥有自己的线程池,但现在你可以用Executor在各个组件中共享,提高性能。
 
 
Container
Tomcat 7中包含以下几种Container:
 

  • Context
  • Engine
  • Host
  • Cluster
Context
一个Context代表了一个web application. 而根据Sevlet Specification中的描述,WAR包或者具有WAR包文件结构的文件夹都可以被认为是一个web application. 因此,对于部署在Tomcat中的每一个应用,都相应的是一个Context.
 
任何一个Context都包含在一个Host中。
 
Engine
Engine包含了整个request机制的流程,当Connector接收到request后,就发送给Engine来处理。
 
Host
Host是一台虚拟主机,一个虚拟主机会拥有一个独立的网络服务器名,这个名字会在DNS上注册并供客户访问使用。
 
任何一个host都包含在Engine中。
 
Cluster
Tomcat的cluster提供了会话复制,上下文属性复制已经全局WAR包部署等功能。我们可以通过配置Cluster来实现负载均衡。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-330993-1-1.html 上篇帖子: 翻译《how tomcat works》 下篇帖子: tomcat 绿色版配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表