Tomcat部署与优化

TOMCAT介绍

 

tomcat开放源代码web应用服务器,Java代码开发的

tomcat就是处理动态请求和基于Java代码的页面开发 可以在html当中写入java代码,tomcat可以解析html页面当中的java,执行动态请求,动态页面

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

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

 

核心组件三个:

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

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

web容器中,封装了一组文件,在这一组文件中,进行集中化管理

web动态页面

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

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

 

servlet: 1、处理http请求 2、生产动态内容,为了和数据库交互-----》用户发起的;jsp当中的。 3、会话管理,跟用户在不同请求之间的状态,通过管理,可以在用户访问不同页面时保持用户的状态。 4、与数据库交互,servlet可以连接到数据库,执行查询和更新操作。这就是servlet能够生成动态内容的原因jsp:java server pages。动态页面的开发技术。使用sp标签 index.isp 在html页面中插入java代码。

jsp容器-----》html页面当中的java代码翻译-------》执行---------------》展示结果 通常 <%,开头 %>,结尾

功能组件: connector:负载对外接受和响应请求,是tomcat与外界的交通权纽。监听端口,也可以接受外界清求,交给container外理
.container:负责对内处理业务逻辑
Engine:引擎,管理虚拟机 (service可以包含多个虚拟主机),可哟管理管理多个,一个service里面只能有一个Engine;
Host: 代表一个虚拟机,也可以叫站点,
Context:web应用,包含多个servlet
wrapper:封装器,最底层,每一个wrapper封装一个servlet,负责对象实例的创建,执行,销毁 父子关系,工作方式也是从上到下

1、输入网址,请求发送,请求发送到8080端口,被监听的获得;
2、conneclor会把请求转发到container处理---- engine(虚拟主机,你要访问哪一个虚拟主机) ----host((主机站点包含要请求页的位置webapps)------>从contex,就是index.jsp里面的内容。-->wrapper(servlet,响应解析处理请求)-------jsp翻译官---------页面展示。

exportJAVA_HOME=/usr/java/jdk1.8.0 201-amd64
指定jdk的安装路径。jdk解释器,类似于shell,各种工具。 exportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarclasspath:
定义类的环境变量,环境类的库
export PATH=$JAVA HOME/bin:$PATH
可执行文件。

bin: 存放的启动和关闭tomcat脚本文件
conf: 主配置文件 serverxml主配置文件 contex.html host的默认置信息
tomcat-user.xml: 认证用户密码的配置文件 web.xm配置servlet servlet的规范标准。
lib: tomcat运行库的iar包,一般不动,除非连接第三方-----redis,数据库logs: 日志文件 webapps:web应用部署的默认目录
work:tomcat的工作目录,存放jsp编译之后的class文件,清楚tomcat缓存,就是删work目录。

JVM:就是java的虚拟机,是java应用程序在计算上运行的核心组件,jvm负载将编译后的java字节码(.class文件)解释或者编译成本地的机器码,计算机能够执行它。
JVM还提供好了内存管理,垃圾回收,线程管理。确保iava程序在不同平台可以有一致性的功能.

JVM优化 catalina.sh 就是servlet代码。已经容器的配置

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

Ps old Gen:堆内存,存储长时间存活的对象

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

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

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

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

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

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

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

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

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

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

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堆最大能多大,jvm的最大内存。和硬件内存挂钩。根据官方文档,起始值和最大值保持一致。XMS和XMX设为一样的,内存可以设为物理内存的一般。
-Xmn768m :新生代的内存大小。官方推荐为了整个堆大小的3/8.
-XX:ParallelGCThreads=2: 配置并行收集器的线程数,同时可以有多少个线程进行垃圾回收。 -XX:PermSize:设置持久代内存的大小,默认是物理内存的1/4。
-XX:MaxPermSize=1024m :最大的非堆内存的大小,默认也是物理内存的1/4; -XX:PermSize=1024m -XX:MaxPermSize=1024m 非堆内存是不会被垃圾回收机制处理的,-XX:PermSize持久代内存与最大非堆内存不能超出操作系统可用的内存。设置成一样大,可以减轻伸缩堆大小的压力。
-Djava.awt.headless=true:避免在linux环境下,web不能正常打开以正常显示图片。 -XX:+DisableExplicitGC" :避免jvm空间大起大落,影响系统的响应时间。响应速度会很慢。

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

ajp-nio-8009: ajp-nio: 连接器的类型 AJP:使用ajp 协议。nio:进行异步非阻塞 8009:连接器正在监听的端口。connect. AJP: 将tomcat服务器与前端web服务器进行连接。提供负载均衡和高效的请求转发

"http-nio-8080" 处理http请求,和客户端通信的端口。

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

启动速度优化: 第一次启动tomcat会发现启动速度很慢,10几秒-1分钟jdk的参数: vim /usr/java/jdk1.8.0_201 -amd64/jre/lib/security/java.security securerandom.source=file:/dev/urandom

Tomcat 优化: server.xml针对主配晋文件的优化

redirectPort: 如果某连接器支持的协议的是http,当接受客户端发来的请求时https,就会启用此端口。8443

maxthreads: tomcat使用线程来处理请求的,可以创建的最大线程数,也就是并发连接数。默认200

minsparethreads:最小空闲线程数,开启tomcat时,会有多少线程。默认是10.

maxSparethreads;最大备用线程。一旦创建的线程超过这个值,tomcat会关闭不再需要的端口线程。默认是-1,也就是不限制。一般不指定

URIEncoding:URL的格式编码,默认utf-8。需要分别指定,所以一般也不动 connnectionTimeout: 网络连接超时,单位: 毫秒。为0,永不超时,一般为20000毫秒。

enablelookups:是否反向解析域名,为了能够获取远程的主机名。一般设置为false,直接返回IP地址。提高了处理能力。

disableUploadTimeout: 上传超时时间,设置为true.

connectionqploadTimeout: 因人而异,没有标准答案,1分钟,30秒。

acceptCount: 所有可以使用的线程都被占用了,可以传入连接请求的最大队列长度。默认100个。101个,超出范围直接丢弃,不在处理

compression: 是否开启页面和响应数据的压缩。of关 on开 force(所有的情况下都进行压缩。)默认是of 建议on

compressionMinize 压缩响应的最小值,等于或者小于这个值,就不再压缩了。2048

compressableMimeType: 可以被压缩MIME的类型

浏览器和其他互联网应用程序之间处理文件的协议和需要处理的文档的性质和格式 文本: text/html, text/plain 图像: image/jpg image/gif 音频: audio/wav audio/mp3 视频: video/mp4 video/avi 应用程序: application/pdf application/json

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/98913.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VScode搭建Opencv(C++开发环境)

VScode配置Opencv 一、 软件版本二 、下载软件2.1 MinGw下载2.2 Cmake下载2.3 Opencv下载 三、编译3.1 cmake-gui3.2 make3.3 install 四、 VScode配置4.1 launch.json4.2 c_cpp_properties.json4.3 tasks.json 五、测试 一、 软件版本 cmake :cmake-3.27.2-windows-x86_64 Mi…

八种架构演进

日升时奋斗&#xff0c;日落时自省 目录 1、单机架构 2、应用数据分离架构 3、应用服务集群架构 4、读写分离/主从分离架构 5、冷热分离架构 6、垂直分库架构 7、微服务架构 8、容器编排架构 9、小结 1、单机架构 特征&#xff1a;应用服务和数据库服务器公用一台服务…

【工具】 删除Chrome安装的“创建快捷方式”

创建Chrome的快捷方式&#xff0c;可以放在桌面&#xff0c;想用时双击就可以打开网页&#xff0c;比书签&#xff08;brookmark&#xff09;结构化管理更方便。 但是&#xff0c;安装一时爽&#xff0c;卸载有问题。 如果用 windows 控制面板\所有控制面板项\程序和功能 卸载…

FPGA原理与结构——RAM IP核原理学习

目录 一、什么是RAM 二、RAM IP介绍 1、RAM分类简介 2、可选的内存算法 &#xff08;1&#xff09;Minimum Area Algorithm&#xff08;最小面积算法&#xff09; &#xff08;2&#xff09;Low Power Algorithm &#xff08;低功耗算法&#xff09; &#xff08;3&#x…

【Unity实战篇 】| 游戏中实现镂空遮罩效果【矩形、圆形镂空遮罩】

前言【Unity实战篇 】 | 游戏中实现镂空遮罩效果【矩形、圆形镂空遮罩】一、制作原理二、矩形中间镂空遮罩效果2.1 实现镂空显示2.2 镂空区域内事件穿透三、圆形中间镂空遮罩效果总结前言 本文来写一下怎样在Unity中完成一个 镂空遮罩 的效果。镂空遮罩 比较常用的有两种:矩形…

安全学习DAY17_信息打点-语言框架组件识别

信息打点-WEB打点-语言框架&开发组件 文章目录 信息打点-WEB打点-语言框架&开发组件本节涉及链接&工具本节知识&思维导图基础概念介绍框架&#xff1a;组件&#xff1a;Web架构 对应Web测试手法后端&#xff1a;前端组件&#xff1a;java居多&#xff0c;框架&…

IO day 4

1、使用两个进程完成两个文件的拷贝&#xff0c;父进程拷贝前一半内容&#xff0c;子进程拷贝后一半内容&#xff0c;并且父进程要阻塞回收子进程资源 #include <myhead.h>int main(int argc, const char *argv[]) {char a[1] {0};pid_t pid;pid fork();//创建一个子进…

websocket + stomp + sockjs学习

文章目录 学习链接后台代码引入依赖application.ymlWebSocketConfigPrivateControllerWebSocketService WebSocketEventListenerCorsFilter 前端代码Room.vue 学习链接 WebSocket入门教程示例代码&#xff0c;代码地址已fork至本地gitee&#xff0c;原github代码地址&#xff…

红绿灯识别、倒计时识别(毕业设计)

交通标志识别 本项目使用YOLO 模型&#xff0c;并在对数字信号灯进行数字识别时采用opencv算法。 环境安装 所需环境 python 3.7.11 torch1.2.00 使用 pip install -r requirements.txt安装所需的包。 文件下载 训练所需的预训练权重可在百度网盘中下载。 链接&#xf…

【Unity】制作一个简单的菜单栏页面并实现其功能

这是一个简单的菜单页面制作&#xff0c;接下来我们将制作一个完整的菜单页面&#xff0c;并且通过一定的代码去实现它对应的效果。这个主要的功能就是我们在游戏中如果想暂停一下或者重新开始&#xff0c;那么就要用到我们这个功能。接下来我们将实现在游戏中按ESC退出键可以调…

【3Ds Max】弯曲命令的简单使用

简介 在3ds Max中&#xff0c;"弯曲"&#xff08;Bend&#xff09;是一种用于在平面或曲面上创建弯曲效果的建模命令。使用弯曲命令&#xff0c;您可以将对象沿特定轴向弯曲&#xff0c;从而创建出各种弯曲的几何形状。以下是使用3ds Max中的弯曲命令的基本步骤&…

react使用antd的table组件,实现点击弹窗显示对应列的内容

特别提醒&#xff1a;不能在table的columns的render里面设置弹窗组件渲染&#xff0c;因为这会导致弹窗显示的始终是最后一行的内容&#xff0c;因为这样渲染的结果是每一行都会重新渲染一遍这个弹窗并且会给传递一个content的值&#xff0c;渲染到最后一行的时候&#xff0c;就…

08-MySQL-基础篇-约束

约束 前言约束示例 外键约束示例外键删除/更新行为语法CASCADESET NULL 前言 本篇来学习下MySQL表中字段的约束 约束 概念&#xff1a;约束是作用于表中字段上的规则&#xff0c;用于限制存储在表中的数据。目的&#xff1a;保证数据库中数据的正确、有效性和完整性。分类 …

ORB-SLAM2学习笔记7之System主类和多线程

文章目录 0 引言1 整体框架1.1 整体流程 2 System主类2.1 成员函数2.2 成员变量 3 多线程3.1 ORB-SLAM2中的多线程3.2 加锁 0 引言 ORB-SLAM2是一种基于特征的视觉SLAM&#xff08;Simultaneous Localization and Mapping&#xff09;系统&#xff0c;它能够从单个、双目或RBG…

AIGC音视频工具分析和未来创新机会思考

编者按&#xff1a;相较于前两年&#xff0c;2023年音视频行业的使用量增长缓慢&#xff0c;整个音视频行业遇到瓶颈。音视频的行业从业者面临着相互竞争、不得不“卷”的状态。我们需要进行怎样的创新&#xff0c;才能从这种“卷”的状态中脱离出来&#xff1f;LiveVideoStack…

扩散模型实战(四):从零构建扩散模型

推荐阅读列表&#xff1a; 扩散模型实战&#xff08;一&#xff09;&#xff1a;基本原理介绍 扩散模型实战&#xff08;二&#xff09;&#xff1a;扩散模型的发展 扩散模型实战&#xff08;三&#xff09;&#xff1a;扩散模型的应用 本文以MNIST数据集为例&#xff0c;从…

基于Mysql+Vue+Django的协同过滤和内容推荐算法的智能音乐推荐系统——深度学习算法应用(含全部工程源码)+数据集

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境MySQL环境VUE环境 模块实现1. 数据请求和储存2. 数据处理计算歌曲、歌手、用户相似度计算用户推荐集 3. 数据存储与后台4. 数据展示 系统测试工程源代码下载其它资料下载 前言 本项目以丰富的网易云音乐数据为基…

一文彻底理解时间复杂度和空间复杂度(附实例)

目录 1 PNP&#xff1f;2 时间复杂度2.1 常数阶复杂度2.2 对数阶复杂度2.3 线性阶复杂度2.4 平方阶复杂度2.5 指数阶复杂度2.6 总结 3 空间复杂度 1 PNP&#xff1f; P类问题(Polynomial)指在多项式时间内能求解的问题&#xff1b;NP类问题(Non-Deterministic Polynomial)指在…

深入理解分布式架构,构建高效可靠系统的关键

深入探讨分布式架构的核心概念、优势、挑战以及构建过程中的关键考虑因素。 引言什么是分布式架构&#xff1f;分布式架构的重要性 分布式系统的核心概念节点和通信数据分区与复制一致性与一致性模型负载均衡与容错性 常见的分布式架构模式客户端-服务器架构微服务架构事件驱动…

python从入门到精通——完整教程

阅读全文点击《python从入门到精通——完整教程》 一、编程入门与进阶提高 Python编程入门 1、Python环境搭建&#xff08; 下载、安装与版本选择&#xff09;。 2、如何选择Python编辑器&#xff1f;&#xff08;IDLE、Notepad、PyCharm、Jupyter…&#xff09; 3、Pytho…