Tomcat修行之路
tomcat源码分析与实战
林浅时无人
做个有气质的博主
展开
-
Tomcat修行之路-1.Tomcat源码环境搭建
概述源码环境搭建下载源码,以tomcat8.5为例。解压文件,得到目录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-instance" xsi原创 2020-12-09 23:24:54 · 58 阅读 · 0 评论 -
Tomcat修行之路-2.启动流程分析
概述启动流程启动脚本正常情况下是通过启动Tomcat目录下的bin目录下的脚本文件启动,所以说Tomcat流程的启动的起始点也是从此开始的。以windows下的Tomcat为例,startup.bat文件的内容如下:@echo offrem Licensed to the Apache Software Foundation (ASF) under one or morerem contributor license agreements. See the NOTICE file distri原创 2020-12-14 22:34:17 · 201 阅读 · 0 评论 -
Tomcat修行之路-3.类加载机制的原理
概述类加载机制:java类 ->字节码文件.class->将字节码文件加载jvm内存中类加载器:JVM启动的时候先把类加载器读取到内存中,以方便去加载其他的类文件。JVM的类加载机制JVM的类加载机制中有一个非常重要的角色,叫做类加载器。类加载器有自己的体系。JVM内置了几种类加载器:引导类加载器,扩展类加载器,系统类加载器,他们之间形成父子关系,通过parent属性来定义这种关系,最终形成树结构。整体关系如下:除此之外,用户也可以自定义类加载器。当JVM运行过程中,用户也自定义原创 2020-12-14 22:41:44 · 148 阅读 · 0 评论 -
Tomcat修行之路-4.Tomcat对Https的支持
概述Https简介Http超文本传输协议,明文传输,不安全。Https在传输数据的时候会对数据进行加密—ssl,TLS协议和Http的区别Https协议使用时需要到电子商务认证授权机构CA申请证书Http默认使用8080,Https默认使用8443端口Https是具有SSL加密的安全性传输协议,对数据的传输进行加密,效果上相当于Http的升级版Http的连接是无状态的,不安全的;Https协议是由SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议。工作原理注意:Https原创 2020-12-21 21:54:09 · 311 阅读 · 0 评论 -
Tomcat修行之路-5.读取xml文件之Digester对象
概述Digester在Tomcat源码中org.apache.catalina.startup.Catalina对象的load方法里面,有一个xml文件的解析器。如下图:public void load() { if (loaded) { return; } loaded = true; long t1 = System.nanoTime(); initDirs(); // Before digester - it may be原创 2020-12-21 21:57:46 · 116 阅读 · 0 评论 -
Tomcat修行之路-6.责任链模式详解之Lifecycle机制与实现原理
概述Lifecycle在各组件的init,start方法中经常会看到一个setStateInternal方法的调用,在查看LifecycleBase类以及其他各组件的源码时也会在多处看到。LifecycleBase类实现了接口org.apache.catalina.Lifecycle,Lifecycle内容如下:细心一点,我们可以发现,之前提到的init和start方法实际上都是在这个接口里定义好的,也正因为有各组件最终实现这个接口作为前提条件,所以才能支持组件内部的initInternal,sta原创 2020-12-21 22:05:26 · 105 阅读 · 0 评论 -
Tomcat修行之路-7.Tomcat-Mapper组件机制以及请求处理机制
概述Mapper基类介绍请求处理机制原创 2020-12-23 22:29:13 · 198 阅读 · 0 评论 -
Tomcat修行之路-8.Tomcat-调优策略
概述系统性能的衡量指标主要是相应时间和吞吐量响应时间:执行某个操作的耗时;吞吐量:系统在给顶时间内能够支持的事务数量,单位为TPS优化方向:JVM虚拟机优化Tomcat自身虚拟机运行优化优化主要分为俩个方向:内存分配:影响服务的运行效率和吞吐量垃圾回收策略的优化:不同程度的导致程序运行中断内存分配-相关参数:参数调整实例:JAVA_OPTS="-server -Xms2048m -Xmx2048m -XX:MetaspaceSize=256m - XX:MaxMetaspac原创 2020-12-23 22:36:06 · 144 阅读 · 0 评论