tomcat部署及优化

tomcat:

  • 开放源代码web应用服务器,是基于jave代码开发的,就是处理动态请求和基于java代码的页面开发

可以在html当中写入java代码,tomcat可以解析html页面当中的java,执行动态请求,动态页面

tomcat的缺点:

  • 机制有问题: 不对tomcat进行优化,会出现: 假死、停机。小集群,小服务,小应用使用于tomcat,大并发的场景不适用

tomcat的优点:

  1. 免费
  2. 开源,可以二次封装
  3. 可配置性强,可以根据需要进行自定义配置,包括端口号,虚拟主机,等等.
  4. 安全性:tomcat自带安全机制,可以配置用户认证、授权、加密传输。
  5. 部暑应用非常快捷:tomcat会自动部署,自动运行

tomcat部署及优化_第1张图片

 核心三组件:

  • web容器:

完成web服务器的功能,web应用。

web------------>http(s)------访问页面---------------->文件index.jsp

web容器中,封装了一组文件,在这一组文件之中,进行集中化管理web动态页面。

  • servlet容器:

名字: catalina,处理servlet代码就是处理web请求(http),以及生成动态内容的java类处理http请求。

  • jsp:

jsp动态页面翻译成servlet代码,用标准格式,展示isp的静态页面。

servlet的功能:

  1. 处理http请求

  2. 生产动态内容,为了和数据库交互-----》用户发起的;jsp当中的。

  3. 会话管理,跟用户在不同请求之间的状态,通过管理,可以在用户访问不同页面时保持用户的状态.

  4. 与数据库交互,servlet可以连接到数据库,执行查询和更新操作,这就是servlet能够生成动态内容的原因。

jsp: ( java server pages )

动态页面的开发技术。使用jsp标签indexjsp 在html页面中插入java代码

jsp容器---》html页面当中的java代码翻译-----》执行----》展示结果

通常以 <%,开头   %>,结尾

功能组件:

  • connector:负载对外接受和响应请求,是tomcat与外界的交通枢纽。监听端口,也可以接受外界请求,交给container处理。

  • container:负责对内处理业务逻辑。

  • Engine:引擎,管理虚拟机(service,一个service里面可以包含多个虚拟主机。),可以管理多个虚拟主机,一个service里面只能有一个Engine:

  • Host: 代表一个虚拟机,也可以叫站点

  • Context :web应用。包含多个servlet。

  • wrapper: 封装器,最底层,每一个wrapper封装 个servlet,负责对象实例的创建,执行,销毁。

       ( 父子关系,工作方式也是从上到下 )

exportJAVA_HOME=/usr/java/jdk1.8.0 201-amd64
#指定jdk的安装路径。jdk解释器,类似于shell,各种工具。

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$]AVA_HOME/lib/dt.jar
classpath: 定义类的环境变量,环境类的库。

export PATH=AVA_HOME/bin:$PATHI
#可执行文件

tomcat主要配置文件:

  1. bin: 存放的启动和关闭tomcat脚本文件

  2. lib:tomcat运行库的iar包,一般不动,除非连接第三方-----redis,数据库

  3. logs:日志文件

  4. webapps: web应用部署的默认目录

  5. work:tomcat的工作目录。存放isp编译之后的class文件,清楚tomcat缓存,就是删work目录,

  6. conf:主配置文件 serverxml主配置文件       

                contex.html :host的默认配置信息

                tomcat-userxml : 认证用户密码的配置文件

                web.xml:配servlet servlet的规范标准

JVM:就是java的虚拟机,是java应用程序在计算上运行的核心组件,

  • jvm负责将编译后的java字节码(class文件)解释或者编译成本地的机器码,计算机能够执行它。JVM还提供好了内存管理,垃圾回收,线程管理。确保java程序在不同平台可以有一致性的功能。

tomcat部署及优化_第2张图片

PA Eden Space :堆内存,存储新创建的对象

PS Old Gen :堆内存,存储存储长时间存活的对象

PS Survivor Space :堆内存,存储创建之后,生命周期较短的对象

Code Cache :非堆内存,存储已经编译的代码

Compressed Class Space :非堆内存,存储已经压缩的类

Metaspace :非堆内存,存储类的元数据

命令:

JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -Xmn768m -XX:ParallelGCThreads=2 -XX:PermSize=1024m-XX:MaxPermSize=1024m -Djava.awt.headless=true -XX:+DisableExplicitGc"

-server:第一个参数,指定内存池,一定放在第一个。

-Xms2048m:初始java堆的大小。分配JVM的最小内存,看cpu:cpu性能高,这个值,可以设高一点

-Xmx2048m:JAVA堆最大能多大,m的最大内存。和硬件内存挂钓。根据官方文档,起始值和最大值保持一致,XMS和XMX设为一样的,内存可以设为物理内存的一般。

-Xmn768m : 新生代的内存大小。官方推荐为了整个堆大小的3/8.

-XX:ParallelGCThreads=2: 配置并行收集器的线程数,同时可以有多少个线程进行垃圾回收。

-Xx:Permsize: 设置持久代内存的大小,默认是物理内存的1/4。

-XX:MaxPermsize=1024m: 最大的非堆内存的大小,默认也是物理内存的1/4;

-Djava.awt.headless=true: 避免在linux环境下,web不能正常打开以正常显示图片

-XX:+DisableExplicitGC”: 避免ivh空间大起大落,影响系统的响应时间。响应速度会很慢

非堆内存是不会被垃圾回收机制处理的,-xx:Permsize持久代内存与最大非堆内存不能超出操作系统可用的内存。设置成一样大,可以减轻伸缩堆大小的压力。

-

堆区当中: 新生代、中生代、老年代

  • 每一个新建的对象占用的空间,就是新生代
  • java垃圾回收机制对堆区进行资源回收,新生代中没有被回收的资源,就是中生代。
  • 中生代没有被回收,就是老年代。

        jvm大小:新生代+中生代+老年代+永久代

tomcat部署及优化_第3张图片

ajp-nio-8009:

ajp-nio: 连接器的类型 AJP:使用ajp 协议。nio:进行异步非阻塞。

8009:连接器正在监听的端口。

AJP: 将tomcat服务器与前端web服务器进行连接。提供负载均衡和高效的请求转发

tomcat部署及优化_第4张图片

http-nio-8080:

处理http请求,和客户端通信的结果

tomcat部署虚拟主机:

一台服务器上在一个tomcat中会部署多个虚拟机服务器。减少系统的资源消耗。


               

你可能感兴趣的:(tomcat,前端,java)