读书笔记--Tomcat架构解析

Tomcat总体架构

总体设计

版本1
Server : 负责接收和解析请求,并处理业务逻辑

版本2
Server (功能解耦,产生两个模块.便于拓展)
	connector : 负责接收和解析请求
  container : 并处理业务逻辑


'多个connector和container时,如何建立映射关系?'
版本3
Server (包含多个service,同一service中connector和container相对应)
	service1
  	connector 
    container[即Engine]
  service2
  ...
  
  
 '服务器是用来部署运行web应用的,是一个运行环境,应该支持多个web应用的运行和管理,
 请求接收后,引擎能够找到相应的web应用来处理'
 版本4
 Server
 	service
 		connector
     engine
     	context1 (web应用)
   		context2 (web应用)
       ...
  
  
'如何在一台服务器实例下实现多域名?'
版本5
Server
	service
		connector
		engine
      host1(虚拟主机)
        context1 (web应用)
        context2 (web应用)
        ...
      host2(虚拟主机)

  
'context表示一个web应用,一个应用下应该包含多个servlet实例来处理不同请求'
最终版
Server
	service
		connector
		engine
      host1(虚拟主机)
        context1 (web应用)
        	wrapper1(servlet)
          wrapper2
        context2 (web应用)
        ...
      host2(虚拟主机)
  
  
  
组件说明
server表示整个servlet容器  
engine表示servlet引擎,负责处理请求
	不同的engine实现,可以包含host,也可以包含context.默认实现standardEngine只能包含host

服务器组件关系图

在这里插入图片描述

概念抽象复用

  • 容器概念
  1. 用来处理请求逻辑并返回响应的组件,有些容器本身不处理,但会委派到子容器
  2. 容器包含级别概念,根据需求的不同复杂度,设定不同的嵌套(模型设计的可伸缩性)
  • 生命周期Lifecycle

现有组件都存在启动/停止等生命周期方法,进行接口抽象

在这里插入图片描述

  • 管道和阀

在增强组件的灵活性和拓展性方法,责任链模式是一种较好的选择.
Tomcat采用该模式实现客户端请求的处理,在Tomcat中每个container组件通过执行一个职责链来完成请求处理.
Tomcat定义了 pipeline(管道)和valve(阀)接口,前者用于构造职责链,后者表示职责链上的每个处理器

在这里插入图片描述

连接器设计

需要完成哪些功能?

  • 监听端口,接收请求
  • 支持多种通信协议
  • 根据请求,找到对应的servlet容器来处理
  • 返回响应

在这里插入图片描述

服务器完整设计图

在这里插入图片描述

组件总结

在这里插入图片描述
在这里插入图片描述

参考: <Tomcat架构解析>.看Tomcat原理,找了很多书,个人感觉这本讲的最好,引导启发性思考,非常推荐

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值