涨薪技术|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
-->
<
相关文章:
涨薪技术|0到1学会性能测试第53课-Tomcat配置
前面的推文我们掌握了Tomcat服务器的3种监控技术知识。今天给大家分享Tomcat调优技术。后续文章都会系统分享干货,带大家从0到1学会性能测试。 01Tomcat配置 当Tomcat服务器安装好并开始运行后,需要对服务器进行一些基本配置,通常关于Tomcat服务器的配置包括两部分: 第一:…...
亚马逊推出新型仓储机器人 Vulcan:具备“触觉”但不会取代人类工人
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
后退n帧协议
滑动窗口机制(Sliding Window) 发送方有一个发送窗口,最多可以连续发送 N 个未确认的帧(N 就是窗口大小)。 接收方通常只有一个接收窗口,只接收按序到达的帧,不接受乱序帧。 累计确认机制&…...
R9周:RNN实现阿尔茨海默病诊断
🍨 本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 一、导入数据 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import torch import torch.nn as nn f…...
node.js 实战——在express 中将input file 美化,并完成裁剪、上传进度条
美化上传按钮 在ejs 页面 <!DOCTYPE html> <html> <head><meta charset"utf-8"></meta><title><% title %></title><link relstylesheet href/stylesheets/form.css/><!-- 本地 Bootstrap 引入方式 -->…...
Linux环境下部署MaxScale
测试环境:两台服务器,Mysql版本 8.0,linux版本:Ubuntu 20.04.3; 介绍 在我之前的文章里面有介绍MySql主从服务器的配置,我们项目通常使用.NET开发Server端,如果是代码直接去管理主从服务器的访…...
新能源汽车CAN通信深度解析:MCU、VCU、ECU协同工作原理
1. 什么是CAN通信? CAN(Controller Area Network,控制器局域网) 是一种广泛应用于汽车电子系统的串行通信协议,由德国Bosch公司在1980年代开发,主要用于实现车内电子控制单元(ECU)之…...
按句子切分文本、保留 token 对齐信息、**适配 tokenizer(如 BERT)**这种需求
在之前的文章中我解释了 把长文本切分成一句一句的小段(chunk),每一段尽量是一个完整的句子,而不是强行按字数截断。 但是这个方法自己写会比较复杂,有很多处理这种场景的工具可以直接拿来用。 下面就 处理按句子切分…...
缓存(1):三级缓存
三级缓存是指什么 我们常说的三级缓存如下: CPU三级缓存Spring三级缓存应用架构(JVM、分布式缓存、db)三级缓存 CPU 基本概念 CPU 的访问速度每 18 个月就会翻 倍,相当于每年增⻓ 60% 左右,内存的速度当然也会不断…...
Kubernetes client-go 客户端类型与初始化指南
Kubernetes client-go 客户端类型与初始化指南 在 Kubernetes 的 client-go 库中,存在多种客户端用于与 API 服务器交互。以下介绍主要客户端类型,包括用途、初始化方式及 Demo。 1. RESTClient 用途 RESTClient 是底层 REST 客户端,直接…...
【金仓数据库征文】金仓数据库:创新驱动,引领数据库行业新未来
一、引言 在数字化转型的时代洪流中,数据已跃升为企业的核心资产,宛如企业运营与发展的 “数字命脉”。从企业日常运营的精细化管理,到战略决策的高瞻远瞩制定;从客户关系管理的深度耕耘,到供应链优化的全面协同&…...
图漾相机——Sample_V2示例程序(待补充)
文章目录 1.SDK支持的平台类型1.1 Windows 平台1.2 Linux平台 2.Sample_V2编译流程2.1 Windows环境2.2 Linux环境编译 3.Sample_V2示例程序测试3.1 ListDevice_v23.2 DepthStream_v23.3 ExposureTimeSetting_v23.4 ForceDeviceIP_v23.5 GetCalibData_v23.6 NetStatistic_v23.7 …...
手写 vue 源码 ===:自定义调度器、递归调用规避与深度代理
目录 引言 自定义调度器(Scheduler) 什么是调度器? 调度器的实现原理 自定义调度器的实际应用 切面编程(AOP)思想在调度器中的应用 递归调用规避 递归调用的问题 Vue 如何规避递归调用 深度代理(D…...
WPF实时调试的一种实现方法
在WPF程序中,如果我们需要对程序进行调试,一般是使用断点/单步或输出日志之类的调试方法。 如果我们需要实时查看程序输出,可以将程序的输出类型修改为控制台应用程序 这样我们在程序运行后,就可以得到一个控制台窗口。 然后再配…...
数据库操作
本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接…...
学习笔记:数据库——事务
1.内容: 基于现有数据库设计检查点实验,观察比较提交前后执行结果并分析。 2.实现 源码 -- 开启事务 START TRANSACTION;-- 插入一条订单记录(客户ID为10002) INSERT INTO orders (o_date, c_id) VALUES (NOW(), 10002);-- 获…...
企业级可观测性实现:OpenObserve云原生平台的本地化部署与远程访问解析
文章目录 前言1. 安装Docker2. 创建并启动OpenObserve容器3. 本地访问测试4. 公网访问本地部署的OpenObserve4.1 内网穿透工具安装4.2 创建公网地址 5. 配置固定公网地址 前言 嘿,各位小伙伴们,今天要给大家揭秘一个在云原生领域里横扫千军的秘密法宝—…...
【Linux系统】第三节—权限
Hello,好久不见—— 云边有个稻草人-CSDN个人博客主页 Linux-本节文章所属专栏-欢迎订阅-持续更新中~~~ 目录 hi!在这里—本节课重要知识点详解 一、Shell命令以及运行原理 二、Linux权限 2.1 Linux权限的概念 2.2 Linux权限管理 2.3 ⽂件权限值的…...
@Data和 @NoArgsConstructor注解详解
Data 和 NoArgsConstructor 注解详解 1. Data 注解 作用:Data 是 Lombok 提供的一个复合注解,用于自动生成 Java 类的常用方法,减少样板代码。生成的内容: Getter 和 Setter:为所有非静态、非 final 字段生成 getter…...
《云计算》第三版总结
《云计算》第三版总结 云计算体系结构 云计算成本优势 开源云计算架构Hadoop2.0 Hadoop体系架构 Hadoop访问接口Hadoop编程接口 Hadoop大家族 分布式组件概述ZooKeeperHbasePigHiveOozieFlumeMahout 虚拟化技术 服务器虚拟化存储虚拟化网络虚拟化桌面虚拟化OpenStack开源虚…...
滚珠导轨:电子制造领域精密运动的核心支撑
电子制造正朝着高精度、高效率方向飞速发展,滚珠导轨在这一进程中扮演着重要角色。滚珠导轨在电子制造领域中具有广泛且重要的应用,主要体现在以下几个方面: 1、印刷电路板(PCB)制造设备:滚珠导轨在PCB制造…...
Spark缓存--cache方法
在Spark 中,cache() 是用于优化计算性能的核心方法之一,但它有许多细节需要深入理解。以下是关于 cache() 的详细技术解析: 1. cache() 的本质 简化的 persist():cache() 是 persist(StorageLevel.MEMORY_ONLY) 的快捷方式&#x…...
kafka logs storage
Kafka 会将日志文件按段(Segment)存储。 Segment是Kafka的最小存储单元,它是一个可追加的文件,用于存储Kafka分区中的一部分消息。 在文件系统中,Partition 是目录名,而Segment 是文件名。 Segment可以通过…...
数据分析平台选型与最佳实践:如何打造高效、灵活的数据生态?
数据分析平台选型与最佳实践:如何打造高效、灵活的数据生态? 在大数据时代,数据分析平台已经成为企业决策的核心支撑。从传统 BI(商业智能)到现代 AI 驱动的数据分析,选择合适的平台不仅影响数据处理效率,也决定了企业的数字化竞争力。面对市场上的众多解决方案(如 Ap…...
MYSQL之索引结构,为何要用B+树
索引的目的就是为了提高查询效率 索引的结构是B树,那么说到B树,必须提一下其他三种结构,分别是:二叉查找树、平衡二叉树、B树 我们来看看各自的结构特征 二叉查找树 特点:任何节点的左子节点的值都小于当前节点的值,右…...
OpenCV 中用于背景分割的一个类cv::bgsegm::BackgroundSubtractorLSBP
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::bgsegm::BackgroundSubtractorLSBP 是 OpenCV 中用于背景分割的一个类,它基于局部样本二进制模式(Local Sample Bina…...
【PmHub后端篇】PmHub Gateway全局过滤器:接口调用耗时统计及黑白名单配置技术深度解析
在微服务架构日益成为现代应用开发主流模式的背景下,网关作为微服务架构前端的关键组件,肩负着路由请求、负载均衡、安全认证、流量控制、监控和日志记录等多项重要任务。本文将围绕PmHub项目中Gateway全局过滤器实现接口调用耗时统计的相关技术进行深入…...
国产激光二极管厂家
中国在激光二极管(Laser Diode)领域已有多家厂商布局,涵盖从低功率到高功率、不同波长的产品,应用于工业、医疗、通信、消费电子等领域。以下是部分国产激光二极管厂家及相关信息,供参考: 1. 武汉锐科光纤…...
安卓基础(XML)
123 属性行为适用场景注意事项match_parent填满父容器可用空间全屏视图、占满剩余空间父容器需有固定尺寸wrap_content根据内容自适应尺寸动态文本、图标、浮动按钮内容过长时可能超出父容器需处理 123 属性作用常用值…...
uniapp|获取当前用户定位、与系统设定位置计算相隔米数、实现打卡签到(可自定义设定位置、位置有效范围米数)
基于UniApp阐述移动应用开发中定位功能的实现全流程,涵盖实时定位获取、动态距离计算与自定义位置、有效范围设定等功能。文章提供完整的代码示例与适配方案,适用于社交签到、课堂教室打卡等场景。 目录 引言定位功能在移动应用中的价值(社交、导航、O2O等场景)UniApp跨平台…...
matlab稳定求解高精度二维对流扩散方程
利用MATLAB稳定求解高精度二维对流扩散方程 Diffusion_1D.m , 2310 Diffusion_2D.m , 3813 license.txt , 1334...
【最新版】likeshop连锁点餐系统-PHP版+uniapp前端全开源
一.系统介绍 likeshop外卖点餐系统适用于茶饮类的外卖点餐场景,搭建自己的一点点、奈雪、喜茶点餐系统。 系统基于总部多门店的连锁模式,拥有门店独立管理后台,支持总部定价和门店定价LBS定位点餐,可堂食可外卖。无论运营还是二开…...
Redis 重回开源怀抱:开源精神的回归与未来展望
在开源软件的广袤天地里,Redis 一直是备受瞩目的明星项目。近期,Redis 宣布重新回归开源,这一消息犹如一颗石子投入平静的湖面,在技术社区激起层层涟漪。今天,就让我们深入了解 Redis 这一重大转变背后的故事、意义以及…...
mac运行java文件提示 错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序
1、问题如上 双击java文件打不开,命令行报错。查找了下文章说java8之后,高版本jdk不自带javafx,需要自己下载 2、解决办法 首先查看自己的java版本,我是17.0.10 访问 JavaFX - Gluon 下载对应的版本,如果没有对应的 …...
pimpl与unique_ptr的问题
PImpl与std::unique_ptr组合 pimpl(Pointer to Implementation)是C程序开发中非常常用的技巧之一,它的好处有: 节省程序编译时间保持程序/库的二进制兼容性隐藏实现细节 举例一个常见的pimpl的使用示例: // a.h class Impl; //前置声明 c…...
Opencv进阶操作:图像拼接
文章目录 前言一、图像拼接的原理1. 特征提取与匹配2. 图像配准3. 图像变换与投影4. 图像融合5. 优化与后处理 二、图像拼接的简单实现(案例实现)1.引入库2.定义cv_show()函数3.创建特征检测函数detectAndDescribe()4.读取拼接图片5.计算图片特征点及描述…...
记录Token反序列化OAuth2Authentication(主要是直接存储用户信息的UserDetails )
项目场景: 本地开发环境部署了多套系统,并且使用了同一套登入鉴权组件,存入的TokenStore也是相同的Redis库; 问题描述&原因分析 由于是做的不同项目,group等组织机构不同,导致多系统若是有存储相同用…...
【QT】深入理解 Qt 中的对象树:机制、用途与最佳实践
深入理解 Qt 中的对象树:机制、用途与最佳实践 在使用 Qt 编程时,你是否注意到很多对象可以设置“父对象”?比如: QPushButton* btn new QPushButton(parentWidget);这不是简单的层级结构,而是 Qt 强大而优雅的 对象…...
基于FPGA的血氧和心率蓝牙监测系统设计-max30102
文章目录 前言一、芯片手册分析二、串口接口的血氧模块使用讲解三、仿真时序分析四、代码分析1.蓝牙数据发送2.心率数据采集 总结 前言 本产品的核心是基于心率传感器的智能心率监测系统,通过硬件端的心率传感器获取人体的心率和血氧浓度等信息,并进行实…...
华为首款鸿蒙电脑正式亮相,开启国产操作系统新篇章
5 月 8 日,华为在深圳举办鸿蒙电脑技术与生态沟通会,正式推出了备受瞩目的首款鸿蒙电脑,这一重大举措标志着国产操作系统在个人电脑(PC)领域实现了关键突破,为行业发展注入了新的活力。 历经五年打磨&…...
Docker部署常见应用之Superset
文章目录 使用 Docker 部署使用 Docker Compose 部署参考文章 以下是使用 Docker 部署 Superset 并将存储配置为 MySQL 的详细步骤: 使用 Docker 部署 获取Superset镜像: 使用Docker从官方仓库拉取Superset镜像:docker pull apache/superset:4.0.0创建 …...
触想CX-3588工控主板应用于移动AI数字人,赋能新型智能交互
一、行业发展背景 随着AI智能、自主导航和透明屏显示等技术的不断进步,以及用户对“拟人化”、“沉浸式”交互体验的期待,一种新型交互终端——“移动AI数字人”正在加速实现规模化商用。 各大展厅展馆、零售导购、教学政务甚至家庭场景中,移…...
关系代数操作之复杂扩展操作
除(Division) 定义:关系R为n度关系,关系S为m度关系,m<n,记作RS,关系是K(n-m)度关系 数学描述: 相当于(RS)*S在R中的元组 外连接(…...
STM32G070xx将Flash页分块方式存储,固定数据块存储,实现一次擦除多次写入
STM32G070xx将Flash页分块方式存储,固定数据块存储,实现一次擦除多次写入 参考例程例程说明一、存储区数据结构二、读取存储区数据三、写入存储区数据四、测试函数五、测试结果 参考例程 STM32G0xx使用LL库将Flash页分块方式存储数据实现一次擦除可多次…...
V4L2应用程序开发-- 控制流程
使用摄像头时,我们可以调整很多参数,比如: 对于视频流本身: 设置格式:比如V4L2_PIX_FMT_YUYV、V4L2_PIX_FMT_MJPEG、V4L2_PIX_FMT_RGB565 设置分辨率:1024*768等 对于控制部分: 调节亮度 调…...
《大数据技术之Scala》
这是一篇关于大数据技术中Scala语言的基础教程文章,主要介绍了Scala语言的发展历史、与Java的关系、语言特点、环境搭建、插件安装、编程基础、变量和数据类型、运算符、流程控制、函数式编程、面向对象编程、集合操作、模式匹配、异常处理、隐式转换和泛型等核心内…...
使用thymeleaf模版导出swagger3的word格式接口文档
1.pom配置 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.8.RELEASE</version></parent><properties><skipTests>true</skipTests&g…...
Android RecyclerView自带的OnFlingListener,Kotlin
Android RecyclerView自带的OnFlingListener,Kotlin Android启动应用时屏蔽RecyclerView滑动,延时后再允许滑动,Kotlin-CSDN博客 使用了GestureDetectorRecyclerView的setOnTouchListener检测用户的快滑fling事件。发现RecyclerView也自带了监…...
STM32+安信可Ai-WB2-12F连接阿里云物联网平台
第一步:在阿里云物联网平台创建设备 具体操作流程如下 第二步:生成个人client_id,用户名和密码 打开该软件sign.html 将刚才复制的信息粘贴进去 生成自己的client_id,用户名和密码 第三步:打开MQTTfx软件 电机connect旁边的配置࿰…...
Python实现中文数字与阿拉伯数字映射生成器(支持0-9999)
文章目录 1. 引言2. 需求分析3. 核心实现思路4. 完整代码实现 1. 引言 在中文文本处理和自然语言处理(NLP)应用中,经常需要将中文数字转换为阿拉伯数字。本文将介绍如何使用Python根据用户从控制台输入的数字范围,生成相应的中文数字到阿拉伯数字…...