
tomcat
文章平均质量分 93
chuixue24
这个作者很懒,什么都没留下…
展开
-
深入拆解Tomcat&Jetty》总结八:通用模块
13 Logger组件:日志框架及实战默认情况下,Tomcat 使用自身的JULI 作为 Tomcat 内部的日志处理系统。JULI 的日志门面采用了 JCL;而 JULI 的具体实现是构建在 Java 原生的日志系统java.util.logging之上的13.1 Java原生日志java.util.logging组件:Logger:用来记录日志的类。Handler:规定了日志的输出方式,如控制台输出、写入文件。Level:定义了日志的不同等级。Formatter:将日志信息.转载 2022-03-11 18:35:16 · 160 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结七:容器
11 Host容器::如何实现热部署和热加载要在运行的过程中升级Web应用,如果不想重启系统,实现的方式有两种:热加载和热部署。具体实现跟类加载机制有关:热加载的实现方式是Web容器启动一个后台线程,定期检测类文件的变化,如果有变化,就重新加载类,在这个过程中不会清空Session ,一般用在开发环境。热部署原理类似,也是由后台线程定时检测Web应用的变化,但它会重新加载整个Web应用。这种方式会清空Session,比热加载更加干净、彻底,一般用在生产环境。11.1 Tomcat的后转载 2022-03-11 18:29:01 · 274 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结六:关于性能的设计
8 Jetty的线程策略EatWhatYouKillJetty总体架构设计:Connector:ManagedSelector在线程策略方面的做法:将I/O事件的侦测和处理放到同一个线程来处理,充分利用了CPU缓存并减少了线程上下文切换的开销。这种名为“EatWhatYouKill”的线程策略将吞吐量提高了8倍8.1 Selector常规思路常规的NIO编程思路是,将I/O事件的侦测和请求的处理分别用不同的线程处理。具体过程是:启动一个线程,在一个死循环里不断地调用se转载 2022-03-11 18:05:03 · 380 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结五:EndPoint+Processor+Executor
补充:https://jiges.github.io/2018/02/07/%E4%BA%94%E5%A4%A7IO%E6%A8%A1%E5%9E%8B7 EndPoint组件+Processor+ExecutorI/O就是计算机内存与外部设备之间拷贝数据的过程。CPU访问内存的速度远远高于外部设备,因此CPU是先把外部设备的数据读到内存里,然后再进行处理。当程序通过CPU向外部设备发出一个读指令时,数据从外部设备拷贝到内存往往需要一段时间,这个时候CPU没事干了,程序是主动把CPU让给别人转载 2022-03-11 17:00:06 · 700 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结三:Tomcat的启停
4 Tomcat实现一键式启停回顾一下总体架构和一个请求的流转过程:想让一个系统能够对外提供服务,需要创建、组装并启动这些组件;在服务停止的时候,还需要释放资源,销毁这些组件,因此这是一个动态的过程。也就是说,Tomcat需要动态地管理这些组件的生命周期。4.1 一键式启停:LifeCycle接口最直观的做法就是将图上所有的组件按照先小后大、先内后外的顺序创建出来,然后组装在一起。但是这样不仅会造成代码逻辑混乱和组件遗漏,而且也不利于后期的功能扩展。设计就是要找到系统的变化转载 2022-03-11 14:32:39 · 351 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结二:Tomcat系统架构
3 Tomcat系统架构两个核心功能:处理Socket连接,负责网络字节流与Request和Response对象的转化。加载和管理Servlet,以及具体处理Request请求、回送Response响应。对应的总体架构:Tomcat设计了两个核心组件连接器(Connector)和容器(Container)来分别做这两件事情。连接器负责对外交流,容器负责内部处理。Tomcat支持的I/O模型有:NIO:非阻塞I/O,采用Java NIO类库实现。NIO2:异步I/O,转载 2022-03-11 11:31:00 · 218 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结一:Web服务器的前导知识之HTTP和Servlet规范
1 HTTP和Tomca/Jetty的关系Tomcat/Jetty本质:HTTP服务器 + Servlet容器HTTP请求过程:补充:Tomcat的Session管理器提供了多种持久化方案来存储Session,通常会采用高性能的存储方式,比如Redis,并且通过集群部署的方式,防止单点故障,从而提升高可用。同时,Session有过期时间,因此Tomcat会开启后台线程定期的轮询,如果Session过期了就将Session失效。2 Servlet规范Servlet容器用来HTTP转载 2022-03-11 10:10:27 · 215 阅读 · 0 评论 -
tomcat类加载器WebappClassLoader
类/资源加载优先顺序:web-inf/classes下优先:这里的类是.class文件,资源是指配置文件,比如在web.xml文件中配置的spring配置文件:<context-param> <param-name>contextConfigLocation</param-name> <param-value> <!-- classpath:spring/spring-nacos.xml --&g原创 2020-11-13 18:06:52 · 1411 阅读 · 1 评论 -
内嵌Tomcat代码示例
package com.yky.logic.test;import java.io.File;import org.apache.catalina.core.AprLifecycleListener;import org.apache.catalina.core.StandardServer;import org.apache.catalina.startup.Tomcat;imp...原创 2020-03-18 16:03:51 · 398 阅读 · 0 评论 -
深度解读Tomcat中的NIO模型
一、I/O复用模型解读Tomcat的NIO是基于I/O复用来实现的。对这点一定要清楚,不然我们的讨论就不在一个逻辑线上。下面这张图学习过I/O模型知识的一般都见过,出自《UNIX网络编程》,I/O模型一共有阻塞式I/O,非阻塞式I/O,I/O复用(select/poll/epoll),信号驱动式I/O和异步I/O。这篇文章讲的是I/O复用。IO复用.png这里先来说下用户态...转载 2019-04-22 19:32:57 · 339 阅读 · 0 评论