上一篇HttpServer类职责很多,包括启动服务器,创建ServerSocket,得到客户端Socket,创建Request对象和Response对象,并解析Http请求,这样很混乱,不利于以后服务器的扩展,所以这次将职责分离,分成Bootstrap,HttpConnector,HttpProcessor类。

  Bootstrap类职责是启动服务器。

  HttpConnector类指代一个连接器,职责是创建一个服务器套接字用来等待前来的HTTP请求。

  HttpProcessor类用于解析Http请求,这里面解析的过程很重要。在这里没有解析查询字符串或者请求内容,而是交给了Servlet开发者,利用Request对象的众多方法来解析它,以此来获得更高的性能。

容器之升级架构:

Pipelining Tasks(流水线任务)

  一个流水线就像是过滤链,每个阀门像一个过滤器,每个阀门都可以操作传递给它的Request和Response对象的方法。让一个阀门完成了处理,则进一步处理流水线中的下一个阀门,基本阀门总是最后才被调用。

转载于:https://www.cnblogs.com/kingofkai/p/5830980.html

How Tomcat Works读书笔记之升级架构相关推荐

  1. how tomcat works 读书笔记(一)----------一个简单的webserver

    http协议 若是两个人能正常的说话交流,那么他们间必然有一套统一的语言规则<在网络上server与client能交流也依赖与一套规则,它就是我们说的http规则(超文本传输协议Hypertex ...

  2. How tomcat works 读书笔记十四 服务器组件和服务组件

    之前的项目还是有些问题的,例如 1 只能有一个连接器,只能处理http请求,无法添加另外一个连接器用来处理https. 2 对容器的关闭只能是粗暴的关闭Bootstrap. 服务器组件 org.apa ...

  3. 读书笔记 计算机系统--系统架构与操作系统的高度集成 第一章概叙

    大二下开始意识到计算机基础的重要性,就去图书馆随缘找了一本机械工业出版社的大部头书籍开始看, 也为了让自己养成总结和记录的习惯,把每一章的内容结构化的写成读书笔记.以后查阅方便. 这本书是集成的,计算 ...

  4. 【读书笔记】YARN架构设计与实现原理

    Hadoop技术内幕:深入解析YARN架构设计与实现原理 Hadoop技术内幕:深入解析YARN架构设计与实现原理 董西成 ◆ 第2章 YARN设计理念与基本架构 由于MRv2将资源管理功能抽象成了一 ...

  5. 专栏《乔新亮的CTO成长复盘》读书笔记(技术架构篇)

    架构决策能力不但非常关键,而且是技术管理者最重要的能力和职责之一,而且职级越高就越重要. 很多所谓的"技术债",也就是由一次次的决策失误不断累加而成的. 管理者要能充分利用自己的技 ...

  6. 【读书笔记】凤凰架构-事务处理

    事务处理 事务处理几乎在每一个信息系统中都会涉及,它存在的意义是为了保证系统中所有的数据都是符合期望的,且相互关联的数据之间不会产生矛盾,即数据状态的一致性(Consistency). 按照数据库的经 ...

  7. 【读书笔记《凤凰架构》- 构架可靠的大型分布式系统.周志明】(一)

    1. 前言 整部书分为5部分,除了第一章讲分布式架构的历史,其他四章都偏技术. 书本的作者提也到,再看书前最好先理解本书的排版的逻辑(尽管每一章都被设计为可以单独阅读) 但除第1部分, 剩下的4个部分 ...

  8. 读书笔记-许式伟架构课读后感-1

    1.程序员是一个门槛极低的职业 2.cpu指令分为三类并且是及其有限的: 计算类,也就是支持我们大家都熟知的各类数学运算,如加减乘除.sin/cos 等等. I/O 类,(从存储读写数据)从输入输出设 ...

  9. 读书笔记-许式伟架构课-如何阅读源代码

    读源代码的目的就是了解架构. 我认为首先要找出来软件实体,然后理一下软件实体之间的关系.看源代码,我们首先要做到的是理解系统的概要设计.概要设计的关注点是各个软件实体的业务范畴,以及它们之间的关系.有 ...

  10. 微服务集成——《微服务设计》读书笔记

    一.理想的集成应该是什么样的? 1.避免破坏性修改 如果在一个微服务的响应中添加一个字段,服务的消费方不应该受到影响. 2.保证API的技术无关性 微服务之间的通信应该是与技术无关的. 3.使服务的消 ...

最新文章

  1. 向阿里学数字化转型,驱动业绩新增长
  2. “芯”战争,人工智能芯片研发攻略
  3. 算法------ 两个链表的第一个公共节点
  4. 二叉树的基本特性和二叉树的几种基本操作的机制_关于二叉树,你该了解这些!...
  5. 云原生数据库 2.0:一站式全链路数据管理与服务
  6. [html] 如何使用H5实现电子签名?请说说你的思路
  7. sidhu眼中的CoordinatorLayout.Behavior(一)
  8. Git 如何拉取 github 上的代码
  9. Ubuntu安装caffe教程
  10. linux 程序员字体下载,编程字体Monaco字体 For Linux版
  11. office插件开发_Excel插件——方方格子
  12. 准确率(accuracy)、精确率(Precision)、召回率(Recall)
  13. openwrt默认mac地址配置(MT7620a)
  14. Java初始化大乱斗
  15. JAVA javaweb JSP水果管理系统源码(水果进销存管理系统水果管理系统(水果进销存)
  16. Spring Cloud 微服务项目实战 -
  17. PLC若想实现以太网口无线通讯,需要具备哪些条件?
  18. CF804B(1400)
  19. 《iOS APP 性能检测》
  20. Ubuntu为安装的软件添加启动图标

热门文章

  1. html页面显示代码插件,客户端显示web网页支持html5的第三方内核插件
  2. mybatis update不生效_08. mybatis一级缓存和二级缓存
  3. pwm 正弦波_增强型PWM抑制功能对于直列式电机控制的五大优势
  4. 代码整洁之道读书笔记----第三章---函数--第一节-专注且短小
  5. 浅谈算法和数据结构: 二 基本排序算法
  6. 最新版vmWare的安装后如何新建虚拟机
  7. 机器学习的偏差-方差分解
  8. mysql 指定驱动表_了解MySQL联表查询中的驱动表,优化查询,以小表驱动大表
  9. Raki的读paper小记:Named Entity Recognition as Dependency Parsing
  10. win10计算机维护,关掉win10系统自动维护功能的方法【图文教程】