Tomcat笔记

总体架构:
由三部分组成:Service、Connector、Container
多个Connector对应一个Container,构成一个Service
为Service提供一个生存环境

如何处理多用户同时请求
1、用户浏览器请求
2、Connector将TCP信息封装,创建Request、response
3、开启一个线程将TCP信息,Request、Response传给Container容器
4、Container中的是个容器处理,返回request rsponse给客户端
5、request response对象生命周期结束,关闭当前Socket

多级容器如何协调工作:
略略略略略略

运用了哪些设计模式:
  门面设计模式:在大的系统中,每个子系统之间要进行互相通信,但内部的数据不能完全暴露给其他子系统,这样就不存在子系统之分了
         于是门面设计模式解决这一问题,他把其他子系统关系的数据暴露出来,构成一个访问门面,供其他子系统访问。
           如:Request Response对象的封装
  观察者设计模式:事件监听机制,如:session状态改变的监听
  任务链设计模式:每个对象对其下家的引用将很多对象串联起来构成一条任务执行链,请求在这条链上传递
                 优点.在不影响用户请求的情况下对这条链增添其他功能,优点想AOP思想
          Container中四大容器的相关联:Engine--->Host--->Context--->Wrapper

内存优化
windows修改TOMCAT_HOME/bin/catalina.bat,在前面加入
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m
-Xms java虚拟机初始化时的最小内存; 512
  -Xmx java虚拟机可使用的最大内存;1024
  -XX: PermSize 内存永久保留区域:64
  -XX:MaxPermSize 内存最大永久保留区域:128

线程优化:
<Connector port="80" protocol="HTTP/1.1" maxThreads="600" minSpareThreads="100" maxSpareThreads="500" acceptCount="700"
connectionTimeout="20000" redirectPort="8443" />
maxThreads="600" ///最大线程数
minSpareThreads="100"///初始化时创建的线程数
maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

禁用DNS查询
为了避免服务器获取难以的到的用户请求IP浪费时间,
可修改server.xml中Connector元素,修改属性enableLookups参数值: enableLookups="false"
如果为true,则可以调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名
若为false则不进行DNS查询,而是返回其ip地址‘

设置session过期时间
conf\web.xml中通过参数指定:

<session-config>
<session-timeout>180</session-timeout>
</session-config>
单位为分钟

缓存优化
1>参数说明

  compression 打开压缩功能
  compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
  compressableMimeType 压缩类型
  connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间

  2>Tomcat中的配置示例

  <Connector port="9027"
  protocol="HTTP/1.1"
  maxHttpHeaderSize="8192"
  maxThreads="1000"
  minSpareThreads="100"
  maxSpareThreads="1000"
  minProcessors="100"
  maxProcessors="1000"
  enableLookups="false"
  compression="on"
  compressionMinSize="2048"
  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
  connectionTimeout="20000"
  URIEncoding="utf-8"
  acceptCount="1000"
  redirectPort="8443"
  disableUploadTimeout="true"/>

时间: 2024-07-29 11:53:40

Tomcat笔记的相关文章

CAS+ tomcat 在同一台机器测试如何启动动多个tomcat笔记(三)

首先假定你的机器上已经安装配置好了一个tomcat,我们先拷贝这个tomcat到另外一个目录或是改一个名字放在同一个目录也行,然后配置新的tomcat的环境变量,在环境变量中已经存在如下图配置好的tomcat的环境变量 现在我们在新建一个新的tomcat的环境变量如下图 然后到新的tomcat的D:\apache-tomcat-6.0.29-client\bin目录下,修改该目录下的所有.bat后缀的文件中的CATALINA_HOME修改为CATALINA_HOME2(就是我们新配置的变量名),

Tomcat 笔记-目录简介

bin:启动和关闭tomcat的bat文件 conf:配置文件 server.xml该文件用于配置server相关的信息,比如tomcat启动的端口号,配置主机(Host) web.xml文件配置与web应用(web应用相当于一个web站点) tomcat-user.xml配置用户名密码和相关权限. lib:该目录放置运行tomcat运行需要的jar包 logs:存放日志,当我们需要查看日志的时候,可以查询信息 webapps:放置我们的web应用 work工作目录:该目录用于存放jsp被访问后

Tomcat 笔记-配置虚拟目录

,默认情况下,只有webapps下的目录才能被Tomcat自动管理成一个web站点,把web站点的目录分散到其他磁盘管理就需要配置虚拟目录.把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录的映射 方法一: 在${TOMCAT_NOME}/conf/server.xml文件中加入,如下代码.path表示的是访问时输入的web名,docBase表示的是站点目录的绝对路径 <Context path="/web1" docBase="path/of/web1&

Tomcat 笔记-设置虚拟主机

通过作用虚拟主机,可以使多个不同域名的网站共存于一个Tomcat中 在tomcat的server.xml文件中添加主机名: <Host name="hostname" appBase="path/of/web1"> <Context path="/web1" docBase="path/of/web1"/> </Host> host appBase属性 指定WEB应用程序的配置目录.是 to

Tomcat 笔记-配置域名

编辑/etc/hosts文件,添加域名: 127.0.0.1 localhost 127.0.1.1 ubuntu # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters

Tomcat介绍,安装JDK,安装Tomcat

笔记内容: 16.1 Tomcat介绍 16.2 安装jdk 16.3 安装Tomcat 笔记日期:2017-11-06 16.1 Tomcat介绍 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公司及个人共同开发而成.由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP

常去的学习网站

阿里:http://mirrors.aliyun.com/ 反思:更改yum源后  用yum clean  all  清除缓存 阿里云epel源:wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo 阿里的yum源更改: [[email protected] ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bac

Tomcat与MyEclipse 黑马笔记

Tomcat安装 软件体系结构 1 C/S结构 C/S结构即客户端/服务器(Client/Server),例如QQ就是C/S结构的.我们每个人电脑上都需要安装QQ的客户端,客户端软件向服务器端软件发送请求,服务器端给客户端返回响应. 但是,因为客户端需要不断的更新,用户使用起来就比较麻烦.现在的C/S结构的客户端已经好多了,可以提示用户更新,用户只需要点击更新就可以了.最早时需要用户自己去官网上下载最新客户端,然后把老版本卸载,再去安装新版本. 2 B/S结构 B/S结构即浏览器/服务器(Bro

how tomcat works 读书笔记四 tomcat的默认连接器

其实在第三章,就已经有了连接器的样子了,不过那只是一个学习工具,在这一章我们会开始分析tomcat4里面的默认连接器. 连接器 Tomcat连接器必须满足以下几个要求 1 实现org.apache.cataline.Connector接口 2 负责创建实现了org.apache.cataline.Request接口的request对象 3 负责创建实现了org.apache.cataline.Response接口的response对象 这里默认的连接器的原理很简单,就是等待http请求,创建re