一文读懂Tomcat组件--一个Web服务器的架构演化史

开发 前端 服务器
tomcat是一个web容器,可以将web应用部署到tomcat,由它提供web服务,一个web容器中可以部署多个web应用,这些web应用可以是同一个域名,也可以是多个域名的服务。

[[278594]]

1. tomcat是谁?

 

一文读懂tomcat组件--一个web服务器的架构演化史

 

2. tomcat可以做什么?

tomcat是一个web容器,可以将web应用部署到tomcat,由它提供web服务,一个web容器中可以部署多个web应用,这些web应用可以是同一个域名,也可以是多个域名的服务。

3. tomcat有哪些组件

 

一文读懂tomcat组件--一个web服务器的架构演化史

 

4.怎么快速理解这些组件呢?

我们可以假设我们来设计一个web容器,我们该什么设计?

第一代:接收请求,处理请求,返回结果集中到整个web容器中,

如下图所示:

 

一文读懂tomcat组件--一个web服务器的架构演化史

 

第二代 :连接管理和处理逻辑分开

使用过程中发现,每次都要打开socket的连接,调用处理逻辑,然后关闭socket连接比较烦,干脆将socket的连接关闭交给Connector来处理,请求的业务逻辑交给Container来处理好了,就变成这样了。

 

一文读懂tomcat组件--一个web服务器的架构演化史

 

第三代:支持多种网络协议

最初的目标是设计一个web服务器或者容器,那么如果想要支持更多的协议就需要新建不同的Connector和Container,此时就变成这样子了,其中service包装了Connector和Container

 

一文读懂tomcat组件--一个web服务器的架构演化史

 

第四代:支持多个web应用

既然是容器,就要支持多个应用,每个应用是有一个Context,且相互隔离,支持多个Context的架构如下:

 

一文读懂tomcat组件--一个web服务器的架构演化史

 

第五代:支持多域名

Context上下文不仅仅需要物理上的隔离,也需要逻辑上的隔离,如app1.example.com访问context1,app1.test.com访问context2.

此时的架构应该是这样的,host可以支持多个context。

 

一文读懂tomcat组件--一个web服务器的架构演化史

 

5.总结:

web服务器的组件由server-->满足功能

server+connector+Container-->职责分离

server+service+connector+Container-->支持多种协议

server+service+connector+Container+context-->支持多个应用

server+service+connector+Container+host+context -->支持多个域名的多个应用

其实就是一个分工组件细化的过程,类似于社会分工的细化,注意,Container在tomcat里也称作engine。

 

责任编辑:武晓燕 来源: 今日头条
相关推荐

2018-08-22 17:58:01

数据平台数据仓库架构

2019-11-05 10:47:16

Python框架服务器

2023-11-27 17:35:48

ComponentWeb外层

2021-05-18 09:48:58

前端开发架构

2020-12-30 09:05:24

架构微内核系统

2018-06-06 10:35:14

架构优劣势选型

2023-08-01 19:11:05

浏览器本地存储

2020-04-13 16:05:25

JS装饰器前端

2023-11-08 08:21:52

MVPMVVMMVI

2021-01-18 12:31:46

物联网

2019-05-28 10:30:16

Java架构微服务

2019-09-20 09:12:03

服务器互联网TCP

2019-08-20 08:56:18

Linux设计数据库

2022-09-21 16:56:16

设计模式微服务架构

2022-04-26 06:04:11

零信任网络安全

2023-07-26 10:21:26

服务端组件客户端

2019-04-24 15:13:16

Web服务器应用服务器Web容器

2022-09-21 09:04:07

Python装饰器

2018-08-03 16:00:09

人工智能神经网络高级算法

2009-08-19 09:40:57

软件方法论
点赞
收藏

51CTO技术栈公众号