tomcat

Tomcat是一个开源的应用服务器 区别于nginx nginx主要处理静态页面 动态请求(连接数据库 动态页面)会交给tomcat处理

Nginx---转发动态请求---tomcat

Tomcat优点:1、处理动态页面(http请求)

2、处理后端请求(调用数据库服务器)

3、易部署 tomcat会自动识别配置文件 自动部署运行

4、轻量级的服务软件 处理中小架构的网站可以满足 对于大型交互需求 tomcat就不行了 在容器化部署的项目架构中不使用tomcat的 都是jar包直接运行 包括k8s

Tomcat的核心组件:

  1. Web容器 完成web功能 处理的请求也是nginx转发过来的http请求 处理动态页面(java代码编译的页面) 处理后端的请求(转发到数据库的请求)
  2. Servlet:卡特琳娜 是整个tomcat处理的底层逻辑 既处理web请求的动态页面 也处理后台数据
  3. Jsp jsp会把动态页面翻译成servlet的代码 用编译后的规则 显示代码的静态页面

静态页面:html

动态页面:php index.php jsp---Java格式写成的代码 靠jsp翻译 servlet执行编译后的代码 最后展示结果

1)、容器通常指的是一种虚拟化技术 允许在当前的操作系统中虚拟化的运行多个独立的环境 独立环境就是容器 彼此之间相互隔离 拥有自己的一套系统资源 容器寄生在宿主上 实际上使用的是宿主的资源

2)、servlet容器:用于开发web应用程序的关键组件 处理http请求 生成动态内容以及与客户端之间的交互

前端交互 后端数据库服务器交互 和redis缓存交互

处理http请求 生成动态页面内容 会话管理 处理用户会话跟踪用户在不同请求之间的状态 servlet可以在用户访问不同页面时 保持用户的状态信息 购物车同步

Jsp <%

%>实现Java web应用程序的访问界面

功能有两块组成:

接受和响应外部请求的连接器 connector 默认端口8080

负责处理请求的container

Engine引擎 管理多个虚拟主机 一个Tomcat里面只能有一个engine

Host 代表站点 也就是虚拟主机

Context:一个context执行一个web应用

Wrapper:最底层 处理和编译代码 运行结果

Jdk:Java开发工具包 开发Java的应用程序 jdk包括编译器 调试器 以及Java的类库

开发者用来创建 编译 运行Java程序的重要组件

Jvm:Java的虚拟机 负责编译后的java字节码编译本地的机器码

Tomcat配置虚拟主机:

  1. 配置工作目录

在公司当中会运行多个项目 一台部署tomcat太多会浪费资源

Tomcat工作方式

Tomcat优化

默认配置并不适合生产环境 频繁假死需要通过压力测试不断优化 提高稳定

三个方面:

  1. 配置文件优化 vim /usr/local/tomcat/server

maxThreads="200":tomcat使用线程处理接受每个请求 可以创建的最大线程数 支持的最大的并发连接数

minSpareThreeads:最小空闲线程数 tomcat启动时初始化的线程数 表示没人请求 也要打开空的线程等待请求

maxSpareThreads:最大备用线程数 创建线程的超过这个值 tomcat会关闭不再需要的线程 默认是-1(不做限制)

connectionTimeout:网络连接超时 设置为20000毫秒

enableLookups="false":是否方向解析域名 不解析 提高处理效率

disableUploadTimeout="true":上传文件时 是否启用超时限制

connectionUploadTimeout= :没有固定值 根据需求

accpetCount="100":所有的可以使用的线程都被占用 可以传入的队列长度的最大值

compression="on" off force#所有情况下都进行压缩 压缩之后的页面大小可减少1/3:是否对响应的数据进行gzip压缩

noCompressionUserAgents="gozilla chrom":对指定访问的浏览器不进行压缩

  1. Jvm优化

堆:存储新创建的对象

非堆:存储已编译的代码或压缩后的类或是类的元数

相关推荐
计算机程序员小杨3 分钟前
计算机专业的你懂的:大数据毕设就选贵州茅台股票分析系统准没错|计算机毕业设计|数据可视化|数据分析
java·大数据
y1y1z7 分钟前
EasyExcel篇
java·excel
DokiDoki之父26 分钟前
多线程—飞机大战排行榜功能(2.0版本)
android·java·开发语言
高山上有一只小老虎32 分钟前
走方格的方案数
java·算法
whatever who cares33 分钟前
Java 中表示数据集的常用集合类
java·开发语言
JavaArchJourney1 小时前
TreeMap 源码分析
java
whitepure1 小时前
万字详解Java中的IO及序列化
java·后端
还梦呦1 小时前
2025年09月计算机二级Java选择题每日一练——第一期
java·开发语言
与火星的孩子对话2 小时前
Unity高级开发:反射原理深入解析与实践指南 C#
java·unity·c#·游戏引擎·lucene·反射
花开富贵ii2 小时前
代码随想录算法训练营四十六天|图论part04
java·数据结构·算法·图论