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
- JIOEndPoint
NIO源码结构
- Http11NioProtocol
- NioEndPoint
- Accepter
- PoolerEvent
- Pooler
- SocketProcess
- NioEndPoint
Tomcat connector 并发参数
server.xml配置详解
server.xml 体系结构
<Server>
<Listener /><!-- 监听器 -->
<GlobaNamingResources> <!-- 全局资源 -->
</GlobaNamingResources
<Service> <!-- 服务 用于 绑定 连接器与 Engine -->
<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
<service>
元素的主要作用是将 一到多个Connector 与一个 Engine 关联。当Connector 接收到请求后分发给 Engine 进行处理。host
host 表示一个虚拟主机,默认使用localhost ,一个Engine 中可配置多个hostContext
表示应用加载目录 通过 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