zoukankan      html  css  js  c++  java
  • how tomcat works

    本文中只是提取了每个模块的关键部分,具体技术细节只能通过看代码来掌握。

    1、socket 、serversocket

    tcp通信

    2、servlet

    init

    destory

    process(req,resp)

    3、connector processor

    单请求单响应模型、阻塞

    4、connector processor container

    单请求多响应模型、非阻塞

    5、主要讲container

    wrapper - 1*servlet

    context - n*wrapper

    connector

    processor 

    6、生命周期管理

    Lifecycle 管理器

    LifecycleEvent 监听事件

    LifecycleListener 监听器

    7、日志记录器

     8、类加载器

    为什么tomcat需要自己的类加载器

    定制加载规则
    缓存加载过的类
    预加载类

     9、session管理

     10、安全管理

     11、StandardWrapper

    代码调用序列如下:

     12、StandardContext

    13、Engine和Host

     14、server 和 service

    Catalina主要包括connector和container两个模块,connector负责接收请求,传递给container,而container负责处理请求。
    service的作用是统一管理connector和container,一个service可以包括多个connector和一个container。而server的作用是,管理所有的service,一个server可以包括多个service。server负责管理所有service的生命周期,这样就管理了所有的connector和container,以及connector和container的所有内部组件。这样就不需要单独对connector和container单独进行开启或关闭了。

    15、Digester

     Tomcat是利用Digester解析server.xml。Digester是Apache下的开源项目

    16、关闭钩子

    非正常退出时,执行特定逻辑

     17、启动tomcat

    catalina 和 bootstrap

    18、部署

    参考文档:

    github地址 :https://github.com/Aresyi/HowTomcatWorks

    http://blog.csdn.net/u013159433/article/details/47415407

    https://yuedu.baidu.com/ebook/ac92f0d35122aaea998fcc22bcd126fff7055d60

    https://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/index.html

    http://blog.csdn.net/qq_24451605/article/details/51289519

    四张图带你了解Tomcat系统架构 https://www.dengxiangxing.com/post/57507

     一头扎进tomcat https://www.dengxiangxing.com/post/57720

  • 相关阅读:
    解决chrome console打印的信息一闪而过
    Docker 构建自定义镜像
    Docker 镜像、容器、仓库
    Docker 简介、下载安装
    执行yum list installed | grep xxx 命令时报错:未提供依赖perl-DBD-SQLite、perl-DBI
    SpringBoot 配置多种运行环境
    SpringCloud Config 分布式配置管理
    SpringCloud Sleuth+Zipkin 分布式链路追踪
    Dubbo 配置中心、元数据中心
    dubbo admin的使用
  • 原文地址:https://www.cnblogs.com/huilei/p/8085082.html
Copyright © 2011-2022 走看看