`
mabusyao
  • 浏览: 252608 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Tomcat 源码学习 之 StandardService

 
阅读更多

 

类名 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来实现负载均衡。

分享到:
评论

相关推荐

    学习tomcat源码+英文《How Tomcat Work》和每一章的相关项目+tomcat6源码依赖jar

    总之,学习Tomcat源码不仅能够提升你对Web服务器底层工作的理解,还能够提高你在Java Web开发中的问题排查能力,让你成为一名更出色的开发者。通过阅读《How Tomcat Works》并结合实际项目实践,你将能够逐步揭开...

    tomcat 6 源码

    通过研究Tomcat源码,开发者可以学习到如何构建一个高性能的Servlet容器,掌握Java Web应用的核心运行机制,这对于提升Java EE开发能力大有裨益。同时,如果你遇到Tomcat的使用问题或者想要进行定制化开发,源码分析...

    tomcat7源码环境部署

    关键类如`Catalina`、`StandardServer`、`StandardService`和`StandardEngine`在启动和管理Tomcat的过程中起着重要作用。 4. **环境配置**: 配置Tomcat环境涉及设置JAVA_HOME环境变量,确保Java运行时环境可用。...

    Tomcat服务器源码

    Tomcat源码主要由以下几个关键组件构成: 1. **Catalina**:这是Tomcat的核心组件,负责处理Servlet容器的主要功能,包括Servlet和JSP的加载、调度和执行。Catalina的核心类是`org.apache.catalina.core....

    tomcat6源码

    《深入剖析Tomcat6源码》 ...通过对Tomcat6源码的分析,开发者不仅可以提升对Web服务器内部运作的理解,还能学习到如何优化性能、调试问题以及定制化开发。这将对Java Web开发和系统架构设计有着深远的影响。

    apache-tomcat-6.0.18源码

    Tomcat以其轻量级、高效和易用性而闻名,它是Apache软件基金会的项目之一。在这个源码版本中,我们可以深入理解Tomcat的工作原理以及其内部机制。 源码分析: 1. **目录结构**:解压后的源码文件夹通常包含`bin`、`...

    apache-tomcat-8.5.100-src Tomcat源码解析

    总之,Apache Tomcat的源码解析是一次深入学习Java Web技术的宝贵机会,它可以帮助你更好地理解Servlet和JSP的运行机制,提升你的开发和调试技能。通过实际操作编译源码,你可以进一步掌握Maven和Java构建流程,为...

    Tomcat源码研究

    总的来说,Tomcat源码研究涉及了网络编程、多线程、XML解析、安全策略等多个领域,深入学习可以帮助我们理解Web服务器的工作机制,提升编程技巧,更好地解决实际开发中的问题。同时,源码研究也能为我们提供定制化...

    Tomcat7 核心包 catalina包源码

    《深入解析Tomcat7 Catalina核心包源码》 Tomcat作为开源的Java Servlet容器,是Web服务器领域的重要角色,其高效、轻量级的特性深受开发者喜爱。在Tomcat7版本中,Catalina是核心组件之一,负责处理HTTP请求和响应...

    tomcat8.0源码

    总结,Tomcat 8.0源码的学习能帮助开发者深入理解Web服务器的工作原理,提升问题排查和性能优化的能力。通过阅读和分析源码,我们可以学习到包括容器管理、请求处理、JSP编译、线程调度等多个领域的知识,这将对Java...

    apache-tomcat-7.0.57-src可导入Myeclipse

    3. **定位源代码**:在“Select root directory”中,浏览并选择你刚刚解压的Tomcat源码目录。 4. **配置构建路径**:在导入的项目中,你需要配置Java构建路径,确保所有的依赖库都正确引用。这可能包括添加JDK和...

    TomcatSourceReview:Tomcat源码阅读

    总的来说,Tomcat源码阅读是一个深度学习Java Web技术的过程,涵盖了网络编程、多线程、容器管理、安全性等多个方面。通过这次源码探索,我们可以深入了解Web服务器的工作机制,为日常开发和问题排查提供有力支持。...

    apache-tomcat-9.0.0.M1-src

    通过对"apache-tomcat-9.0.0.M1-src"的源码学习,开发者可以深入了解Tomcat的工作机制,提升Web应用的开发、调试和优化能力。同时,这也是对Java EE规范实现的深入理解,对于从事Java Web开发的人来说,是一份宝贵的...

    tomcat6.0.39源代码

    9. **性能优化**:Tomcat源码中包含了很多可调整的参数和设置,如线程池大小、缓冲区大小、超时时间等,这些都是性能调优的关键。 10. **集群支持**:如果需要构建高可用的Tomcat集群,`Cluster`模块的源码提供了...

    Learning materials

    本文将基于标题"Learning materials",结合描述中的博文链接以及标签"源码"和"工具",详细探讨《How Tomcat Works (chinese).pdf》这份学习资料中所涵盖的关键知识点,帮助你深入理解Tomcat的工作原理。 1. **...

Global site tag (gtag.js) - Google Analytics