`
shilimin
  • 浏览: 13806 次
  • 性别: 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`中,通常会找到`...

    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**:...

    Tomcat-启动参数设置

    - 在Tomcat安装目录下的`bin`文件夹中找到`catalina.bat`文件。 - 在文件开头添加以下行: ```bat set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m ``` - `-XX:PermSize=64M`:设置...

    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 1000/s 并发配置

    在IT行业中,Tomcat作为一款广泛应用的开源Java Servlet容器,其性能优化对于处理高并发请求至关重要。当系统需要处理每秒1000次请求(1000 QPS)时,我们需要对Tomcat进行一系列的调整以确保其能够稳定且高效地运行...

    Tomcat中文问题之完美解决

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

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

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

    Tomcat中配置https

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

    Tomcat协同配置参考

    在IT行业中,服务器配置是关键的一环,特别是对于使用Apache和Tomcat的环境。Apache作为流行的Web服务器,常与Java应用服务器Tomcat协同工作来处理动态内容。以下是对"Tomcat协同配置参考"的详细说明: 1. **Tomcat...

    tomcat6启用SSL_证书_tomcat6多ssl_Tomcat6;SSL;_

    6. **配置Tomcat**:在Tomcat的`conf/server.xml`文件中,添加或修改`<Connector>`元素以启用SSL。例如: ```xml SSLEnabled="true" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" ...

Global site tag (gtag.js) - Google Analytics