Overview
如图所示
-
Server
一个Server就是一个Tomcat容器,可以这样粗略理解:Server==Tomcat
-
Service
一个Server可以实现多个Service,一个Service是驻留在Server中的中间件,它将一个或多个Connector绑定到一个Engine。
接下来,对一个Service进行深入
如上图,一个Service是多个Connector与一个Container的组合
接上图
-
Connector
Connector负责去处理与客户端的多种多样的请求,在Tomcat中,有负责Http请求的HttpConnector,也有AJPConnector
在一个Connector中
-
EndPoint也就是通信端点,与客户端进行Socket通信,负责接收客户端的TCP/IP请求
可以通过配置网络IO(BIO,NIO,NIO2,APR)模型进行性能调优
-
Processor用来解析Http报文或AJP,将请求封装为Request对象
-
Adapter负责将原生Request对象转为ServletRequest或将ServletResponse转为Response
-
-
Container
如上图,在server.xml中,一个Server下面定义了一个Service,一个Service下面可以有多个Connector,但多个Connector对应一个Container
-
Engine
Engin表示特定Service的请求处理管道,接收来自Connector的所有请求,并且负责处理返回Response
-
Host
Host也就是网络名,在Tomcat中,一个Engine可能包含多个Host
-
Context
Context也就是一个应用,将之翻译为上下文并不太合适,一个Host主机可能有多个Application,这时就需要用Context来区分不同的Application
-
Wrapper