Tomcat学习

2019-04-14 21:32发布

Tomcat学习

四种线程模

这里写图片描述

指定IO模型

  • BIO
    protocol=”org.apache.coyote.http11.Http11Protocol”
  • NIO
    protocol=”org.apache.coyote.http11.Http11NioProtocol”
  • AIO
    protocol=”org.apache.coyote.http11.Http11Nio2Protocol”
  • APR
    protocol=”org.apache.coyote.http11.Http11AprProtocol”

BIO源码结构

  • Http11Protocol
    • JIOEndPoint
      • Accepter
      • SocketProcess

NIO源码结构

  • Http11NioProtocol
    • NioEndPoint
      • Accepter
      • PoolerEvent
      • Pooler
      • SocketProcess

Tomcat connector 并发参数

这里写图片描述
这里写图片描述

server.xml配置详解

server.xml 体系结构

<Server> <Listener /> <GlobaNamingResources> GlobaNamingResources <Service> <Connector 8080/> <Connector 8010 /> <Connector 8030/> <Engine> <Logger /> <Realm /> <host "www.tl.com" appBase=""> <Logger /> <Context "/luban" path=""/> host> Engine> Service> Server> 这里写图片描述
  • service
    一个 server 可对应多个 service
    元素的主要作用是将 一到多个Connector 与一个 Engine 关联。当Connector 接收到请求后分发给 Engine 进行处理。
  • host
    host 表示一个虚拟主机,默认使用localhost ,一个Engine 中可配置多个host
  • Context
    表示应用加载目录 通过 path 属性指定。其相对路径为 catalina_base 目录。可配置多个 Context。另外也可以在 $catalina_base/conf/$host_name/XXX.xml 中添加 Context 元素。

server.xml配置详解

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

Tomcat 会话管理器

  • StandardManager
    Tomcat6的默认会话管理器,用于非集群环境中对单个处于运行状态的Tomcat实例会话进行管理。当Tomcat关闭时,这些会话相关的数据会被写入磁盘上的一个名叫SESSION.ser的文件,并在Tomcat下次启动时读取此文件。
  • PersistentManager
    当一个会话长时间处于空闲状态时会被写入到swap会话对象,这对于内存资源比较吃紧的应用环境来说比较有用。
  • DeltaManager
    用于Tomcat集群的会话管理器,它通过将改变了会话数据同步给集群中的其它节点实现会话复制。这种实现会将所有会话的改变同步给集群中的每一个节点,也是在集群环境中用得最多的一种实现方式。
  • BackupManager
    用于Tomcat集群的会话管理器,与DeltaManager不同的是,某节点会话的改变只会同步给集群中的另一个而非所有节点。
可参考资料:
http://blog.csdn.net/wangyangzhizhou/article/details/48339853
http://blog.csdn.net/lantian0802/article/details/8910238
http://blog.csdn.net/dc_726/article/details/11821235