Tomcat:基于HTTP协议的Connector配置

时间:2021-08-04 01:03:43

Tomcat Connector 是请求接收环节与请求处理环节的连接器,具体点说,就是将接收到的请求传递给Tomcat WEB容器进行处理。

Tomcat可以处理的不同协议的请求,例如HTTP协议、AJP协议。其中AJP是Tomcat与其他Web Server(例如Apache Server、IIS等)连接使用的协议。

对于HTTP协议,根据处理Socket中IO的方式的不同,又可以分为BIO、NIO、APR方式。

下面就针对Tomcat 6中的BIO、NIO方式作一个简单的说明:

BIO 方式:

Tomcat:基于HTTP协议的Connector配置

Acceptor负责接收Socket,然后将socket传递给Worker队列中的一个worker。Worker的职责是调用HTTP11Processor,进行请求的解析,封装成Request Response对象然后由WEB容器来处理。

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

1)acceptCount:是等待队列最大长度。说白了就是当所有的线程都被占用后,对列里还能放一个HTTP请求等待处理。通常这个数值要大于线程池中线程的最大数。Tomcat 6 源码中没有发现有这个字段的设置,需要确认。

2)maxThreads:线程池中的最大线程数。默认200。如果使用Executor,就是执行线程池的最大线程数,如果不使用Executor,就是指定worker的最大数,每一个worker持有一个Thread,所以也是设置最大处理线程数。

3)connectionTimeout:当Tomcat与访问端建立Socket连接后,连接器接收到请求前,最大等待时间。默认是60秒。

4)keepAliveTimeout:HTTP1.1默认使用keepalive方式的,就是在建立一个连接中,可以发多个HTTP请求。这个属性就是设置在连接被关闭之前,连接器会等待下一个HTTP请求多长时间(如果在指定时间内等不到下一个连接,就会关闭连接的)。

5)maxKeepAliveRequests:建立一个连接后,可以接收的最大请求数。默认值100.

NIO模式:

Tomcat:基于HTTP协议的Connector配置

Tomcat:基于HTTP协议的Connector配置

Acceptor采用NIO API接收SocketChannel,封装成NIOChannel,然后由Poller将其放到PollerEvent队列中。

Poller其实是封装了一个Selector,Pooler用于从PollerEvent选择可以处理的event进行处理。

在处理一个envent时,会将可处理的event发送给Worker队列中的一个worker,worker的处理过程与BIO中的一样。

1)acceptorThreadCount:接收Socket连接的线程数。默认值是1,这个值不需要太大,最大值与CPU核心数一样就行了,没有必要太大。

2)selecorTimeout:选择超时时间。

3)maxKeepAliveRequests:与BIO一样。

4)maxThreads最大线程数

Tomcat:基于HTTP协议的Connector配置的更多相关文章

  1. Tomcat 6 支持 NIO -- Tomcat的四种基于HTTP协议的Connector性能比较&lpar;转载&rpar;

    Tomcat从5.5版本开始,支持以下四种Connector的配置分别为: <Connector port="8081" protocol="org.apache. ...

  2. Tomcat的四种基于HTTP协议的Connector性能比较

    Tomcat从5.5版本开始,支持以下四种Connector的配置分别为: <Connector port="8081" protocol="org.apache. ...

  3. 基于apache的tomcat负载均衡和集群配置

    最近不是很忙,用零碎时间做点小小的实验. 以前公司采用F5负载均衡交换机,F5将请求转发给多台服务器,每台服务器有多个webserver实例,每个webserver分布在多台服务器,交叉式的分布集群. ...

  4. 配置Tomcat使用https协议&lpar;配置SSL协议&rpar;

    配置Tomcat使用https协议(配置SSL协议) 2014-01-20 16:38 58915人阅读 评论(3) 收藏 举报 转载地址:http://ln-ydc.iteye.com/blog/1 ...

  5. 通过python基于netconf协议获取网络中网元的配置数据,助力企业网络控制自动化轻松实现!

    摘要:在当今信息化时代,大多数企业都需要网络支撑企业的ICT运行,提升企业运行效率,针对企业网络中的网元设备(包括交换机,路由器,防火墙等),很多企业希望根据自身的业务特点定制网络管理,比如可以实现网 ...

  6. b&period;Connector配置解析

    前面讲解到Tomcat中使用Digester框架进行server.xml到javaBean对象的映射,这篇文章以Connector的SSL通道为例,来讲解Connector的属性是如何注入的. 先看一 ...

  7. Nginx &plus; Tomcat Windows下的负载均衡配置

     Nginx + Tomcat Windows下的负载均衡配置 一.为什么需要对Tomcat服务器做负载均衡?    Tomcat服务器作为一个Web服务器,其并发数在300-500之间,如果超过50 ...

  8. 基于SSL协议的双向认证 - 双向认证 &lbrack;3&rsqb;

    1      SSL双向认证的实现 这里是基于SSL和Tomcat配置实现的,配置方法如下: 1.1    生成CA数字证书 首先需要配置OPENSSL环境变量. 我的OPENSSL配置文件路径是“D ...

  9. Tomcat热部署和虚拟目录配置

    1.Tomcat如何配置热部署 默认就是 <Host appBase="webapps" autoDeploy="true" name="loc ...

随机推荐

  1. 根据关键词kill进程

    #!/bin/sh pid=`ps -ef | grep /usr/bin/memcached | grep -v grep | awk '{print $2}'` kill $pid

  2. 【原创】C&num;搭建足球赛事资料库与预测平台&lpar;2&rpar; 数据库与XCode组件

            本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录  本篇文章开始将逐步 ...

  3. ios学习笔记

    1.对于autorelease的理解 Each thread in a Cocoa application maintains its own stack of autorelease pool bl ...

  4. CentOS 安装jdk7

    1.下载jdk​​ http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html​ 选择jdk ...

  5. LESS语法备忘

    变量 很容易理解: @nice-blue: #5B83AD; @light-blue: @nice-blue + #111; #header { color: @light-blue; } 输出: # ...

  6. android使用tabhost实现导航

    参考 http://blog.csdn.net/xixinyan/article/details/6771341 http://blog.sina.com.cn/s/blog_6b04c8eb0101 ...

  7. JAVA责任链设计模式

    <JAVA与模式>之责任链模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模 ...

  8. python 在 for i in range&lpar;&rpar; 块中改变 i 的值的效果

    先上一段代码: for i in range(3): i = 2 print(i) 实际结果是: 2 2 2 可以发现实际效果就是 在每次执行 for 语句块的内容后 i 会被重新赋值

  9. SPSS Modeler数据挖掘项目实战(数据挖掘、建模技术)

    SPSS Modeler是业界极为著名的数据挖掘软件,其前身为SPSS Clementine.SPSS Modeler内置丰富的数据挖掘模型,以其强大的挖掘功能和友好的操作习惯,深受用户的喜爱和好评, ...

  10. Spider&lowbar;Man&lowbar;3 の selenium

    一:介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作, ...