欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

tomcat组件图解 一个web服务器的架构演化史

程序员文章站 2022-03-18 14:43:08
1. tomcat是谁? 2. tomcat可以做什么? tomcat是一个web容器,可以将web应用部署到tomcat,由它提供web服务,一个web容器中可以...

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。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。