一文读懂Tomcat组件--一个Web服务器的架构演化史
1. tomcat是谁?
![一文读懂tomcat组件--一个web服务器的架构演化史](https://s2.51cto.com/oss/201910/09/1ca9b2fe762a53aafbb0d639c5ea9117.jpeg)
2. tomcat可以做什么?
tomcat是一个web容器,可以将web应用部署到tomcat,由它提供web服务,一个web容器中可以部署多个web应用,这些web应用可以是同一个域名,也可以是多个域名的服务。
3. tomcat有哪些组件
![一文读懂tomcat组件--一个web服务器的架构演化史](https://s3.51cto.com/oss/201910/09/e21c6d47169dac997e38a2d1a21cc972.jpeg)
4.怎么快速理解这些组件呢?
我们可以假设我们来设计一个web容器,我们该什么设计?
第一代:接收请求,处理请求,返回结果集中到整个web容器中,
如下图所示:
![一文读懂tomcat组件--一个web服务器的架构演化史](https://s1.51cto.com/oss/201910/09/64e3052ba491dc485fbb427c6c20f79c.jpeg)
第二代 :连接管理和处理逻辑分开
使用过程中发现,每次都要打开socket的连接,调用处理逻辑,然后关闭socket连接比较烦,干脆将socket的连接关闭交给Connector来处理,请求的业务逻辑交给Container来处理好了,就变成这样了。
![一文读懂tomcat组件--一个web服务器的架构演化史](https://s4.51cto.com/oss/201910/09/e0792cfebbe0e2751a94d34f7d40c84e.jpeg)
第三代:支持多种网络协议
最初的目标是设计一个web服务器或者容器,那么如果想要支持更多的协议就需要新建不同的Connector和Container,此时就变成这样子了,其中service包装了Connector和Container
![一文读懂tomcat组件--一个web服务器的架构演化史](https://s3.51cto.com/oss/201910/09/2ada1209d0e85919e5a81ba6823f44bc.jpeg)
第四代:支持多个web应用
既然是容器,就要支持多个应用,每个应用是有一个Context,且相互隔离,支持多个Context的架构如下:
![一文读懂tomcat组件--一个web服务器的架构演化史](https://s5.51cto.com/oss/201910/09/199a15e4feb8c478d78806900a4cc882.jpeg)
第五代:支持多域名
Context上下文不仅仅需要物理上的隔离,也需要逻辑上的隔离,如app1.example.com访问context1,app1.test.com访问context2.
此时的架构应该是这样的,host可以支持多个context。
![一文读懂tomcat组件--一个web服务器的架构演化史](https://s5.51cto.com/oss/201910/09/67f7e36d20d8b79a817f1cd24e0fb80a.jpeg)
5.总结:
web服务器的组件由server-->满足功能
server+connector+Container-->职责分离
server+service+connector+Container-->支持多种协议
server+service+connector+Container+context-->支持多个应用
server+service+connector+Container+host+context -->支持多个域名的多个应用
其实就是一个分工组件细化的过程,类似于社会分工的细化,注意,Container在tomcat里也称作engine。
相关文章
- Jease 2.6发布 Java开源内容框架
- JVM调优总结:反思
- JVM调优总结:调优方法
- JVM调优总结:新一代的垃圾回收算法
- JVM调优总结:典型配置举例
- JVM调优总结:分代垃圾回收详述
- JVM调优总结:垃圾回收面临的问题
- JVM调优总结:基本垃圾回收算法
- JVM调优总结:一些概念
- 用Java GUI编写的画板程序
- Java的动态绑定机制
- jOOQ 2.0.2发布 Java的ORM框架
- Java中带复选框的树的实现和应用
- Java网络编程菜鸟进阶:TCP和套接字入门
- 甲骨文与谷歌专利权之争定于今年三月开审
- Java调用C/C++编写的第三方dll动态链接库
- 集成开发环境 NetBeans IDE 7.1正式版发布
- kangle 2.7.5紧急发布 防hash碰撞攻击
- 东方通技术引领模式为国产软件“争权”
- UML中关联,组合与聚合等关系的辨析