当前位置: 首页 > news >正文

涨薪技术|0到1学会性能测试第53课-Tomcat配置

前面的推文我们掌握了Tomcat服务器的3种监控技术知识。今天给大家分享Tomcat调优技术。后续文章都会系统分享干货,带大家从0到1学会性能测试。

图片

01Tomcat配置

当Tomcat服务器安装好并开始运行后,需要对服务器进行一些基本配置,通常关于Tomcat服务器的配置包括两部分:

第一:编辑Tomcat的XML配置文件;

第二:确定适当的环境变量;

1) XML配置文件

关于XML配置文件,Tomcat服务器有两个很重要的XML配置文件需要配置:server.xml和web.xml。通常情况下这两个文件存放Tomcat安装目录下的conf文件夹中。

server.xml文件是Tomcat最主要的配置文件,该文件主要是指定Tomcat启动时的初时配置,并定义Tomcat启动和构建的方式。server.xml文件中包含五类基本类别:顶层元素、连接器、容器、嵌套组件和全局设置。这些类别都有着很多属性,在配置过程中可以对这些值进行微调,通常包括以下几部分的内容:

  • 顶层元素(Top Level Elements)

关于顶层元素主要包括服务器和服务两类,服务器主要定义一个单个的Tomcat服务器,主要包括Logger和ContextManager配置,此外还包括服务器支持的“端口”、“关机”和“类名”属性。服务则是一个元素,该元素嵌套在一个服务器中,服务包含一个或多个用于共享相同引擎的组件,该组件主要功能是定义一个单一服务器的组件,服务的名称在“name”属性中指定。

  • 连接器(Connectors)

在服务器标签中可以定义一个或多个连接器,通过Catalina从这些端口向引擎组件发送请求,Tomcat允许定义HTTP和AJP两种连接器,关于这两种连接器将在连接器部分的内容中进行详细介绍。

  • 容器(Containers)

这些元素使用Catalina直接处理设备的请求。

  • 上下文(Context)

此元素是一个单一的web应用,并且包含如果查找到最适合的应用程序资源的路径信息,当Catalina接收到一个请求后,它使用context去匹配最长的URL,直到找到正确的服务请求元素,context元素为每个元素设置一个最大的嵌套实例,虽然可以通过修改server.xml文件来修改context的内容,但一般情况下不应该修改context内容,因为这些配置如果不重启Tomcat服务器不能被加载。

  • 主机(Host)

这个元素嵌套在引擎元素中,用于关联Catalina服务器所在网络中的网络服务器名,这个元素的功能只有在虚拟机注册DNS管理域的过程中才能正确使用,该元素最大的作用是嵌套别名,可以为同一个虚拟机定义多个不同的别名。

  • 集群(Cluster)

集群元素能够提供上下文属性复制、WAR部署、会话复制并且将其嵌套在一个引擎或主机元素中,虽然可以对这个元素进行配置,但一般情况下缺省设置就可以满足用户的需求。

  • 全局命名资源(Global Naming Resources)

这个元素主要是为一个指定服务器指定全局Java名和目录接口资源,可以在该元素中定义和的查找特征并且可以使用进行链接。如果使用该技术定义其它的参数,那么必须指定和配置对象属性。

  • 范围(Realm)

这个元素可以被嵌套在任何容器元素中,用于定义数据库用户名、密码和容器的角色,如果嵌套在主机或引擎元素中,那么Realm元素的特征将会继承低级别容器的特性。Realm元素中最生要的属性是“classmate”,其主要提供不同类型容器的安全性,并且实现的方式有多种。

  • 资源(Resources)

这个元素主要是用于通过web应用程序引导Catalina的静态资源,常见的静态资源有:类、HTML和JSP文件等。

  • Web.xml文件

Web.xml文件遵从Servlet规范,其主要包含的信息用于部署和配置web应用程序,如果是第一次配置Tomcat,那么主要是定义Servlet映射到主要的部件(如JSP)。在Tomcat中,这个文件以同样的方式在Servlet规范中描述这些功能。

2) 环境变量

在第一次配置Tomcat时,有几个环境需要进行适当的修改,主要包括:JAVA_OPTS、CATALINA_HOME、CATALINA_OPTS。

JAVA_OPTS

使用该变量可以定义JVM中堆的大小,堆大小是一个很重要的指标,当在部署一个新的应用程序时,需要设置一个适当的堆大小的值,否则会影响系统性能,同时可以消除或减小OOME消息。

CATALINA_HOME

该变量用于指定Tomcat的安装位置,当Tomcat脚本启动时会自动去检查这个变量的值,以确定设置是否正确,避免运行过程中出现问题。

CATALINA_OPTS

该变量用于设置Tomcat指定的不同的选项。

除了以上一些配置外,还有两个相关的配置会影响系统性能:DNS查找和JSP编译。

DNS查找

如果web应用服务器需要获得客户端的日志信息,那么通常有两种方式:

一是:记录客户端机器的IP地址;

二是:在DNS中查找客户端主机名信息;

而DNS查询需要网络流量,在查询过程中可能会经历多个服务器的往返查找,但也可能不需要,这样就会导致出现延迟响应的情况,如果需要消除这些延迟响应,就必须关闭DNS查询,在HTTP对象中有一个getRemoteHost的方法,通过这个方法可以找到一个唯一的IP地址,关于DNS的选项设置在server.xml文件中的connector(连接器)中设置,源代码如下:

<!--   Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 --><

相关文章:

  • 【C语言干货】一维数组传参本质
  • 存储器:DDR和HBM的区别
  • AI视频生成的艺术:镜头语言
  • 【战略合作】开封大学_阀门产业学院+智橙PLM
  • 深入理解 Electron 的 IPC 通信机制:主渲染进程消息传递实战
  • 【论文+VLA】2505.GraspVLA——基于十亿级合成动作数据预训练的抓取基础模型(即将开源)
  • 【软件设计师:软件工程】9.软件开发模型与方法
  • python小记(十四):Python 中 **参数解包:深入理解与应用实践
  • WTK6900C-48L:离线语音芯片重构玩具DNA,从“按键操控”到“声控陪伴”的交互跃迁
  • WPF 子界面修改后通知到主页面
  • 一站式远程访问工具对比分析及选择建议
  • LeetCode:翻转二叉树
  • 使用OpenFOAM中的VOF模型仿真两相流
  • maven如何搭建自己的私服(windows版)?
  • Java 的 Monitor 机制:原理与源码详解
  • [git]如何关联本地分支和远程分支
  • 数据库的进阶操作
  • 路由器断流排查终极指南:从Ping测试到Wireshark抓包5步定位法
  • 基于GlusterFS的分布式存储集群部署实战指
  • System-V 共享内存
  • 北约年度报告渲染所谓“中国核威胁”,国防部回应
  • 全球第七个迪士尼主题公园将落户阿布扎比
  • 驱逐行动再加码?特朗普或向利比亚和卢旺达遣送非法移民
  • 谢晖不再担任中超长春亚泰队主教练:战绩不佳主动请辞
  • 新闻分析:电影关税能“让好莱坞再次伟大”?
  • 贵州黔西市游船倾覆事故最后一名失联人员被找到,但已无生命体征