![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Tomcat&Jetty
木棉上的光
公众号:不止于Java
Github:https://github.com/cyxpdc?tab=repositories
邮箱:1142439493@qq.com
展开
-
《深入拆解Tomcat&Jetty》总结一:Web服务器的前导知识之HTTP和Servlet规范
1 HTTP和Tomca/Jetty的关系 Tomcat/Jetty本质:HTTP服务器 + Servlet容器 HTTP请求过程: 补充:Tomcat的Session管理器提供了多种持久化方案来存储Session,通常会采用高性能的存储方式,比如Redis,并且通过集群部署的方式,防止单点故障,从而提升高可用。 同时,Session有过期时间,因此Tomcat会开启后台线程定期的轮询,如果Se...原创 2019-09-19 22:57:15 · 404 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结二:Tomcat系统架构
3 Tomcat系统架构 两个核心功能: 处理Socket连接,负责网络字节流与Request和Response对象的转化。 加载和管理Servlet,以及具体处理Request请求、回送Response响应。 对应的总体架构: Tomcat设计了两个核心组件连接器(Connector)和容器(Container)来分别做这两件事情。 连接器负责对外交流,容器负责内部处理。 Tomcat支...原创 2019-09-19 23:04:07 · 399 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结三:Tomcat的启停
4 Tomcat实现一键式启停 回顾一下总体架构和一个请求的流转过程: 想让一个系统能够对外提供服务,需要创建、组装并启动这些组件; 在服务停止的时候,还需要释放资源,销毁这些组件,因此这是一个动态的过程。 也就是说,Tomcat需要动态地管理这些组件的生命周期。 4.1 一键式启停:LifeCycle接口 最直观的做法就是将图上所有的组件按照先小后大、先内后外的顺序创建出来,然后组装在一起。 ...原创 2019-09-20 11:27:44 · 269 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结四:Jetty架构解析
6 Jetty架构 Jetty更加小巧,更易于定制化 6.1 整体架构 简单来说,Jetty Server由多个Connector(连接器)、多个Handler(处理器),以及一个线程池组成。 Connector组件和Handler组件分别来实现HTTP服务器和Servlet容器的功能; 这两个组件工作时所需要的线程资源都直接从一个全局线程池ThreadPool中获取。 Jetty Server...原创 2019-09-20 17:19:15 · 390 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结五:EndPoint+Processor+Executor
补充: https://jiges.github.io/2018/02/07/%E4%BA%94%E5%A4%A7IO%E6%A8%A1%E5%9E%8B 7 EndPoint组件+Processor+Executor I/O就是计算机内存与外部设备之间拷贝数据的过程。 CPU访问内存的速度远远高于外部设备,因此CPU是先把外部设备的数据读到内存里,然后再进行处理。 当程序通过CPU向外部设备发出...原创 2019-09-21 20:31:53 · 475 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结六:关于性能的设计
8 Jetty的线程策略EatWhatYouKill Jetty总体架构设计: Connector: ManagedSelector在线程策略方面的做法:将I/O事件的侦测和处理放到同一个线程来处理,充分利用了CPU缓存并减少了线程上下文切换的开销。 这种名为“EatWhatYouKill”的线程策略将吞吐量提高了8倍 8.1 Selector常规思路 常规的NIO编程思路是,将I/O事件的侦...原创 2019-09-21 22:40:49 · 583 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结七:容器
11 Host容器::如何实现热部署和热加载 要在运行的过程中升级Web应用,如果不想重启系统,实现的方式有两种:热加载和热部署。 具体实现跟类加载机制有关: 热加载的实现方式是Web容器启动一个后台线程,定期检测类文件的变化,如果有变化,就重新加载类,在这个过程中不会清空Session ,一般用在开发环境。 热部署原理类似,也是由后台线程定时检测Web应用的变化,但它会重新加载整个Web应用。...原创 2019-09-22 17:26:55 · 547 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结八:通用模块
13 Logger组件:日志框架及实战 默认情况下,Tomcat 使用自身的JULI 作为 Tomcat 内部的日志处理系统。 JULI 的日志门面采用了 JCL;而 JULI 的具体实现是构建在 Java 原生的日志系统java.util.logging之上的 13.1 Java原生日志 java.util.logging组件: Logger:用来记录日志的类。 Handler:规定了日志的...原创 2019-09-23 16:44:19 · 641 阅读 · 0 评论