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优化

堆:存储新创建的对象

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

相关推荐
SimonKing4 分钟前
你的网站SSL证书又要过期了?这个工具能让你永久告别焦虑
java·后端·程序员
CryptoRzz6 分钟前
印度交易所 BSE 与 NSE 实时数据 API 接入指南
java·c语言·python·区块链·php·maven·symfony
梵得儿SHI8 分钟前
SpringCloud 核心组件精讲:Sentinel 熔断限流全攻略-流量控制、熔断降级、热点参数限流(含 Dashboard 部署 + 项目集成实操)
java·spring cloud·sentinel·熔断降级·热点参数限流·微服务流量控制
麦兜*9 分钟前
Spring Boot 3.x 升级踩坑大全:Jakarta EE 9+、GraalVM Native 与配置迁移实战
java·spring boot·后端·spring·spring cloud
独断万古他化15 分钟前
【SpringBoot 配置文件】properties 与 yml 的基础用法、格式及优缺点
java·spring boot·后端
玄〤16 分钟前
Spring MVC 讲解:从初始化流程到请求参数与 JSON 处理全解析(黑马课程ssm笔记总结)(day5)
java·spring·json·mvc
廋到被风吹走18 分钟前
【Java】【JVM】垃圾回收深度解析:G1/ZGC/Shenandoah原理、日志分析与STW优化
java·开发语言·jvm
xrkhy19 分钟前
Java全栈面试题及答案汇总(3)
java·开发语言·面试
SunnyDays101122 分钟前
Java 高效实现 CSV 转 PDF
java·csv转pdf
隐形喷火龙24 分钟前
SpringBoot 异步任务持久化方案:崩溃重启不丢任务的完整实现
java·spring boot·后端