|
|
51CTO旗下网站
|
|
移动端

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

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

作者:前端王小明来源:今日头条|2019-10-09 16:14

【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》

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。

【编辑推荐】

  1. 一文读懂客户端请求是如何到达服务器的
  2. 查漏补缺:连接器在Tomcat中是如何设计的
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

CentOS 8 全新学习术

CentOS 8 全新学习术

CentOS 8 正式发布
共16章 | UbuntuServer

72人订阅学习

用Python玩转excel

用Python玩转excel

让重复操作傻瓜化
共3章 | DE8UG

201人订阅学习

AI入门级算法

AI入门级算法

算法常识
共22章 | 周萝卜123

165人订阅学习

读 书 +更多

网管员必读—超级网管经验谈(第2版)

本书的第1版获得过“2006年度全行业优秀畅销品种奖”。全书共15章,分别介绍了网管员职责和应具备的工作习惯、共享上网与访问控制方法、子...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微