
文章插图
如上图所示 , 在非阻塞I/O方式下 , Connector的结构类似阻塞模式 , Http11Protocol组件改成Http11NioProtocol组件 , JIoEndpoint组件改成NioEndpoint, Http11Processor组件改成Http11NioProcessor组件 , 这些类似的组件的功能也都类似 。唯独多了一个Poller组件 , 它的职责是在非阻塞I/O方式下轮询多个客户端连接 , 不断检测、处理各种事件 , 例如不断检测各个连接是否有可读 , 对于可读的客户端连接则尝试进行读取并解析消息报文 。
5. Engine组件#Tomcat内部有4个级别的容器 , 分别是Engine、Host、Context和Wrapper 。Engine代表全局Servlet引擎 , 每个Service组件只能包含一个Engine容器组件 , 但Engine组件可以包含若干Host容器组件 。除了Host之外 , 它还包含如下组件 。
- Listener组件:可以在Tomcat生命周期中完成某些Engine容器相关工作的监听器 。
- AccessLog组件:客户端的访问日志 , 所有客户端访问都会被记录 。
- Cluster组件:它提供集群功能 , 可以将Engine容器需要共享的数据同步到集群中的其他Tomcat实例上 。
- Pipeline组件:Engine容器对请求进行处理的管道 。
- Realm组件:提供了Engine容器级别的用户-密码-权限的数据对象 ,
- Listener组件:可以在Tomcat生命周期中完成某些Host容器相关工作的监听器 。
- AccessLog组件:客户端的访问日志 , 对该虚拟主机上所有Web应用的访问都会被记录 。
- Cluster组件:它提供集群功能 , 可以将Host容器需要共享的数据同步到集群中的其他Tomcat实例 上 。
- Pipeline组件:Host容器对请求进行处理的管道 。
- Realm组件:提供了Host容器级别的用户-密码-权限的数据对象 , 配合资源认证模块使用 。
- Listener组件:可以在Tomcat生命周期中完成某些Context容器相关工作的监听器 。
- Filter组件:过滤器组件 , 提供统一的业务逻辑处理 。
- AccessLog组件:客户端的访问日志 , 对该Web应用的访问都会被记录 。
- Pipeline组件:Context容器对请求进行处理的管道 。
- Realm组件:提供了Context容器级别的用户-密码-权限的数据对象 , 配合资源认证模块使用 。
- Loader组件:Web应用加载器 , 用于加载Web应用的资源 , 它要保证不同Web应用之间的资源隔离
- Manager组件:会话管理器 , 用于管理对应Web容器的会话 , 包括维护会话的生成、更新和销毁 。
- NamingResource组件:命名资源 , 它负责将Tomcat配置文件的server.xml和Web应用的context.xml资源和属性映射到内存中 。
- Mapper组件:Servlet映射器 , 它属于Context内部的路由映射器 , 只负责该Context容器的路由导航.
- Wrapper组件:Context的子容器 。
- Servlet组件:Servlet即Web应用开发常用的Servlet , 我们会在Servlet中编写好请求的逻辑处理 。
- ServletPool组件:Servlet对象池 , 当Web应用的Servlet实现了SingleThreadModel接口时则会在Wrapper中产生一个Servlet对象池 。线程执行时 , 需先从对象池中获取到一个Servlet对象 , ServletPool组件能保证Servlet对象的线程安全 。
- Pipeline组件:Wrapper容器对请求进行处理的管道 。
- 一年级单韵母有哪些字母-单韵母有哪些字母整体认读音节-
- Nginx 推出 Kubernetes 微服务参考架构
- 分布式架构的演进过程
- 一篇文章带你看懂Yarn的基本架构
- 经验总结干货 程序员的架构师之路:如何做整体技术架构
- 彻底理解Android架构,打造一个令人眼前一亮的项目架构
- TIDB架构自我总结
- 软件架构、框架、模式、模块、组件、插件、中间件一文打尽
- 剖析架构师工作过程,解密解决方案架构师何以称为销售的军师
- AMD|四连击!AMD主动曝光下代GPU架构:APU史诗级变脸
