




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
概要:1. Tomcat各核心组件认知2. Tomcat server.xml 配置详解3. Tomcat IO模型介绍一、Tomcat各组件认知知识点:1. Tomcat架构说明2. Tomcat组件及关系详情介绍3. Tomcat启动参数说明1. Tomcat架构说明Tomcat是一个基于JAVA的WEB容器,其实现了JAVA EE中的 Servlet 与 jsp 规范,与Nginx apache 服务器不同在于一般用于动态请求处理。在架构设计上采用面向组件的方式设计。即整体功能是通过组件的方式拼装完成。另外每个组件都可以被替换以保证灵活性。那么是哪些组件组成了Tomcat呢?2.Tomcat 各组件及关系l Server 和 Servicel Connector 连接器 HTTP 1.1 SSL https AJP(Apache JServ Protocol) apache 私有协议,用于apache 反向代理Tomcatl Container Engine 引擎 catalina Host 虚拟机 基于域名 分发请求 Context 隔离各个WEB应用 每个Context的 ClassLoader都是独立l Component Manager (管理器) logger (日志管理) loader (载入器) pipeline (管道) valve (管道中的阀)3.Tomcat启动参数说明我们平时启动Tomcat过程是怎么样的? 1. 复制WAR包至Tomcat webapp 目录。2. 执行starut.bat 脚本启动。3. 启动过程中war 包会被自动解压装载。但是我们在Eclipse 或idea 中启动WEB项目的时候 也是把War包复杂至webapps 目录解压吗?显然不是,其真正做法是在Tomcat程序文件之外创建了一个部署目录,在一般生产环境中也是这么做的 即:Tomcat 程序目录和部署目录分开 。 我们只需要在启动时指定CATALINA_HOME 与 CATALINA_BASE 参数即可实现。 启动参数描述说明JAVA_OPTSjvm 启动参数 , 设置内存 编码等 -Xms100m -Xmx200m -Dfile.encoding=UTF-8JAVA_HOME指定jdk 目录,如果未设置从java 环境变量当中去找。CATALINA_HOMETomcat 程序根目录 CATALINA_BASE应用部署目录,默认为$CATALINA_HOMECATALINA_OUT应用日志输出目录:默认$CATALINA_BASE/logCATALINA_TMPDIR应用临时目录:默认:$CATALINA_BASE/temp可以编写一个脚本 来实现自定义配置:演示自定义启动Tomcatl 下载并解压Tomcatl 创建并拷贝应用目录l 创建Tomcat.shn 编写Tomcat.shn chmod +x tomcat.sh 添加执行权限l 拷贝conf 、webapps 、logs至应用目录。l 执行启动测试。#!/bin/bashexport JAVA_OPTS=-Xms100m -Xmx200mexport JAVA_HOME=/root/svr/jdk/export CATALINA_HOME=/usr/local/apache-tomcat-8.5.34export CATALINA_BASE=pwdcase $1 in start) $CATALINA_HOME/bin/catalina.sh start echo start success! ; stop) $CATALINA_HOME/bin/catalina.sh stop echo stop success! ; restart) $CATALINA_HOME/bin/catalina.sh stop echo stop success! sleep 2 $CATALINA_HOME/bin/catalina.sh start echo start success! ; version) $CATALINA_HOME/bin/catalina.sh version ; configtest) $CATALINA_HOME/bin/catalina.sh configtest ; esacexit 0二、Tomcat server.xml 配置详解Server 的基本基本配置: /GlobaNamingResources 元素说明:server root元素:server 的顶级配置主要属性:port:执行关闭命令的端口号shutdown:关闭命令l 演示shutdown的用法#基于telent 执行SHUTDOWN 命令即可关闭telent 8005SHUTDOWNservice服务:将多个connector 与一个Engine组合成一个服务,可以配置多个服务。Connector连接器:用于接收 指定协议下的连接 并指定给唯一的Engine 进行处理。主要属性:l protocol 监听的协议,默认是http/1.1l port 指定服务器端要创建的端口号l minThread服务器启动时创建的处理请求的线程数l maxThread最大可以创建的处理请求的线程数l enableLookups如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址l redirectPort指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号l acceptCount指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理l connectionTimeout指定超时的时间数(以毫秒为单位)l SSLEnabled 是否开启 sll 验证,在Https 访问时需要开启。l 演示配置多个ConnectorEngine引擎:用于处理连接的执行器,默认的引擎是catalina。一个service 中只能配置一个Engine。主要属性:name 引擎名称 defaultHost 默认hostHost虚拟机:基于域名匹配至指定虚拟机。类似于nginx 当中的server,默认的虚拟机是localhost.主要属性:l 演示配置多个Host Context应用上下文:一个host 下可以配置多个Context ,每个Context 都有其独立的classPath。相互隔离,以免造成ClassPath 冲突。主要属性:l 演示配置多个ContextValve阀门:可以理解成request 的过滤器,具体配置要基于具体的Valve 接口的子类。以下即为一个访问日志的Valve.三、Tomcat IO模型介绍知识点:1. Tomcat支持的IO模型说明2. BIO 与NIO的区别3. IO模型源码解读1、Tomcat支持的IO模型说明描述BIO阻塞式IO,即Tomcat使用传统的java.io进行操作。该模式下每个请求都会创建一个线程,对性能开销大,不适合高并发场景。优点是稳定,适合连接数目小且固定架构。NIO非阻塞式IO,jdk1.4 之后实现的新IO。该模式基于多路复用选择器监测连接状态在通知线程处理,从而达到非阻塞的目的。比传统BIO能更好的支持并发性能。Tomcat 8.0之后默认采用该模式APR全称是 Apache Portable Runtime/Apache可移植运行库),是Apache HTTP服务器的支持库。可以简单地理解为,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作。使用需要编译安装APR 库AIO异步非阻塞式IO,jdk1.7后之支持 。与nio不同在于不需要多路复用选择器,而是请求处理线程执行完程进行回调调知,已继续执行后续操作。Tomcat 8之后支持。使用指定IO模型的配置方式:配置 server.xml 文件当中的 修改即可。默认配置 8.0protocol=“HTTP/1.1” 8.0 之前是 BIO 8.0 之后是NIOBIOprotocol=“org.apache.coyote.http11.Http11Protocol“NIOprotocol=”org.apache.coyote.http11.Http11NioProtocol“AIOprotocol=”org.apache.coyote.http11.Http11Nio2Protocol“APRprotocol=”org.apache.coyote.http11.Http11AprProtocol“2、BIO 与NIO有什么区别分别演示在高并发场景下BIO与NIO的线程数的变化?演示数据:每秒提交数BIO执行线程NIO执行线程预测20020050实验环境2004837生产环境20041923结论:BIO 线程模型讲解NIO 线程模型讲解BIO 源码解读1. Http11Protocol Http BIO协议解析器a. JIoEndpointi. Acceptorimple
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电瓶电池知识培训内容课件
- 高空吊物安全知识培训课件
- 北京市社工证报考试卷及答案
- URAT1-inhibitor-13-生命科学试剂-MCE
- Dimethenamid-d3-生命科学试剂-MCE
- 北京安全员a考试题库及答案
- 软件开发服务合同(编号5)
- 护士转正考试题及答案
- 个人与团队管理机考试题及答案
- 真菌学考试题及答案
- 代运营协议合同范本
- 《人格障碍》课件
- 座位表模板(空白)
- 部编版高一语文必修上册教学计划
- 青岛版六三制四年级上册数学1万以上数的认识和读法教学课件
- GB∕T 27011-2019 合格评定 认可机构要求
- 私企接待应酬管理制度(3篇)
- YX51-380-760型金属屋面板专项施工方案(32页)
- 国际商务(International Business)英文全套完整课件
- 编制说明—《殡仪服务规范》
- 人教版六年级数学教材解读
评论
0/150
提交评论