`
shilimin
  • 浏览: 13661 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

tomcat Standard IO中acceptCount究竟是神马?

阅读更多

tomcat最根本就是一个Socket Server,于是我找到了org.apache.tomcat.util.net.DefaultServerSocketFactory#createSocket(int port, int backlog),最终就是这个方法执行new java.net.ServerSocket(port, backlog)启动了一个ServerSocket实例。

查看ServerSocket API就发现@param backlog  the maximum length of the queue.

 

明确了,tomcat的acceptCount就是ServerSocket的等待队列。

 

但设置的acceptCount怎么设置到backlog上呢,我翻了好一会儿代码才注意到org.apache.catalina.connector.Connector中有一个变态的HashMap通过这个HashMap把参数名做了一次转换,再赋值给Http11Protocol使用。这样的变态我想应该是想方便tomcat的使用者吧,毕竟整一个backlog参数谁知道是干什么的,另外这个HashMap也把其它参数名做了转换,代码如下

	protected static HashMap replacements = new HashMap();
	static {
		replacements.put("acceptCount", "backlog");
		replacements.put("connectionLinger", "soLinger");
		replacements.put("connectionTimeout", "soTimeout");
		replacements.put("connectionUploadTimeout", "timeout");
		replacements.put("clientAuth", "clientauth");
		replacements.put("keystoreFile", "keystore");
		replacements.put("randomFile", "randomfile");
		replacements.put("rootFile", "rootfile");
		replacements.put("keystorePass", "keypass");
		replacements.put("keystoreType", "keytype");
		replacements.put("sslProtocol", "protocol");
		replacements.put("sslProtocols", "protocols");
	}

	// ------------------------------------------------------------- Properties

	/**
	 * Return a configured property.
	 */
	public Object getProperty(String name) {
		String repl = name;
		if (replacements.get(name) != null) {
			repl = (String) replacements.get(name);
		}
		return IntrospectionUtils.getProperty(protocolHandler, repl);
	}

	/**
	 * Set a configured property.
	 */
	public boolean setProperty(String name, String value) {
		String repl = name;
		if (replacements.get(name) != null) {
			repl = (String) replacements.get(name);
		}
		return IntrospectionUtils.setProperty(protocolHandler, repl, value);
	}
 

总结:acceptCount参数其实就是new java.net.ServerSocket(port, backlog)的第二个参数,了解后再设置就不会盲目了。

myblog

4
9
分享到:
评论

相关推荐

    tomcat 最大并发连接数 acceptCount

    tomcat 最大并发数 并发量 tomcat 最大并发连接数 acceptCount不能说只要大于acceptCount的连接就一定被拒绝!

    Tomcat maxConnections、maxThreads、acceptCount 图解

    图解 Tomcat maxConnections、maxThreads、acceptCount

    Tomcat面试题 14道.pdf

    maxSpareThreads 指定了一旦创建的线程超过这个值,Tomcat 就会关闭不再需要的线程,acceptCount 指定了可以放到处理队列中的请求数。 四、Tomcat 部署方式 Tomcat 有多种部署方式,包括 WAR 文件部署、EAR 文件...

    tomcat日志切割和tomcat优化

    在Linux环境下,将Cronolog解压缩并放置在适当目录后,可以在Tomcat的启动脚本`catalina.sh`中配置Cronolog的命令,使其在Tomcat运行时动态地处理日志输出。 2. 如何配置Cronolog: 在`catalina.sh`中,通常会找到`...

    tomcat优化配置

    1. 加大 Tomcat 连接数:在 Tomcat 配置文件 server.xml 中的 <Connector ... /> 配置中,有多个参数可以影响连接数,例如 minProcessors、maxProcessors 和 acceptCount。其中,maxProcessors 和 acceptCount 两个...

    tomcat8.5(修改端口号为‘8888’)

    标题“tomcat8.5(修改端口号为‘8888’)”涉及的核心知识点是关于Apache Tomcat服务器的端口配置。Tomcat是一款广泛使用的开源Java Servlet容器,用于部署和运行Java Web应用程序。在默认情况下,Tomcat使用8080...

    tomcat6.0.35_tomcat_

    2. **Jasper**:Tomcat中的Jasper模块用于编译和执行JSP页面,将JSP转换为Java Servlet并在运行时执行。 3. ** Coyote**:Coyote是Tomcat的HTTP/1.1协议处理器,它处理客户端的HTTP请求并返回响应。 4. **Juli**:...

    tomcat5中文问题完美解决

    总结,解决Tomcat5中的中文问题,关键在于统一请求处理的字符编码,并确保服务器端和客户端的编码一致。通过上述两种方法,可以有效地解决POST和GET请求的中文乱码问题,实现中文数据的正常显示。

    Tomcat配置HTTPS证书认证

    本篇文章将详细介绍如何在Tomcat中配置HTTPS证书认证,以便实现安全的Web服务。 首先,我们需要了解HTTPS的基本原理。HTTPS是在HTTP协议的基础上加入SSL/TLS(Secure Socket Layer/Transport Layer Security)协议...

    tomcat7安装使用及jvm连接数参数调优

    指定了最大线程数为 600,minSpareThreads="100" 指定了初始化时创建的线程数为 100,maxSpareThreads="500" 指定了一旦创建的线程超过这个值,Tomcat 就会关闭不再需要的 socket 线程,acceptCount="700" ...

    Tomcat中文问题之完美解决

    在Tomcat中,通过配置Filter来统一处理字符编码是一种常见的方法。具体步骤如下: 1. **创建Filter类**: - 需要在项目中创建一个名为`SetCharacterEncodingFilter`的Filter类。 - 这个类的主要功能是设置请求的...

    tomcat中多线程对于servlet处理的4篇资料

    在这个主题中,我们将深入探讨"Tomcat中多线程对于Servlet处理"的相关知识点,特别关注在5.5.17版本中的实现。 1. **Tomcat的线程模型** Tomcat使用了一个基于Apache Commons Daemon的JVM服务模型,其中包含了...

    运行多个tomcat实例

    copy standard_tomcat\webapps tomcat_instance_alpha\ copy standard_tomcat\work tomcat_instance_alpha\ copy standard_tomcat\temp tomcat_instance_alpha\ ``` 3. **修改端口配置** - 打开`tomcat_...

    Tomcat中配置https

    在IT行业中,安全通信是至关重要的,特别是在处理敏感数据时。HTTPS(Hypertext Transfer Protocol Secure)协议就是为了解决这一问题而设计的,它通过使用SSL/TLS协议加密HTTP通信,确保数据在传输过程中不被窃取或...

    apache-tomcat-8.5.97-windows-x.zip

    Apache Tomcat 是一个开源软件应用服务器,主要用于部署和运行Java Servlet和JavaServer Pages(JSP)应用程序。这个压缩包文件 "apache-tomcat-8.5.97-windows-x.zip" 包含了Apache Tomcat 8.5.97 版本在Windows...

    tomcat6.0.6进行ssl配置

    在本文中,我们将详细介绍 Tomcat 6.0.6 的 SSL 配置步骤,包括生成密钥、导入证书、配置 server.xml 文件等。 首先,我们需要生成密钥。我们可以使用 Keytool 工具来生成密钥。Keytool 是 Java Development Kit ...

    Tomcat学习总结.zip

    在本文中,我们将深入探讨Tomcat 8.5版本的学习要点,包括其工作原理、配置与优化,以及在实际开发中的应用。 首先,理解Tomcat的运行机制至关重要。Tomcat主要由Catalina、Jasper、 Coyote和Juli四个核心组件构成...

    服务器Tomcat面试题

    * acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值为 10。 * connectionTimeout:网络连接超时,默认值为 20000 毫秒,单位为毫秒...

    一个很好的tomcat实例

    2. **Web应用部署**:在Tomcat中,Web应用通常以WAR(Web ARchive)文件的形式部署。开发者可以通过将WAR文件复制到`webapps`目录或使用管理工具进行部署。 3. **Context配置**:每个Web应用对应一个Context,定义...

Global site tag (gtag.js) - Google Analytics