栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

Tomcat(一)系统架构与原理

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Tomcat(一)系统架构与原理

Tomcat系统架构与原理 1、Tomcat Servlet处理流程

当用户请求某个url资源时

  • HTTP胡武器会把请求信息使用ServletRequest对象封装起来
  • 进一步去调用Servlet容器中某个具体的Servlet(根据URL和Servlet的映射关系,找到相应的Servlet)
  • 如果Servlet还未被加载,就用反射机制创建这个Servlet,并调用Servlet的init方法完成初始化
  • 接着调用这个具体Servlet的service方法来处理请求,请求处理结果使用ServletReponse对象封装
  • 把ServletResponse对象返回给HTTP服务器,HTTP服务器会把响应发送给客户端

​ tomcat是一个http服务器也是一个servlet容器

2、Tomcat总体架构

tomcat设计了两个核心组件连接器(Connector)和容器(Container)来完成Tomcat的两大核心功能

  • 连接器(Connector):负责对外交流,处理Socket连接,负责网络字节流与request和response对象的转换
  • 容器(Container):负责内部处理,加载和管理servlet,以及具体处理Request请求
3、连接器组件(Coyote)

Coyote是tomcat中连接器的组件名称,是对外的接口,客户端通过Coyote与服务器建立连接,发送请求并接受响应

  1. Coyote封装了底层的网络通信(Socket请求及网络处理)
  2. Coyote使Catalina容器与具体的请求协议及IO操作完全解耦
  3. Coyote将Socket输入转换封装为Request对象,进一步封装后交由Catalina容器进行处理,处理请求完成后,
    catalina通过Coyote提供的Response对象将结果写入输出流
  4. Coyote负责的是具体协议(应用层)和IO(传输层)相关内容
4、Coyote内部组件及流程

​ 请求来临时通过ProtocolHandler将请求封装为Tomcat原生Request对象,再通过Adapter转化为ServletRequest交给Container处理

组件作用
EndPoinEndPoin是Coyote通信端点,即通信监听接口,是具体Socket接收和发送处理器,
是对传输层的抽象,因此EndPoin用来实现TCP/IP协议
ProcessorProcessor是Coyote协议处理接口,如果说EndPoint是用来实现TCP/IP协议,那么
Processor用来实现HTTP协议,Processor接收来自EndPoint的socket,读取字节流
解析成Tomcat Request对象
ProtocolHandlerCoyote协议接口,通过EndPoint和Processor,实现针对具体协议的处理能力。
Adapter由于协议不同请求信息也不尽相同,Tomcat定义了自得Request类来封装这些请求信息。
CoyoteAdapter负责将Tomcat Request转成ServletRequest,再调用容器
5、容器组件(catalina)
  • ​ Tomcat是由一系列可配置的(conf/server.xml)组件构成的Web容器,而Catalina是Tomcat的Servlet容器

​ 其实,可以认为整个Tomcat就是一个Catalina实列,Tomcat启动的时候会初始化这实列,Catalina实列通过加载server.xml完成其他实列的创建,
创建并管理Server,Server创建并管理多个服务,每一个服务又可以有多个Connector和一个Container
​ 一个Catalina实列

​ 一个Server实列
​ 多个Service实列

​ 每个Service实列下可以有多个Connector实列和一container实列

  • Catalina
    负责解析Tomcat的配置文件,一次来创建服务器Server组件并进行管理

  • Server
    服务器表示整个Catalina Servlet容器以及其他组件,负责组装并启动Serlet引擎,Tomcat连接器,Servlet用过实现Lifecycle接口
    提供一种优雅的启动和关闭整个系统的方式

  • Service
    服务是Server内部组件,一个Server包含多个Service。它将若干个Connector

  • Container
    容器,负责处理用户的Servlet请求,并返回队形给Web用户的模块

    • Engine
      表示整个Catalina的Servlet引擎,用来管理多个虚拟站点,一个Service最多只能有一个Engine,但是一个引擎可包含多个Host
    • Host
      代表一个虚拟主机,或者说一个站点,可以给Tomcat配置多个虚拟主机地址,而一个虚拟主机下可包含多个Context
    • Context
      表示一个web应用程序,一个Web应用可包含多个Wrapper
    • Wrapper
      表示一个Servlet,Wrapper作为容器中的最底层,不能包含子容器
6、Tomcat核心配置(conf/server.xml)

主要标签结构


	
    
	
	
	
    

Server标签


	
    
	
    
	
    
	
    
	
    

	
	
        
	

  
 	...
  


Service标签


 ...

Executor标签


Connector标签


 
Engine标签


 ...

Host标签


 ...
 
Context标签


  
 
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911907.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号