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 方式:

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模式:

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性能比较(转载)

    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协议(配置SSL协议)

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

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

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

  6. b.Connector配置解析

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

  7. Nginx + Tomcat Windows下的负载均衡配置

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

  8. 基于SSL协议的双向认证 - 双向认证 [3]

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

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

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

随机推荐

  1. 使用ActivityManager实现进程管理

    Android中使用ActivityManager可以获得进程信息,并对进程进行管理,如结束进程等.本文使用ActivityManager获得进程列表,并结束选中的进程. 首先,看看布局文件. < ...

  2. hibernate3

    hibernate3 (整合到spring中的core核心配置中的hibernate3) <!-- 基于hibernate的Session工厂 --> <bean id=" ...

  3. C++/C互相调用

    C调用C++: 在C++程序中使用extern "C"{}来明确要求C++编译器不要对被调用的C++函数进行换名处理, 当然,这会导致函数无法重载 C++调用C: 在C++程序中使 ...

  4. 玩转Docker之常用命令篇(三)

    首先我们来解决一个小问题,使用docker每次都要用sudo,为了让非root用户使用docker,可将当前用户添加到docker用户组: sudo groupadd docker sudo gpas ...

  5. Training - Problem and Change Management

    Problem Management Problem management seeks to identify the underlying causes of incidents in an IT ...

  6. 使用coding、daocloud和docker打造markdown纯静态博客

    说起独立博客的技术演变,从数据库到纯文本放git是一大进步,从HTML到markdown又是一大进步. 解析技术有没有进步呢?既然markdown是纯文本了,再用PHP/Python/Ruby去实时解 ...

  7. Xamarin 手动安装步骤+破解(最新版Xamarin V3)

    Create native iOS, Android, Mac and Windows apps in C#. 看到这句话,你就知道Xamarin是什么了,对于C#开发者,这样的标语还是会让你激动一下 ...

  8. 20个基于 WordPress 搭建的精美网站

    WordPress 无处不在,小到人博客,大到广受欢迎的各类特色网站,你都能发现 WordPress 的影子,因为它是创建和维护一个网站最容易使用的平台. 另外,网络上有很多资源来创建你的网站,你基本 ...

  9. JS高程1.javascript简介

    1.javaScript诞生于1995年,最开始是为了处理以前由服务器端语言负责的一些诸如验证的操作. 2.一些名词: ECMA:European Computer Manufacturers Ass ...

  10. React Native 常见问题集合

    在使用React Native时候,我记录下比较常遇到的问题,分为以下几类: 1. 调试问题 2. 写法问题 3. 疑难问题 4. 奇怪问题 调试问题 1. 在react-native run-and ...