总体架构:
由三部分组成: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"/>

Tomcat笔记的更多相关文章

  1. 深入剖析tomcat 笔记——第8章 载入器

    深入剖析tomcat 笔记 目录:

  2. Docker 部署mysql、tomcat笔记

    Docker 笔记整理 #.环境:Ubuntu 18.* #.安装 mysql 5.6.tomcat #.docker search mysql 报错:Error response from daem ...

  3. 关于在云服务器上部署tomcat笔记

    tomcat无法启动的原因有:1.由于在tomcat里JVM没有配好,他默认的是批向c:\program file\Java下的那一个,如果你确认 这没有删掉,JVM指向你自己安装的jdk\jre试试 ...

  4. Tomcat 笔记-设置虚拟主机

    通过作用虚拟主机,可以使多个不同域名的网站共存于一个Tomcat中 在tomcat的server.xml文件中添加主机名: <Host name="hostname" app ...

  5. Tomcat 笔记-配置虚拟目录

    ,默认情况下,只有webapps下的目录才能被Tomcat自动管理成一个web站点,把web站点的目录分散到其他磁盘管理就需要配置虚拟目录.把web应用所在目录交给web服务器管理,这个过程称之为虚拟 ...

  6. Tomcat 笔记-目录简介

    bin:启动和关闭tomcat的bat文件 conf:配置文件 server.xml该文件用于配置server相关的信息,比如tomcat启动的端口号,配置主机(Host) web.xml文件配置与w ...

  7. Tomcat笔记 #01# WEB应用管理工具简介

    索引 查看JVM以及SERVLET/接口的情况 动态管理WEB应用 Tomcat自带了一个基于网页的web应用管理工具,可以帮助我们监控&管理部署上去的WEB APP,特别方便!恰好之前碰到的 ...

  8. Tomcat笔记:Tomcat的执行流程解析

    Bootstrap的启动 Bootstrap的main方法先new了一个自己的对象(Bootstrap),然后用该对象主要执行了四个方法: init(); setAwait(true); load(a ...

  9. apache/tomcat笔记

    apache是什么? apache http server 简称apache是世界上排名前列的web服务器,因开源,简单,高性能,速度快,还可以做代理服务器,所以广受人们欢迎 httpd:httpd是 ...

随机推荐

  1. 解决MySql无法远程连接

    安装完MySql后远程通过Navicat访问时报错: ERROR 1130: Host ***.***.***.*** is not allowed to connect to this MySQL ...

  2. Android Binder

    http://blog.csdn.net/luoshengyang/article/details/6618363   Android进程间通信(IPC)机制Binder简要介绍和学习计划

  3. gridview的rowdeleting这个函数总是不执行

    今天在做新闻管理时,管理数据的时候需要弹出确认删除的功能,可是此功能总是不能够实现,调试的时候也执行不到该方法,后来方向是忘记给button加上一个属性: 把CommandName设置为delete. ...

  4. Linux学习 :按键信号 之 异步通知

    一.异步通知概念: 异步通知是指:一旦设备就绪,则主动通知应用程序,应用程序根本就不需要查询设备状态,类似于中断的概念,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的.信号是异步的,一个进 ...

  5. as3延迟处理

    查找关键字“flashplayer 弹性跑道” 每当一帧即将走完,FlashPlayer就要做些总结性工作(一次性地汇总变化),把这一帧当中发生的变化拿出来展示(渲染)一下. 如果它处理的事情少,工作 ...

  6. java数据结构_附11_图的接口定义

    图的接口定义 Graph public class UnsupportedOperation extends RuntimeException {public UnsupportedOperation ...

  7. RS232,RS422串口标准小结

    RS232和RS422都是广泛使用的异步串行接口标准.由于它们实现简单且占用IO口资源少,在低速传输下是不错的方案. RS232是单端走线,最高波特率为115200,传输最远距离不超过150米,它的逻 ...

  8. docker push 实现过程

    这一篇文章分析一下docker push的过程:docker push是将本地的镜像上传到registry service的过程: 根据前几篇文章,可以知道客户端的命令是在api/client/pus ...

  9. PKU 1003解题

    首先庆祝一下,今天连A了3题.感觉后面这题太简单了.. 由于英文不好 ,找了个翻译: 若将一叠卡片放在一张桌子的边缘,你能放多远?如果你有一张卡片,你最远能达到卡片长度的一半.(我们假定卡片都正放在桌 ...

  10. 1st贝塞尔函数的使用

    x=-100:0.1:100; y1=besselj(7,x);y2=besselj(10,x);y3=besselj(20,x);y4=besselj(40,x);y5=besselj(60,x); ...