tomcat系统架构简介

    tomcat有两个核心组件,即connector与container,一个container可以选择对应多个connector,container与connector共同组成了service,tomcat就是由service对外提供服务的,service的生存环境也就是server了,如下图:


 下面简单介绍一下这几个东东。。。

1)  connector主要负责对外交流,接收浏览器发过来的TCP连接请求,创建一个Request和Response对象分别用于和请求端交换数据,然后会产生一个线程来处理这个请求并把产生的Request和Response对象传给处理这个请求的线程,处理这个请求的线程就是Container组件的任务了。这是一个多线程的处理方式,是Connector设计的核心。

2)  container主要处理connector接受的请求,主要处理内部事务。Container是所有容器的父接口,所有子容器都必须实现这个接口,Container容器的设计用的是典型的责任链的设计模式。它由四个子容器组件构成,分别是Engine、Host、Context、Wrapper,这四个组件不是平行关系,而是父子关系,Engine包含Host,Host包含Context,Context包含Wrapper。Engine容器定义了一些基本的关联关系,Host负责运行多个应用,安装和展开应用,并标识这个应用以便能够区别它们,Context容器处理关联子容器外,还保存一个主机应有的信息,具备了Servlet运行的基本环境,Wrapper代表一个Servlet,负责管理一个servlet

3)  service在connector和container外面多包一层,把它们组装在一起,并初始化它下面的其他组件(如上图中的Jasper、naming等),然后向外提供服务。service可以设置多个connector,但是只能有一个container。

4)  server的任务就是提供一个接口让其他程序能够访问到这个service集合,同时维护它所包含的所有service的生命周期,包括如何初始化、如何结束服务、如何找到别人要访问的service。

5)  tomcat中组件的生命周期都在一个Lifecycle的接口中控制,组件只要继承这个接口并实现其中的方法就可以统一被拥有它的组件控制了。这样一层一层的直到一个最高级的组件就可以控制tomcat中所有组件的生命周期了,这个最高级的组件也就是server了,而控制server的就是Startup,也就是启动和关闭tomcat

猜你喜欢

转载自hejiawangjava.iteye.com/blog/2311623