Tomcat生产环境应用、性能优化

Tomcat 8.5 生产环境部署与优化全指南:从安装到调优 Servlet容器是Java Web应用运行的核心环境,它实现了Servlet和JSP规范,负责处理HTTP请求、管理会话和生命周期。其工作原理是基于多线程模型,每个请求由一个独立线程处理,通过连接器(Connector)接收请求并交给容器(Container)中的引擎处理。这项技术的价值在于为Java EE应用提供了轻量级、高性能的运行平台,尤其适合部署企业级Web应用和微服务。在实际应用场景中,开发者常面临遗留系统维护、生产环境性能调优和安全加固等需求。针对Tomcat 8.5这一广泛使用的稳定版本,本 阅读详情

一、Tomcat 各组件及关系
    * Server 和 Service
    * Connector  连接器
       * HTTP 1.1
       * SSL  https
       * AJP(Apache JServ Protocol) apache 私有协议,用于apache 反向代理Tomcat
    * Container 
      * Engine  引擎 catalina
      * Host    虚拟机 基于域名 分发请求
      * Context 隔离各个WEB应用 每个Context的  ClassLoader都是独立
    * Component 
      * Manager (管理器)
      * logger     (日志管理)
      * loader     (载入器)
      * pipeline     (管道)
      * valve       (管道中的阀)

二、Tomcat server.xml 配置详解

    server  
        root元素:
            server 的顶级配置
        主要属性 :
            port:执行关闭命令的端口号
            shutdown:关闭命令
        #基于telnet 执行SHUTDOWN 命令即可关闭(必须大写)
        telent 127.0.0.1 8005
        SHUTDOWN
    service
        服务:将多个connector 与一个Engine组合成一个服务,可以配置多个服务。
    Connector
        连接器:用于接收 指定协议下的连接 并指定给唯一的Engine 进行处理。
        主要属性:
            * protocol 监听的协议,默认是http/1.1
            * port 指定服务器端要创建的端口号
            * minThread    服务器启动时创建的处理请求的线程数
            * maxThread    最大可以创建的处理请求的线程数
            * enableLookups    如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
            * redirectPort    指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
            * acceptCount    指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
            * connectionTimeout    指定超时的时间数(以毫秒为单位)
            * SSLEnabled 是否开启 sll 验证,在Https 访问时需要开启。
    Engine    
        引擎:用于处理连接的执行器,默认的引擎是catalina。一个service中只能配置一个Engine。
        主要属性:name 引擎名称 defaultHost 默认host
    Host
        虚拟机:基于域名匹配至指定虚拟机。类似于nginx当中的server,默认的虚拟机是localhost.
        主要属性:    
        <Host name="www.test.com"  appBase="/usr/www/test" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"               prefix="www.test.com.access_log" suffix=".txt"
                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        </Host>
    Context
        应用上下文:一个host 下可以配置多个Context ,每个Context 都有其独立的classPath。相互隔离,以免造成ClassPath 冲突。
        主要属性:<Context docBase="hello" path="/h" reloadable="true"/>

三、Tomcat 支持四种线程模型
BIO同步阻塞模型   (6.0)   一个线程对应一个请求     protocol=“org.apache.coyote.http11.Http11Protocol“ 
NIO同步非阻塞模型(7.0)   一个线程对应多个请求    protocol=”org.apache.coyote.http11.Http11NioProtocol“
AIO异步非阻塞模型  (8.0)     一个线程对应多个请求     protocol=”org.apache.coyote.http11.Http11Nio2Protocol“
APR模型  不常用                                                           protocol=”org.apache.coyote.http11.Http11AprProtocol“

四、Tomcat connector 并发参数解读

补充:检查配置文件是否有误  linux: ./bin/catalina.sh configtest    window: catalina.bat configtest

 

 

 

 

 

 

Java 领域中 Tomcat 的性能监控指标设置 在 Java 开发领域,Tomcat 作为一款广泛使用的开源 Servlet 容器,承载着众多 Web 应用的运行。对 Tomcat 进行性能监控并合理设置监控指标具有重要意义。其目的在于及时发现 Tomcat 运行过程中的性能瓶颈和潜在问题,例如响应时间过长、资源利用率过高或过低等,从而为性能优化提供依据,保障 Web 应用的稳定、高效运行。本文章的范围主要涵盖 Tomcat 性能监控指标的相关概念、设置方法、实际应用场景以及相关工具和资源。 阅读详情

相关推荐

Spring Boot应用部署到外部Tomcat容器实战

Spring Boot是一种约定优于配置的Java框架,旨在简化新Spring应用的初始搭建以及开发过程。其最大的优势在于快速开发和独立运行。由于集成了大量的Starter POMs,Spring Boot能够自动配置项目中常用的模块,从而让开发者专注于业务逻辑的开发。

weixin_42527589的博客 1276

TOMCAT部署及优化(Tomcat配置文件参数优化,Java虚拟机(JVM)调优)

2.connector会把请求转发到container处理----->engine(虚拟主机,你要访问的哪一个虚拟主机)-------->host(主机站点包含要请求页面的位置,webapps)-------->从contex,就是index.jsp里面的内容。------------------Tomcat 部署虚拟主机配置:------------------------------------工作原理:web------>http(s)-----访问页面------->文件index.jsp。

m0_56509725的博客 1965

学习利用ce修改游戏生命参数

易语言代码 游戏的简陋界面 用ce查找存储这个1000即生命值的内存地址(得先附加到目标程序上,点击左上角那个电脑按钮) 看到有很多值为1000的,但哪个是生命值呢?真相只有一个 我们点击一下打我这个按钮,看下面的ce界面上地址为004A65C0处的值变了,所以这个就是我们要找的生命值 接下来我们对生命值进行修改,修改为99

zsd747289639的博客 5万+

Tomcat部署及优化

Tomcat部署及优化

zcien的博客 442

单周期CPU设计【Verilog】

第一章 单周期CPU的设计原理 为实现单周期CPU,本文首先研究了单周期CPU的相关理论和工作原理。本章首先简要介绍单周期CPU的基本概念,然后对CPU的工作原理进行简要分析,以便为单周期CPU的设计和开发提供理论基础。 1.1 单周期CPU概述 中央处理器,即CPU,作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。在CPU内部,电平从低到高变化的瞬间称为时钟上升沿,两个相邻时钟上升沿之间的时间间隔称为一个时钟周期。单周期CPU指的是一条指令的执行在一个时钟周期内完成,然后开始下一

醉酒、冰城外 2万+

Coze工作流实战:Coze一键生成沉浸式历史故事视频

【coze工作流实战】一键生成火爆的沉浸式历史故事视频!短短3分钟,顶替你3天的工作量!

bickys的博客 1004

webブラウザにキャッシュをさせない指定方法

<br />■HTTPヘッダで指定する<br />response.addHeader("Pragma","no-cache"); response.addHeader("cache-control","no-cache"); <br /> <br />■HTMLのmetaタグで指定する<br /><meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Expires" content="-1">

engchina的专栏 803

利用ENVI处理TIF文件,把多个tif整合到一个完整的tif,例如2003-2011年的tif整合到一个tif上。

利用ENVI处理TIF文件,把多个tif整合到一个完整的tif,例如2003-2011年的tif整合到一个tif上。

unique_sir的博客 1万+

开启Tomcat APR运行模式,优化并发性能

原文链接:http://blog.youkuaiyun.com/xyang81/article/details/51502766Tomcat支持三种接收请求的处理方式:BIO、NIO、APR 1>、BIO模式:阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作(即java.io包及其子包)。Tomcat7以下版本默认情况下是以bio模式运行的,由于每个请求都要创建一个线程来处理,线程开销较大,

技术改变生活 5万+

[QMT量化交易小白入门]-二、如何用miniQMT获取沪深A股的板块列表、历史行情数据和实时行情数据

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。

木头大左的博客 5656

ZYNQ系列PS侧和PL侧DDR3或DDR4在AD(Altium Designer 25)中的layout布线规则约束

DDR3或DDR4的PCB布线规则通常有相对固定的要求,对应的,在PCB设计时有固定的约束设置。

FPGA艺术家的博客 788

【干货】你知道怎么在生产环境下部署tomcat吗?一招彻底弄懂!

享学课堂特邀作者:老顾 转载请声明出处! 一、前言 小伙伴们在网上看到的很多文章,都是对tomcat的一些介绍,什么配置啊,怎么启动。其实在生产环境中怎么部署,和网上介绍的有很大区别。这篇文章老顾就带着大家分享一些如何在生产环境下部署。 二、tomcat组件 我们先回顾一下tomcat有哪些组件 我们小伙伴要抓住几个点 对外接收请求是Connector连接器组件,可以支持不同协议,Connector组件中可设置端口,所以我们请求的时候需要输入端口号。可以把Connector当作接待员。 Co.

m0_57066201的博客 660

YOLOv11改进前必看 - YAML模型配置文件详细解读(再也不用担心通道数不匹配) 附网络结构图

YOLOv11的模型配置文件在中,里面包含以及,本文以目标检测模型文件为例(其他文件完全一致),详细介绍一下YOLOv11模型文件中各参数的含义。

Limiiiing的博客 5310

Tomcat-生产环境应用

Tomcat性能调优 Tomcat是什么 Tomcat是一个基于JAVA的WEB容器,实现了JAVA EE中的 Servlet 与 jsp 规范,与Nginx apache 服务器不同在于,Tomcat一般用于动态请求处理,Mginx一般用于静态资源请求处理。在架构设计上采用面向组件的方式设计。即整体功能是通过组件的方式拼装完成。另外每个组件都可以被替换以保证灵活性。 首先最外层是一个server(服务器)在server下存在多个service(服务),在每一个服务下我们可以配置多个Conector(连接器

JolyouLu的博客 501

28-手把手教你手写CPU-Verilog - 乘法器设计:Booth算法与Wallace树乘法器

文章摘要: 本文详细介绍了两种高效乘法器设计方法:Booth算法和Wallace树乘法器。Booth算法通过检测乘数连续1/0减少部分积,适合有符号数运算;Wallace树采用树形结构压缩部分积,显著降低延迟。文章包含算法原理、具体示例、Verilog实现代码(4位乘法器)及性能对比表,指出Booth适用于通用处理器,Wallace树更适合高性能DSP/GPU。最后强调实际设计中需根据速度、面积和功耗需求选择合适方案。

2301_79143213的博客 206

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Tomcat性能优化策略

JVM内存配置的优化主要是对JVM堆内存的优化,堆内存分为年轻代、老年代、永久代这三种,具体详情可以观看JVM的官方文档,这里我就不一一介绍,配置Tomcat的JVM参数可以在Tomcat的启动脚本catalina.sh中设置JAVA_OPTS参数。在生产环境中,有线上基于java的tomcat应用,而tomcat的默认配置参数,都是设置的很低,尤其是内存和线程配置,如果生产环境中,使用这些默认配置,一旦业务请求量较大时,很容易造成性能瓶颈。3)一般Xmx内存设置不超过物理内存的50%,最大不超过32G。

日常工作记录,解决实际问题,不成体系。 1012

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Tomcat跨域配置完全攻略:从问题排查到生产环境部署

前端开发中遇到跨域问题?别担心,这篇文章将带你从零开始,彻底解决Tomcat环境下的CORS配置难题。在前100字的阅读中,你就能掌握Tomcat跨域配置的核心要点,学会如何快速定位问题并实施有效的解决方案。无论你是开发新手还是资深工程师,都能在这里找到实用的配置方法和排查技巧。 ## 为什么你的跨域请求总是失败? ### 常见跨域错误症状 当你的前端应用尝试调用不同域名的API时,浏览器控

gitblog_00948的博客 840

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SpringBoot源码解析(二):run()方法如何启动内嵌Tomcat容器

SpringBoot源码解析(二):run()方法如何启动内嵌Tomcat容器

我从不打没有准备的仗! 9461

浅谈Tomcat服务器优化方法

对于JavaWeb开发人员而言,Tomcat已成为默认的web服务器,但是在生产环境下使用Tomcat部署应用,我们如果采用Tomcat默认的配置,尤其是内存和线程的配置,其配置都很低,容易成为性能瓶颈,所以我们需要对Tomcat服务器进行优化,提升其运行性能,下面我们一起来看看Tomcat如何优化?一、Tomcat内存优化,启动时告诉JVM需要多大内存(调优内存是最直接的方...

weixin_34409822的博客 138

Tomcat性能优化

外置tomcat优化 Tomcat在各位JavaWeb从业者常常就是默认的开发环境,但是Tomcat的默认配置作为生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. 幸好Tomcat还有很多的提升空间.下文介绍一下Tomcat优化,可以分为内存,线程,IO. 一:Tomcat内存优化,启动时告诉JVM我要一块大内存(调优内存是最直接的方式) Windows 下的catalin...

weixin_30409849的博客 134

Tomcat 底层原理与实战全解析

本文全面解析Tomcat的底层原理与实战应用。作为轻量级JavaEE容器,Tomcat由HTTP服务器和Servlet容器组成,采用分层架构(Server→Service→Engine→Host→Context)。文章详细讲解请求处理流程、安装配置优化、Web应用部署方式,并提供SpringBoot+Tomcat的完整实战案例。针对生产环境,重点介绍性能优化策略(JVM调优、Connector配置)、故障排查工具(jstack、jmap)以及高可用方案(Nginx负载均衡+Redis会话共享)。

果酱 の 博客 1416

Tomcat与ActiveMQ整合指南:消息队列应用部署

在分布式系统架构中,服务间通信的可靠性与异步处理能力直接影响系统稳定性。Apache Tomcat(汤姆猫)作为主流的Java Web容器,常需与消息中间件协同工作以实现松耦合架构。Apache ActiveMQ(Active消息队列)作为功能全面的开源消息中间件,支持JMS(Java消息服务)规范,能有效解决分布式系统中的**异步通信**、**流量削峰**和**系统解耦**三大核心痛点。 **...

gitblog_00560的博客 436

Nginx反向代理多Tomcat实例部署实战:从单机多端口到生产环境调优

在Web应用部署架构中,反向代理是实现流量分发、负载均衡和安全隔离的核心技术。其基本原理是通过一个中间服务器接收客户端请求,并根据预设规则将请求转发到后端多个应用服务器,对外隐藏了复杂的内部网络结构。这一技术价值在于显著提升了系统的可扩展性、安全性和资源利用率,是构建高可用服务集群的基础。在实际应用场景中,常与Tomcat等Java应用服务器结合,用于部署多个独立项目。本文聚焦于Nginx反向代理配置与Tomcat多实例部署的工程实践,详细解析了如何通过端口隔离与路径/子域名路由策略,实现单服务器上多个Sp

weixin_34356555的博客 449

终极指南:如何选择最适合你的Docker Tomcat镜像版本

想要在容器化环境中快速部署Java Web应用吗?Docker官方Tomcat镜像提供了轻量级、高效且可定制的解决方案。作为Apache Tomcat的官方Docker镜像,它让Java Web应用的部署变得前所未有的简单。🚀 ## 🔍 为什么选择Docker官方Tomcat镜像? Docker官方Tomcat镜像经过精心优化,提供了**开箱即用**的体验。你不需要手动配置环境变量、设置路

gitblog_00086的博客 557

解决:The APR based Apache Tomcat Native library which allows optimal performance in production......

tomcat日志apr报错引发的基于TomcatNative加速Tomcat性能tomact服务启动报错日志如下:息:TheAPRbasedApacheTomcatNativelibrarywhichallowsoptimalperformanceinproductionenvironmentswasnotfoundonthejava...

weixin_34261415的博客 639
上一篇: IOC容器设计理念与核心注解的使用
下一篇: 利用反射通过set方法实现注入(一)
辉少_
博客等级 码龄10年 30粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值