Tomcat基本原理与启动流程(一)

一、Tomcat server 基本结构

Tomcat基本结构

Tomcat最重要的两个组件是Connector(连接器)和Container(容器)。其中Connector是可以被替换的,这样可以提供给服务器设计者更多的选择。多个Connector与一个Container封装在一起(最主要的两个组成部分),就组成了一个Service。

1、Connector(连接器)

     Connector在指定的端口监听客户端的请求,并将从Socket连接接受到的请求封装成Request发送给Engine处理,并将处理后的结果封装为Response返回给客户端。

     Connector使用ProtocolHandler来处理请求,不同的ProtocolHandler代表不同的连接类型。例如:Http1.1Protocol使用的是Socket连接。ProtocolHandler包含三个组成部分:Endpoint、Processor、Adapter。

1.1、Endpoint

     实现类TCP/IP协议,处理底层的Socket网络连接。

     Endpoint的抽象实现AbstractEndpoint里面定义的Acceptor和AsyncTimeout两个内部类和一个Handler接口。Acceptor用于监听请求,AsyncTimeout用于检查异步Request的超时,Handler用于处理接收到的Socket,在内部调用Processor进行处理。

1.2、Processor

     Processor实现了Http协议,在这将Endpoint接受到的Socket连接封装成Request。

1.3、Adapter

     Adapter将封装好的Request转交给Engine做具体处理。

2、Container(容器)

     Container是一个接口,定义了下属的各种容器。

2.1、Engine

     负责处理来自所属service的全部请求,并经处理后的结果返回给service。每个Engine下可以配置多个虚拟主机(Host),用来匹配不同的请求。同时设有一个默认的Host,用来处理未能匹配到的请求。

2.2、Host

     每个Host代表一个虚拟主机,并匹配不同的域名。Host将匹配到的请求交给相应的context来处理。这里的每个context代表一个Web应用,一个Host可以包含多个Context。


Tomcat文件夹下默认的Host

2.3、Context

     一个Context对应一个应用,也即应用上下文,保存了应用运行期间所需的数据结构与中间变量。每个Context中包含多个Wrapper。

2.4、Wrapper

     每个Wrapper代表一个servlet,它负责管理servlet的装载、初始化、执行、资源回收。

二、Lifecycle

     用于管理组件的生命周期相,如:(init、start、stop、destroy)等操作。

1、LifecycleListener

     用于监听组件生命周期相关的事件。

2、LifecycleEvent

     当有生命周期时间发生时,用于事件的时间、类型和数据等信息。

三、Tomcat的启动过程

详情请见下一篇

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。