-
tomcat简介
-
apache软件基金会的jakarta项目中的一个核心项目。
-
优点
-
开源免费
-
轻量级
-
对动态网页处理能力较强
-
能独立运行
-
-
tomcat核心组件
-
web容器
-
对http的请求做处理
-
-
servlet容器
-
名为catalina,处理servlet代码
-
-
JSP容器
-
将动态网页代码翻译成servlet代码
-
-
-
tomcat的Catalina架构
-
-
1,server
-
代表整个Tomcat容器,是整个容器的最顶(最外层)。 server只能有一个!
-
Server的主要任务,就是提供一个接口让客户端能够访问到这个Service集合,同时维护它所包含的所有的Service的声明周期,包括如何初始化、如何结束服务、如何找到客户端要访问的Service。
-
-
-
2,service
-
将connector和engine包裹起来,将两个容器组装起来, 在一个service中可以有多个connector, 但是Engine只能有一个。
-
不同的service监听不同的端口,可以做基于端口的虚拟主机。
-
-
-
3,Connector
-
接收连接请求,应答解析后的结果。通过相关配置,可以配置service的协议与端口号。
-
-
4,Engine
-
该组件在service中有且只有一个,负责接收connector发送给过来的请求并选择响应的host容器进行处理。
-
-
5,Host
-
Host是Engine的子容器,在Engine中可以被放置多个,每一个Host代表表一个网站站点(或者是基于域名的虚拟主机),
-
Host组件至少有一个,且其中一个的name必须与Engine组件的defaultHost属性相匹配。
-
在Engine部分指出的默认主机(也就是通用匹配),这样设定是为了确保,即便请求信息不足以直接匹配到某个特定的Host,Tomcat也能有确定的默认处理路径,不会因为找不到合适的处理目标而导致请求失败。
-
-
-
-
6,Context
-
代表在虚拟主机上运行的一个web应用,应用可以是war包,在Host下可以定义任意多的Context元素。
-
-
7,warapper
-
容器最底层,每一个warapper都封装了一个servlet,负责对象实例的创建,执行,销毁功能。
-
-
-
用户请求流程
-
1:用户在浏览器中输入网址,请求被发送到本机端口8080,被在那里监听的Connector获得; 2:Connector把该请求交给它所在的Service 的 Engine (Container)来处理,并等待Engine 的回应; 3:请求在Engine、Host、Context和 Wrapper 这四个容器之间层层调用,最后在Servlet 中执行对应的业务逻辑、数据存储等。 4:执行完之后的请求响应在Context、Host、Engine 容器之间层层返回,最后返回给Connector,并通过Connector返回给客户端。
-
-
-
部署tomcat
-
准备前奏
-
版本:9.0.8
-
jdk版本
-
java在各个平台的解压即用版本。
-
-
添加策略或关闭防火墙,关闭内核安全机制。
-
-
下载并安装jdk
-
rpm -ivh jdk-8u171-linux-x64.rpm
-
在profile中设置其环境变量
-
export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
-
定义了java家目录
-
-
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib
-
定义了java类库(lib)的位置
-
-
export PATH=$JAVA_HOME/bin:$PATH
-
定义了Java的命令路径
-
-
设置完后重新加载一下该文件
-
否则重新登陆后才生效
-
java -version
-
查看一下版本信息
-
-
-
-
-
安装tomcat服务
-
解压后移动重命名到常用目录下即可例如:/usr/local/tomcat
-
利用软链接路径的方式将bin下的软件连接到对应目录可进行快速启动。
-
startup.sh
-
shutdown.sh
-
catalina.sh
-
-
startup.sh
-
启动后查询网络服务java看是否运行
-
- 8005端口是用于命令行关闭Tomcat服务 8009 Tomcat服务器通过Connector连接器组件与客户程序建立连接使用的端口 8080是Tomcat的web服务端默认口号
-
可以用8080端口进行访问测试看服务是否正常
-
优化tomcat初次加载速度慢
-
/usr/java/jdk1.8.0_171-amd64/jre/lib/security/java.security 找到将其修改称该方式即可。 securerandom.source=file:/dev/urandom
-
-
-
-
-
tomcat目录结构
-
-
bin 目录:用于存放启动和关闭 Tomcat 的脚本文件,比较常用的是 catalina.sh、startup.sh、shutdown.sh 三个文件。
-
conf 目录:用于存放 Tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四个文件。
-
lib 目录:用于存放 Tomcat 服务器的 jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,那就需要添加相对应的 jar 包。
-
logs 目录:用于存放 Tomcat 日志。
-
temp 目录:用于存放 Tomcat 运行时产生的文件。
-
webapps 目录:用于存放项目资源的目录。
-
该目录下能自动解压war包与jar包,但是不能放到子一级的目录中。
-
-
work 目录:是 Tomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到
-
-
-
tomcat做虚拟主机
-
server.xml配置文件
-
优化该文件,提前做备份!!!
-
做备份
-
cp server.xml server.xml.bak
-
-
去掉注释
-
perl -0777 -pe 's/<\!--.*?-->//gs' server.xml > server.xml.nocomments
-
-
去掉空行
-
sed -i '/^[[:space:]]*$/d' server.xml.nocomments
-
-
优化过后
-
Host部分大概7行
-
service部分大概12行
-
-
-
Host容器部分
-
通过Context容器能指定网站文档应用目录
-
<Context docBase="/usr/local/tomcat/webapps/bbs" path="" reloadable="true" />
-
docBase:网页内容目录
-
path:虚拟目录
-
reloadable:修改类库后会被直接重载
-
-
-
-
基于域名
-
在Engine容器中复制多个Host容器即可
-
- 修改name即可,并且指定出Context即可
-
-
基于端口
-
复制多个service即可
-
- 修改其中的8080端口保证不冲突即可
-
-
-
-
压力测试软件与tomcat优化
-
- 在Windows中解压后jdk需要安装,jmater解压缩后找到启动器,jmater.bat启动即可
-
测试软件调试步骤
-
添加线程组
-
设置发送数量, 标识1:用几个线程发送,代表了几个用户
-
标识2:在单位时间内发送的次数
-
标识3:循环几次 三者相乘的总数越大测试的结果就越精准。
- 选择聚核报告会以数字的方式列出数据 每一次测试后都需要清理数据,否则数据结果会被叠加!!!
- 设置完毕后绿色按钮开始运行,再次出现绿色按钮表示测试结束,结束后稍等片刻,就可以在聚合报告中查看结果。
- 红色依次表示,平均响应时间,处理出错率,吞吐量。这几个具有参考价值。
-
-
-
tomcat优化
-
minSpareThreads="50"
-
最小备用线程数。即使没有请求处理,Tomcat也会保持至少50个线程等待,以便快速响应新请求。
-
-
enableLookups="false"
-
禁用DNS查询。对于每个连接,Tomcat默认会尝试解析远程主机的IP地址到主机名,禁用此功能可以提高性能。
-
-
disableUploadTimeout="true"
-
禁止上传超时。这意味着Servlet容器在处理POST请求的上传数据时不设置超时限制。
-
-
acceptCount="300"
-
当所有可用线程都在使用时,Tomcat会将额外的连接请求放入队列中,这个值指定了队列的最大长度。
-
-
maxThreads="500"
-
最大工作线程数。这是Tomcat能够同时处理请求的最大并发线程数。
-
-
processorCache="500"
-
这是一个优化参数,用于缓存创建的HttpProcessor对象的数量,可以提升处理请求的效率。
-
-
URIEncoding="UTF-8"
-
compression="on"
-
启用HTTP响应压缩。这可以减小传输数据的大小,从而加快页面加载速度。
-
-
compressionMinSize="2048"
-
只有当响应体的大小超过2KB时,才会进行压缩。这避免了小响应的压缩开销。
-
-
compressableMimeType="text/html,text/xml,text/javascript,text/css,tex t/plain,image/gif,image/jpg,image/png" />
-
指定了哪些类型的MIME内容可以被压缩。这里包括了常见的文本和图像类型,压缩这些内容可以显著减少带宽使用。
-
-
- 在Windows中解压后jdk需要安装,jmater解压缩后找到启动器,jmater.bat启动即可
-
tomcat部署优化与压力测试软件
2024/10/24 3:22:24
来源:https://blog.csdn.net/Q7758521adc/article/details/139834654
浏览:
次
关键词:tomcat部署优化与压力测试软件
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com
热文排行
最新新闻
- 电脑无法新建 Word Excle PPT 这些文件是咋回事
- wordpress Contact Form 7插件提交留言时发生错误可能的原因
- 车辆管理智能化:SpringBoot技术的应用
- Nordic软件二[蓝牙协议栈初始化卡死(时钟源默认外部晶振但是板子是内部RC)问题][BSP代码模块修改管脚和相关机制]
- 【前端从入门到精通:第五课:CSS介绍及CSS选择器】
- 【Python|接口自动化测试】使用requests库发送HTTP请求
- 4G MQTT网关在物联网应用中的优势-天拓四方
- 基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模
- poisson过程——随机模拟(Python和R实现)
- 7.计算机网络_IP包头
推荐新闻
- 电脑无法新建 Word Excle PPT 这些文件是咋回事
- wordpress Contact Form 7插件提交留言时发生错误可能的原因
- 车辆管理智能化:SpringBoot技术的应用
- Nordic软件二[蓝牙协议栈初始化卡死(时钟源默认外部晶振但是板子是内部RC)问题][BSP代码模块修改管脚和相关机制]
- 【前端从入门到精通:第五课:CSS介绍及CSS选择器】
- 【Python|接口自动化测试】使用requests库发送HTTP请求
- 4G MQTT网关在物联网应用中的优势-天拓四方
- 基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模
- poisson过程——随机模拟(Python和R实现)
- 7.计算机网络_IP包头