
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 · 443 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结二:Tomcat系统架构
3 Tomcat系统架构两个核心功能:处理Socket连接,负责网络字节流与Request和Response对象的转化。加载和管理Servlet,以及具体处理Request请求、回送Response响应。对应的总体架构:Tomcat设计了两个核心组件连接器(Connector)和容器(Container)来分别做这两件事情。连接器负责对外交流,容器负责内部处理。Tomcat支...原创 2019-09-19 23:04:07 · 438 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结三:Tomcat的启停
4 Tomcat实现一键式启停回顾一下总体架构和一个请求的流转过程:想让一个系统能够对外提供服务,需要创建、组装并启动这些组件;在服务停止的时候,还需要释放资源,销毁这些组件,因此这是一个动态的过程。也就是说,Tomcat需要动态地管理这些组件的生命周期。4.1 一键式启停:LifeCycle接口最直观的做法就是将图上所有的组件按照先小后大、先内后外的顺序创建出来,然后组装在一起。...原创 2019-09-20 11:27:44 · 316 阅读 · 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 · 444 阅读 · 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向外部设备发出...原创 2019-09-21 20:31:53 · 527 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结六:关于性能的设计
8 Jetty的线程策略EatWhatYouKillJetty总体架构设计:Connector:ManagedSelector在线程策略方面的做法:将I/O事件的侦测和处理放到同一个线程来处理,充分利用了CPU缓存并减少了线程上下文切换的开销。这种名为“EatWhatYouKill”的线程策略将吞吐量提高了8倍8.1 Selector常规思路常规的NIO编程思路是,将I/O事件的侦...原创 2019-09-21 22:40:49 · 674 阅读 · 0 评论 -
《深入拆解Tomcat&Jetty》总结七:容器
11 Host容器::如何实现热部署和热加载要在运行的过程中升级Web应用,如果不想重启系统,实现的方式有两种:热加载和热部署。具体实现跟类加载机制有关:热加载的实现方式是Web容器启动一个后台线程,定期检测类文件的变化,如果有变化,就重新加载类,在这个过程中不会清空Session ,一般用在开发环境。热部署原理类似,也是由后台线程定时检测Web应用的变化,但它会重新加载整个Web应用。...原创 2019-09-22 17:26:55 · 596 阅读 · 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 · 677 阅读 · 0 评论