IT评测·应用市场-qidao123.com技术社区
标题:
Tomcat体系架构(1)
[打印本页]
作者:
雁过留声
时间:
2024-6-11 09:57
标题:
Tomcat体系架构(1)
让我们从内到外讨论
tomcat设置文件
的功能组件,以便更好地关联事物。
Context–上下文
Context是一组称为容器的Tomcat组件的最内层元素,它
代表一个Web应用步伐
。Tomcat在加载应用步伐时自动实例化并设置标准上下文。作为设置的一部分,Tomcat还处理\WEB-INF\web.xml应用步伐文件夹文件中定义的属性,并使其可供应用步伐利用。
Connector–连接器
**连接器处理与客户端的通讯。**Tomcat有多个连接器,比方用于大多数HTTP流量的HTTP连接器和AJP连接器(将Tomcat连接到另一个Web服务器(如Apache HTTPD服务器)时利用的AJP协议)。
Tomcat的默认设置包括用于处理HTTP通讯的连接器。默认情况下,此连接器等候通过端口
8080发出的
请求。这就是为什么我们的示例的URL始终以http://localhost:8080/。请注意,对所有应用步伐的请求都通过此连接器的单个实例。每个新请求都会导致在请求连续时间内在连接器内保持活动状态的新线程的实例化。有关Tomcat的互联网上的文章通常将此连接器称为“
Coyote
”。
Connector的
connectionTimeout
属性设置为20000表示会话为5小时,33分钟,和不活动的20秒后终止,而**redirectPort =” 8443“**意味着,需要安全套接字层(SSL)输送到来的请求被重定向到端口8443。
AJP连接器允许Tomcat仅处理动态网页,并允许纯HTML服务器(比方,Apache Web服务器)处理静态页面的请求。这最大化了处理请求的效率。您可以解释掉这个连接器,由于本日tomcat本身非常快,或者只是如果您不打算与Tomcat一起利用Web服务器。
Host-主机
**主机是网络名称(比方www.yourdomain.com)与Tomcat服务器的关联。**主机可以包罗恣意数量的上下文(即应用步伐)。您可以在同一服务器上定义多个主机。比方,如果您已注册域yourdomain.com,则可以定义主机名,比方w1.yourdomain.com和w2.yourdomain.com。请记着,只有域名服务器将其名称映射到计算机的IP地址时,才能从Internet访问它。
Tomcat的默认设置包括名为
localhost的主机
。
localhost
和您的计算机之间的关联是通过在文件中写入条目来完成的C:\Windows\System32\drivers\etc\hosts。
Host属性“
appBase
”定义Tomcat安装文件夹中的应用步伐目录。然后,每个应用步伐由该目录中的路径标识。唯一的破例是路径ROOT,它映射到空字符串。localhost的应用步伐基目录是webapps。这意味着目录“ C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\ROOT\” 中的应用步伐由空字符串标识。因此,其URL为“ http://localhost:8080/”。对于驻留在ROOT以外的目录中的其他应用步伐,如“ C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\myapp\”,URL就像“ http://localhost:8080/myapp/”。
属性**autoDeploy =“true”**属性表示如果appBase在Tomcat运行时将应用步伐放在目录中,它将自动摆设。
Engine–引擎
**引擎表示特定服务的请求处理管道。**由于服务大概具有多个连接器,因此引擎吸取并处理来自这些连接器的所有请求,将响应交还给相应的连接器以传输到客户端。
引擎必须包罗一个或多个主机,其中一个主机被指定为默认主机。默认的Tomcat设置包括引擎Catalina,它包罗主机localhost(显然被指定为默认主机,由于它是唯一的主机)。Catalina引擎处理通过HTTP连接器吸取的所有传入请求,并发回相应的响应。它根据请求标头中包罗的信息将每个请求转发到正确的主机和上下文。
Service–服务
**服务是一个中间组件,它位于服务器内部,并将一个或多个连接器与一个引擎绑定。**Tomcat的默认设置包括Catalina服务,它将HTTP和AJP连接器与Catalina引擎相干联。因此,Connector和Engine是Service元素的子元素。
Service元素很少由用户自定义,由于默认实现简单而实用。
Server–服务器
**Server是顶级组件,代表Tomcat的一个实例。**它可以包罗一个或多个服务,每个服务都有自己的引擎和连接器。
现在让我们讨论上面利用的其他几个概念server.xml。
Listener–监听器
监听器是一个Java对象,通过实现org.apache.catalina.LifecycleListener接口,可以响应特定事件。
AprLifecycleListener
:启用Apache Portable Runtime(APR)库。该库为tomcat提供操作系统级支持。
JasperListener
:启用Jasper,它是JSP引擎。此侦听器可以重新编译已更新的JSP文档。
JreMemoryLeakPreventionListener
:处理大概导致内存泄漏的差别已知情况。
GlobalResourcesLifecycleListener
:负责实例化与全局Java命名和目录接口(JNDI)关联的托管bean。
ThreadLocalLeakPreventionListener
:还处理大概导致内存泄漏的差别已知情况。
GlobalNamingResources–命名资源
该GlobalNamingResources元素只能在Server组件中定义。**它定义了可在整个服务器上访问的JNDI资源。**默认情况下定义的唯一资源server.xml是通过该文件定义的基于用户和密码内存的数据库conf/tomcat-users.xml。
Realm
Realm组件可以出现在任何容器组件(Engine,Host和Context)中。
它表示用户,密码和用户脚色的数据库。其目的是支持基于容器的身份验证。
此外UserDatabaseRealm,还提供以下范畴类
JDBCRealm通过其JDBC驱动步伐连接到关系数据库),DataSourceRealm(连接到通过JNDI命名的JDBC数据源),JNDIRealm(连接到轻量级目录访问协议目录)和MemoryRealm(在内存中加载XML文件)。
Valve–阀门
Valve是类似拦截器的元素,当插入到Container(Context,Host或Engine)中时,会
在到达应用步伐之前拦截所有传入的HTTP请求
。这使您可以或许预处理指向特定应用步伐的请求; 到虚拟主机中运行的应用步伐或引擎中运行的所有应用步伐。
可以多次利用阀门,比方
该RemoteAddrValve阀可以让你选择性地允许或他们的源IP地址的基础上块的请求。它支持两个属性 - 允许和制止。
文末
对于很多初中级Android工程师而言,想要提升技能,每每是自己探索成长,不成体系的学习结果低效漫长且无助。 整理的这些架构技能盼望对Android开发的朋侪们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,盼望读者们能谨记这一点。
末了想要拿高薪实现技能提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,如许学习起来最为高效,以是为了各人可以或许顺遂进阶中高级、架构师,我特地为各人预备了一套高手学习的源码和框架视频等佳构Android架构师教程,包管你学了以后包管薪资上升一个台阶。
当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。
进阶学习视频
附上:我们之前由于秋招网络的二十套一二线互联网公司Android口试真题
(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包罗Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
《Android学习笔记总结+移动架构视频+大厂口试真题+项目实战源码》
,
点击传送门,即可获取!
《Android学习笔记总结+移动架构视频+大厂口试真题+项目实战源码》
,
点击传送门,即可获取!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4