精华内容
下载资源
问答
  • tomcat9源码详解1tomcat架构0 官方文档1 图示2 说明3 关键词解释 0 官方文档 整体: hhttps://tomcat.apache.org/tomcat-9.0-doc/architecture/overview.html. server: ...

    tomcat9源码阅读1tomcat架构

    0 官方文档

    整体: https://tomcat.apache.org/tomcat-9.0-doc/architecture/overview.html.
    server: https://tomcat.apache.org/tomcat-9.0-doc/config/server.html.
    service: https://tomcat.apache.org/tomcat-9.0-doc/config/service.html.
    Engine: https://tomcat.apache.org/tomcat-9.0-doc/config/engine.html.
    host: https://tomcat.apache.org/tomcat-9.0-doc/config/host.html.
    HTTP Connector: https://tomcat.apache.org/tomcat-9.0-doc/config/http.html.
    context: https://tomcat.apache.org/tomcat-9.0-doc/config/context.html.

    1 图示

    在这里插入图片描述

    2 说明

    仅有一个server
    一个server包含多个service
    一个service包含多个connector和一个engine
    一个engine包含多个host
    一个host包含多个context

    3 关键词解释

    connector:从端口中读取数据,并把数据转成httpRequest:向端口中写数据,数据来自httpResponse
    host: 域名,根据uri进行匹配: 如:www.xxxcompany.com
    context:webApp,根据uri进行匹配: 如xxxapp.war

    展开全文
  • Tomcat核心架构整理

    2020-05-08 00:26:27
    Tomcat核心架构图(基于tomcat 9.x版本) 一 内部组件分层 1. Server: 对应于server.xml的server节点,只能有一个节点,管理多个service节点。代表servlet容器,但是其内部并不属于容器结构,在tomcat内部,属于...

    Tomcat核心架构图(基于tomcat 9.x版本)

    一 内部组件分层

    1. Server:  对应于server.xml的server节点,只能有一个节点,管理多个service节点。 代表servlet容器,但是其内部并不属于容器结构,在tomcat内部,属于容器的只有engine,host, context和servelt(wrapper)四类。

    2. Service:代表一个完整请求的处理服务,包含多个socket处理层(Connector)和一个请求处理层(Engine)。多个service可以同时嵌入在一个server内。Service在Tomcat内部也不代表容器。因此同Server一样不能嵌入Valve。

    3. Connector:Http请求连接层。负责http底层socket请求的监听和解析,最终解析为完整的request信息发送给Engine进行业务处理。

    4. Engine:是Service的请求处理引擎,它服务处理对应Service的一个或多个Connector的请求的处理。一个Service只能有一个Engine。它在Tomcat内部代表真正的容器,因此可以设置Valve。它内部管理一个或多个Host。

    5. Host: 对应于Tomcat内部的虚拟主机。通过设置它的名字来对应web请求的域名。它是Tomcat内部的第二类容器,它管理着一个或多个Application(Context)。
    6. Context: 代表一个web应用,是Tomcat内部的第三类容器。Servlet的宿主。

    7. Wrapper: 代表一个Servlet。是Tomcat内部的第四类容器,最终的请求处理的地方。

    二 组件的初始化

    1. 启动引擎: Catalina。

    首先,Catalina通过构造一个能够利用各种Rule解析Server.xml的Digester来解析server.xml对应的所有元素,最终生成一个内部的Server对象(StandardServer)。

    2. 初始化:

    当Server生成之后,调用server的init,触发server及其内部所有Service的的初始化。

    Service 初始化:依次调用Engine的初始化,Connector初始化。

    Connector初始化---->ProtocalHandler初始化----->EndPoint初始化

    三 启动

    初始化完成后,Catalina驱动server进行start。

    同样的,server再一次调用它管理的每一个Service的start。

    3.1 Engine start

    同初始化,service首先调用Engine的start。

    Engine接着唤起它管理的Host的start。

    3.1.1 Host的start

    Host start同样像它的父亲Engine一样,依次调用了它管理的每个Context的启动。

    而到此时,Host所拥有Context仅仅只有在server.xml文件Host节点下面配置的Context节点(如果配置了的话)。那么除了这种方式之外,还有其他的两种方式:

    1)在Host configBase(/config/${engineName}/${hostName})下面放置的${app}.xml

    2) Host appBase下面的解压文件或者是war文件。

    这些何时启动呢,Host启动应该是最后的时候了。确实,当Host启动的时候,首先依然先把server.xml文件Host节点下面配置的Context节点对应的应用部署,然后,通过事件STARTING(true, Lifecycle.START_EVENT)发布的方式,通过HostConfig根据Host的配置依次检测部署其他两种方式配置的app。

    3.1.2 Context的start。

     Context是通过ContextConfig来进行读取web.xml来部署application。ContextConfig实现了LifecycleListener接口,通过监听CONFIGURE_START_EVENT事件触发Context的配置。

    3.2 MapperListener start

    Service中还有一个组件为Mapper。mapper的主要作用是做request到servlet的匹配。所用到的匹配信息就存储在mapper中。而mapper的信息最初就是在MapperListener启动时获取的。Service 启动Engine完成后,然后启动MapperListener,在MapperListener在启动时,注册Service对应Engine的下的每一个子组件以及子组件的子组件的信息。。。(Host,Context以及Wrapper的信息)。

    3.3 Connector start

    connector start---->protocalHandler start----->endPoint start----->poller start---->acceptor start

    四 Request请求过程

    4.1. Connector接收请求

    如上图所示: Acceptor线程接收 socket连接,Poller线程负责处理该连接的读写请求。

    Poller线程获取socket的读请求,交给SocketProcesser进行处理。由相应的协议处理器Processor负责将socket请求解析为Request的信息,由coyoteAdapter通过service的mapper映射request到具体的servlet,完成request所有信息的填充。

    4.2 Request的处理

    request映射完成后,发送给Engine的pipeline,一层层向下传递,最终传递到wrapper的pipeline,在StandardWrapperValve中创建FilterChain,然后进行filter的一层层过滤,最终到达Servlet。

    展开全文
  • Tomcat总体架构

    2020-05-08 08:34:08
    本人整理的Tomcat总体架构图,有需要原图的可以登录ProcessOn进行克隆,克隆地址为:https://www.processon.com/view/link/5eaab0c9e401fd21c19e6c35

    本人整理的Tomcat总体架构图,有需要原图的可以登录ProcessOn进行克隆,克隆地址为:https://www.processon.com/view/link/5eaab0c9e401fd21c19e6c35

     

    展开全文
  • tomcat体系架构

    2013-04-25 16:53:13
    [size=large][color=red]该架构请参考service.xml[/color][/size] [img]http://dl2.iteye.com/upload/attachment/0086/5151/119884e9-3022-3ea3-9763-4e2b9a40d8f8.png[/img]
    [size=large][color=red]该架构请参考service.xml[/color][/size]

    [img]http://dl2.iteye.com/upload/attachment/0086/5151/119884e9-3022-3ea3-9763-4e2b9a40d8f8.png[/img]
    展开全文
  • Tomcat8底层架构模式1 Tomcat8底层源码分析课程介绍2 Tomcat8基本的介绍3 Tomcat8目录结构的介绍4 Tomcat8四种部署的方式5 使用jconsole连接...tomcat8源码项目8 亲手画图分析Tomcat8架构9 总结Tomcat8架构设计思想...
  • Tomcat除了能够支撑通常的web ...目前tomcat版本已经衍生到tomcat9,但是主流的版本还是tomcat6。此系列架构体系介绍还是以tomcat6为蓝本。 Tomcat是有一系列逻辑模块组织而成,这些模块主要包括: 核心架构模块,...
  • Tomcat架构

    千次阅读 2019-02-19 15:03:49
    现在的tomcat已经到9了,当tomcat下载安装完成后,其目录大致如下:   3.1、bin文件夹 bin文件夹下面放的是可执行性文件,其中:bat/exe文件是Windows下可执行的脚本文件。sh文件时Linux/Unix下可执行的脚本...
  • tomcat架构解析

    2020-11-28 12:47:54
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201128124708557.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6... * Server 表示整个servlet容器,因此Tomcat容器中...
  • Tomcat 9 源码解析 -- tomcat框架设计 前文已经从架构层次讲解了tomcat框架设计,以及tomcat使用,以及每个模块的作用,以及各功能模块之间的关系。...下面是Tomcat 9 架构的一个启用的架构流程图: ...
  • 原文地址 ...org.apache.catalina.startup.Bootstrap ...通过这样的设计,tomcat给了外部代码,或者说基于tomcat的二次开发人员很大的灵活性,不必拘泥于tomcat本身的实现,也有利于tomcat自身的功能扩展。
  • 废话少说,拉代码,导入eclipse开干...下面谈谈我对Tomcat架构的理解 总体架构: 面向组件架构基于JMX事件侦听 1)面向组件架构 tomcat代码看似很庞大,但从结构上看却很清晰和简单,它主要由一堆组件组成
  • Tomcat整体架构图(转)

    2011-06-06 10:35:19
    从前辈那里转过来的: [img]http://dl.iteye.com/upload/attachment/493761/73429d4f-c9ca-304f-8db0-4cfd43ee1280.jpg[/img]
  • Tomcat架构解析.刘光瑞

    2020-11-01 09:46:19
    链接: https://pan.baidu.com/s/1uvYg0Sq1uqmNFaOgzKc8bA 提取码:g5p9
  • Tomcat整体架构与重要组件 1.Tomcat整体架构 如果你浏览过Tomcat源码相关文章,你一定对此图不陌生. Tomcat即是一个HTTP服务器,也是一个servlet容器,主要目的就是包装servlet,并对请求响应相应的servlet,纯...
  • 站在微服务架构情况下优化Tomcat81 站在微服务架构情况下优化Tomcat2 为什么需要站在微服务情况下优化Tomcat3 外部Tomcat容器优化移除jsp组件4 外部Tomcat容器移除welcome-file-list5 外部Tomcat容器移除Session和...
  • tomcat应用分析之tomcat9

    2018-04-25 09:05:17
    1.tomcat架构解析:(1)浏览器发送一个请求,tomcat server.xml中的Connector负责请求处理。也就是我们8080端口配置的地方。<Connector port="8080" protocol="HTTP/1.1" connection...
  • 区别见图片,但是Apache Tomcat 9是当前开发的重点。 参考资料1:Apache Tomcat 官方资料
  • 我们先来看一下tomcat8.5和tomcat9中的home目录中的文件: 可以看到除掉一些说明文件之后,还有7个目录: 目录名 用途 bin 存放用于启动及关闭的文件,以及其他一些脚本。其中,UNIX 系统专用的 *.sh 文件...
  • Web服务器Tomcat9的启动日志和原理

    千次阅读 2020-05-23 08:03:37
    结合后附的Tomcat架构图和处理HTTP 报文的过程图,清楚了Tomcat 服务器里的一个service中的负责HTTP报文连接处理的connector(coyote的AbstractProtocol )、负责HTTP 报文内容处理的container (Engine、host、...
  • tomcat使我们熟知的也是我们使用最多的web服务器了,至少我是使用最多的。常见的web服务器还有Apache,web logic,JBOSS等,对于tomcat的...现在已经发布了tomcat9版本。我们下面说的都是以tomcat8.5为例来说的。 ...
  • 2、为什么要共享3、搞清楚cookies与session的关系4 、session共享实现方法——memcache在tomcat中实现session交叉存放二、搭建session共享实验环境实验在server1上:在server2上:在真机上:总结 一、认识session 1...
  • 如果没有填写私钥密码,不提供Tomcat证书文件的下载,需要用户手动转换格式生成。 可以通过 Nginx 文件夹内证书文件和私钥文件生成jks格式证书 转换工具:https://www.trustasia.com/tools/cert-converter.htm ...
  • 谈谈 Tomcat 请求处理流程 转自:...(与本文在 GitHub 同一目录下)包括架构Tomcat Start 过程中的MapperListener相关描述。Conn...
  • 废话少说,拉代码,导入eclipse开干,具体步骤可以参考http://hi.baidu.com/hateeyes/blog/item/7f44942a20ad8f9d023bf66d.html下面谈谈我对Tomcat架构的理解总体架构:面向组件架构基于JMX事件侦听1)面向组件架构...
  • 废话少说,拉代码,导入eclipse开干,具体步骤可以参考http://hi.baidu.com/hateeyes/blog/item/7f44942a20ad8f9d023bf66d.html下面谈谈我对Tomcat架构的理解 总体架构:面向组件架构 基于JMX 事件侦听1)面向组件...
  • C/S架构: 客户端/服务器 减轻了服务器的压力, 每一次客户端升级,都需要付出人力,物力,财力 B/S架构: 浏览器/服务器 只要客户端安装的有浏览器,升级只需要升级服务端即可,但是也降低了对客户端的响应速度,...
  • Tomcat9 多端口 多项目

    2016-12-15 17:36:00
    为什么80%的码农都做不了架构师?>>> ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 392
精华内容 156
关键字:

tomcat9架构