Tomcat源码分析:6——Engine容器
2021/4/24 22:25:44
本文主要是介绍Tomcat源码分析:6——Engine容器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
6.Engine容器
Tomcat一共有四个容器,Engine是最大的。
Engine是全局的引擎容器,它的标准实现是StandardEngine
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kBYdkhSn-1619271794419)(
)]
Engine都包括什么呢?
6.1 Host——组件
Host是Engine的子容器,表示为一个虚拟主机。
6.2 AccessLog—— 访问日志
记录客户端访问记录的。
6.3 Pipeline——管道
Tomcat每个容器都有自己独立的PipeLine,通过PipeLine可以将四个级别的容器连起来。
该图讲解的很明白,来自书《Tomcat内核设计剖析》。
PipeLine的实现类
详解请看后面笔记。
6.4 Cluster——Engine集群
集群:集群通信系统是一种用于集团调度指挥通信的移动通信系统,主要应用在专业移动通信领域。该系统具有的可用信道可为系统的全体用户共用,具有自动选择信道功能,它是共享资源、分担费用、共用信道设备及服务的多用途、高效能的无线调度通信系统。
Tomcat主要有两个集群,Host与Engine。
关于集群参考笔记:(TODO)
6.5 Realm——域
Realm对象就是一个存储了用户、密码及权限等的数据对象,他的存储方式可以是内存、xml、数据库等。作用是配合Tomcat实现资源认证模块。详细内容参见后续笔记。
6.6 LifeCycleListener——生命周期监听器
第一次debug到Engine的生命周期监听器EngineConfig的时候非常疑惑,为什么只做了一件输出Log日志的事?
下面是EngineConfig的lifecycleEvent的实现方法。
@Override public void lifecycleEvent(LifecycleEvent event) { // Identify the engine we are associated with try { engine = (Engine) event.getLifecycle(); } catch (ClassCastException e) { log.error(sm.getString("engineConfig.cce", event.getLifecycle()), e); return; } // Process the event that has occurred if (event.getType().equals(Lifecycle.START_EVENT)) start(); else if (event.getType().equals(Lifecycle.STOP_EVENT)) stop(); } // -------------------------------------------------------- Protected Methods /** * Process a "start" event for this Engine. */ protected void start() { if (engine.getLogger().isDebugEnabled()) engine.getLogger().debug(sm.getString("engineConfig.start")); } /** * Process a "stop" event for this Engine. */ protected void stop() { if (engine.getLogger().isDebugEnabled()) engine.getLogger().debug(sm.getString("engineConfig.stop")); }
可以看出来这个监听器只是输出了一点日志,仅此而已。
后来才想明白,因为Tomcat只用一个Engine容器,然后这个容器已经在用digester解析server.xml等xml文件的时候建立并初始化了。
6.7 Log——日志
具体内容后续笔记推出
这篇关于Tomcat源码分析:6——Engine容器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南