Tomcat-对集群原理的一些思考

一个用户是否会读到另一个用户正在写但没写完的数据?所谓的脏读不会的,因为一个session就对应一个用户,这是不会出现A用户读到B用户的session的。另外假设有10个节点,当请求经过apache到节点1,然后创建一个session,然后容器一边发送session复制的通知(异步通知),一边将相...

2018-06-26 21:09:59

阅读数:9

评论数:0

Tomcat源码分析---线程池原理

Tomcat线程池目前出现过三种,第一个是5.0的线程池模型,这个线程池目前在6.x的版本还存在,主要是用于AJP的,第二个是5.5.x时代使用了一仲线程池第三个是6.x版本的线程池,实际上这个不是tomcat的线程池了,tomcat使用的是JDK的线程池ThreadPoolExecutor首先来...

2018-06-26 21:09:12

阅读数:81

评论数:0

Tomcat源码分析---BIO请求处理过程

NIO和BIO在设计的架构上,很多东西都差不多,下面从一些类图开始介绍,NIO的部分完全可以参照这个图,两者都是非常类似的。首先看一下处理请求的核心类Http11Processor,和这个类关联的一些主要类图如下:NIO和BIO在设计的架构上,很多东西都差不多,下面从一些类图开始介绍,NIO的部分...

2018-06-26 21:07:40

阅读数:58

评论数:0

Tomcat源码分析---NIO请求处理过程

   NIO的启动过程这里就不再介绍了,具体请看《Tomcat源码分析---启动过程》一文。这里要补充几点,1.在启动的时候,执行到NioEndpoint#init()方法的最后一行,很不起眼的一句:selectorPool.open();也就是调用NioSelectorPool#open(),它...

2018-06-26 21:02:58

阅读数:59

评论数:0

Tomcat源码分析---停止过程

当Tomcat执行完后,会注册一个钩子线程,之后主线程main会启动一个ServerSocket,监听8005的数据。这两个方式都是用来做关闭处理的,钩子线程会调用Catalina#stop(),由Catalina负责关闭整个容器。当执行shutdown.bat命令后会发起一个socket连接,连...

2018-06-26 20:59:31

阅读数:39

评论数:0

Tomcat源码分析---后台线程管理

Tomcat后台管理以前也接触过,比如对普通session,持久session,集群session的超时管理,就是后台线程去做的。在看时序图之前首先看一下后台线程,也就是ContainerBase的内部类ContainerBackgroundProcessor里面的一个重要方法processChi...

2018-06-26 20:58:04

阅读数:41

评论数:0

Tomcat源码分析---启动过程

   Tomcat启动是由Bootstrap开始的,大家都知道Tomcat最顶层的容器是Server,而Server又是是由Catalina调用的,理论上可以不用Bootstrap,只用Catalina就可以启动tomat了,使用Bootstrap的理由是。设计者希望有多种方式启动Tomcat,C...

2018-06-25 11:41:03

阅读数:43

评论数:0

Tomcat源码分析---Session的管理

    Session的作用范围介于请求和上下文之间,多次请求可以公用一个session,但这个session是有时间限制的,而上下文是一直存在的。一个请求就对应一个Request,当请求结束了Request就会被回收,而session是通过request获取的,实际上request获取sessi...

2018-06-25 11:35:57

阅读数:20

评论数:0

Tomcat源码分析---集群原理

nnn

2018-06-25 11:26:51

阅读数:17

评论数:0

Tomcat源码分析---请求在容器中

   Tomcat容器处理请求的过程第一部分如下图所示:首先通过CoyoteAdapter调用connector.getContainer().getPipeline().getFirst().invoke(request, response);将请求转给容器,关于这句话的意思,请看  Tomca...

2018-06-25 11:25:57

阅读数:16

评论数:0

Tomcat-乱码

首先,说说JSP/Servlet中的几个编码的作用。 在JSP/Servlet中主要有以下几个地方可以设置编码,pageEncoding="UTF-8"、contentType="text /html;charset=UTF-8&quo...

2018-06-25 11:24:13

阅读数:13

评论数:0

Tomcat-配置JMX

Tomcat的JMX支持默认应该是关闭的,首先我们得打开Tomcat的JMX支持,同时指定远程访问的IP地址、接口、是否支持SSl,是否验证访问 等信息。 在Tomcat启动的VM arguments中加入下面的参数: Xml代码 1.-Dcom.sun.management.jmxremote ...

2018-06-25 11:22:57

阅读数:48

评论数:0

tomcat-web.xml配置

web.xml元素介绍我将自己知道的web.xml的元素整理了一下: web.xml首先是肯定要包 含它的schema. <web-app xmlns="http://java.sun.com/xml/ns/j2ee"    xmlns:x...

2018-06-25 11:22:14

阅读数:24

评论数:0

Tomcat-数据源配置

    这里我的Tomcat版本为5.0.28,这个版本应该说是Tomcat比较稳定的一个版本。     在 $TomcatHome$/conf/server.xml文件($TomcatHome$是指你的tomcat安装路径),然后在<Host>节点下添...

2018-06-25 11:20:46

阅读数:13

评论数:0

Tomcat-极限启动时间

2008-7-11 7:27:26 org.apache.coyote.http11.Http11Protocol init信息: Initializing Coyote HTTP/1.1 on http-80802008-7-11 7:27:26 org.apache.catalina.star...

2018-06-25 11:20:08

阅读数:25

评论数:0

Tomcat-阀

Tomcat 阀用于对Catalina 容器接收到的Http 请求进行预处理,可以加入到Eegine、Host和Context 三种容器中,作用范围如下:Engine :加入到Engine 中的Tomcat 阀可以预处理该Engine接收到的所有的Http请求Host :加入到Host 中的Tom...

2018-06-25 11:19:28

阅读数:15

评论数:0

Tomcat源码分析---设计模式

责任链模式(Chain of Responsibility)责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,知道链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在...

2018-06-22 12:19:29

阅读数:27

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭