Tomcat
森林森
java学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Session共享问题
Session共享及Session保持或者叫做Session⼀致性出现这个问题的原因,从根本上来说是因为Http协议是⽆状态的协议。客户端和服务端在某次会话中产⽣的数据不会被保留下来,所以第⼆次请求服务端⽆法认识到你曾经来过, Http为什么要设计为⽆状态协议?早期都是静态⻚⾯⽆所谓有⽆状态,后来有动态的内容更丰富,就需要有状态,出现了两种⽤于保持Http状态的技术,那就是Cookie和Session。⽽出现上述不停让登录的问题,分析如下图:场景: nginx默认轮询策略解决Session⼀原创 2020-07-23 19:24:33 · 1432 阅读 · 0 评论 -
Tomcat 性能优化策略
系统性能的衡量指标,主要是响应时间和吞吐量。1)响应时间:执⾏某个操作的耗时;2) 吞吐量:系统在给定时间内能够⽀持的事务数量,单位为TPS(Transactions PerSecond的缩写,也就是事务数/秒,⼀个事务是指⼀个客户机向服务器发送请求然后服务器做出反应的过程。Tomcat优化从两个⽅⾯进⾏1) JVM虚拟机优化(优化内存模型)2) Tomcat⾃身配置的优化(⽐如是否使⽤了共享线程池? IO模型?)JVM虚拟机优化Java 虚拟机的运⾏优化主要是内存分配和垃圾回收策略的优化:原创 2020-07-15 17:58:01 · 335 阅读 · 0 评论 -
Tomcat类加载机制
引导类加载器 和 扩展类加载器 的作⽤不变系统类加载器正常情况下加载的是 CLASSPATH 下的类,但是 Tomcat 的启动脚本并未使⽤该变量,⽽是加载tomcat启动的类,⽐如bootstrap.jar,通常在catalina.bat或者catalina.sh中指定。位于CATALINA_HOME/bin下Common 通⽤类加载器加载Tomcat使⽤以及应⽤通⽤的⼀些类,位于CATALINA_HOME/lib下,⽐如servlet-api.jarCatalina ClassLoade..原创 2020-07-15 15:02:53 · 306 阅读 · 0 评论 -
Tomcat 请求流程
原创 2020-07-14 20:22:04 · 149 阅读 · 0 评论 -
Tomcat初始化与启动流程
初始化入口 startup.bat或者startup.shorg.apache.catalina.startup.Bootstrap#mainpublic static void main(String args[]) { synchronized (daemonLock) { if (daemon == null) { // Don't set daemon until init() has completed .原创 2020-07-14 18:15:34 · 2383 阅读 · 0 评论 -
手写一个迷你版本的Tomcat
迷你版本的Tomcat1.0达成目标 向浏览器输出字符工具类public class HttpProtocolUtil { /** * 200的响应头 * @param length * @return */ public static String getHttpHeader200(long length){ return "HTTP/1.1 200 OK"+"\n"+ "Content原创 2020-07-14 10:13:11 · 393 阅读 · 0 评论 -
Tomcat-核⼼配置详解-server.xml
#### Tomcat -server.xml结构<!--Server 根元素,创建⼀个Server实例,⼦标签有 Listener、 GlobalNamingResources、Service 中有 Connector Engine Host --><?xml version="1.0" encoding="UTF-8"?><Server port="8005" shutdown="SHUTDOWN"> <Listener classNa原创 2020-07-13 14:09:43 · 366 阅读 · 1 评论 -
Tomcat Servlet 容器 Catalina-简介
Tomcat Servlet 容器 CatalinaTomcat是⼀个由⼀系列可配置(conf/server.xml)的组件构成的Web容器,⽽Catalina是Tomcat的servlet容器从另⼀个⻆度来说, Tomcat 本质上就是⼀款 Servlet 容器, 因为 Catalina 才是 Tomcat 的核⼼ , 其他模块都是为Catalina 提供⽀撑的。 ⽐如 : 通过 Coyote 模块提供链接通信, Jasper 模块提供 JSP 引擎, Naming 提供JNDI 服务, Jul原创 2020-07-13 11:22:58 · 676 阅读 · 0 评论 -
Tomcat 连接器组件-Coyote简介
简介Coyote 是Tomcat 中连接器的组件名称 , 是对外的接⼝。客户端通过Coyote与服务器建⽴连接、发送请求并接受响应 。Coyote 封装了底层的⽹络通信(Socket 请求及响应处理)Coyote 使Catalina 容器(容器组件)与具体的请求协议及IO操作⽅式完全解耦Coyote 将Socket 输⼊转换封装为 Request 对象,进⼀步封装后交由Catalina 容器进⾏处理,处理请求完成后, Catalina 通过Coyote 提供的Response 对象将结果写⼊输原创 2020-07-13 11:05:35 · 1900 阅读 · 0 评论 -
Tomcat总体架构-简单介绍
浏览器访问服务器的流程浏览器访问服务器使⽤的是Http协议, Http是应⽤层协议,⽤于定义数据通信的格式,具体的数据传输使⽤的是TCP/IP协议Tomcat 系统总体架构Tomcat处理Http请求的大致流程Tomcat是⼀个Http服务器(能够接收并且处理http请求,所以tomcat是⼀个http服务器)我们使⽤浏览器向某⼀个⽹站发起请求,发出的是Http请求,那么在远程, Http服务器接收到这个请求之后,会调⽤具体的程序(Java类)进⾏处理,往往不同的请求由不同的Java类完成处原创 2020-07-10 21:04:26 · 324 阅读 · 0 评论 -
Apache Tomcat 源码分析环境搭建
官网下载https://tomcat.apache.org/download-80.cgi这里下载apache-tomcat-8.5.50-src可以选择其它版本添加 pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc原创 2020-07-10 18:43:19 · 577 阅读 · 0 评论 -
转载 -Apache Tomcat 源码分析环境搭建
Apache Tomcat 源码分析环境搭建 原创 ...转载 2020-04-17 11:59:53 · 232 阅读 · 0 评论 -
tomcat-Container容器
ContainerTomcat有4种容器,分别是Engine,Host,Context,Wrapper,之间是父子关系public interface Container extends Lifecycle {Container 也继承了Lifecyle生命周期接口,Context 表示一个 Web 应用程序Wrapper 表示一个ServletHost表示一个站点Engine...原创 2019-08-02 14:06:23 · 480 阅读 · 0 评论 -
Tomcat-Lifecycle接口
启动过程Tomcat 的/bin目录下的脚本startup.sh来启动TomcatLifecycle -生命周期接口Lifecycle接口是一个公用的接口,定义了组件生命周期的一些方法,用于启动、停止Catalina组件。它是一个非常重要的接口,组件的生命周期包括:init、start、stop、destory,以及各种事件的常量、,典型的观察者模式public interface L...原创 2019-08-01 18:13:48 · 739 阅读 · 0 评论 -
NioEndpoint组件
NioEndpoint组件UNIX 系统下的 I/O 模型有 5 种:同步阻塞 I/O同步非阻塞I/OI/O多路复用信号驱动I/O(不了解)异步I/O所谓I/O,就是计算机内存与外部设备之间拷贝数据的过程。JAVA I/O模型当用记发起I/O操作后,经历2个步骤用户线程等待内核将数据从网卡(外设)中拷贝到内核空间内核将数据从内核空间拷贝到用户空间同步阻塞I/O用户...原创 2019-08-05 17:06:41 · 1215 阅读 · 0 评论 -
Tomcat整体结构
Tomcat 2个核心功能处理Socket连接,负责网络字节流与Request和Response对象的转化。加载和管理Servlet,以及具体处理Request请求。Tomcat设计2个核心组件连接器(Connector)和容器(Container)来分别做这两件事情。连接器负责对外交流容器负责内部处理Tomcat 支持的多种 I/O 模型和应用层协议NIO :非阻塞I/O...原创 2019-08-01 09:05:59 · 188 阅读 · 0 评论 -
一个请求怎么从Tomcat到Spring的流程
SocketProcessorBase - runNioEndpoint -doRunAbstractProtocol-processAbstractProcessorLight -processHttp11Processor - servcieCoyoteAdapter-service原创 2019-08-02 18:32:24 · 2531 阅读 · 1 评论
分享