跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

TongWeb 通道参数 maxQueueSize 与 acceptCount 的含义及关系

TongWeb 中的 acceptCount 是操作系统层面的 TCP 连接队列长度,控制内核暂存未处理连接数;maxQueueSize 是应用层面的请求处理队列长度,控制已建立连接但未分配线程的 HTTP 请求数。两者共同影响高并发性能,队列满时分别返回 Connection Refused 或 HTTP 503。调优需结合工作线程数,通常 maxQueueSize 应大于 acceptCount。

漫步发布于 2026/4/5更新于 2026/7/2652 浏览

TongWeb 中通道 maxQueueSize 和 acceptCount 参数的含义和区别

在 TongWeb 中,maxQueueSize 和 acceptCount 是两个与请求处理队列相关的核心参数,它们共同作用于并发请求的接收和处理流程,但所处的层面和作用机制有显著区别。理解两者的差异和协作关系,对优化 TongWeb 高并发性能至关重要。

1. 参数定义与作用

1.1 acceptCount(操作系统层面的连接队列)
  • 作用:控制操作系统内核维护的 TCP 连接队列(backlog 队列) 的最大长度。当 TongWeb 的工作线程全部忙碌时,新到来的 TCP 连接会先进入该队列等待,直到有线程空闲后再被处理。
  • 本质:这是操作系统层面的队列,用于暂存'已建立但未被 TongWeb 应用层处理'的 TCP 连接。
  • 默认值:TongWeb8 企业版默认值为 500;TongWeb7 嵌入式版本默认值为 100。
  • 队列满时的行为:若队列已满,新的 TCP 连接会被操作系统直接拒绝,客户端会收到 'Connection Refused' 错误(无法建立连接)。
1.2 maxQueueSize(TongWeb 应用层面的请求队列)
  • 作用:控制 TongWeb 应用内部维护的 请求处理队列 的最大长度。当所有工作线程(由 maxThreads 控制)都在处理请求时,已建立 TCP 连接的请求会进入该队列等待线程空闲。
  • 本质:这是 TongWeb 应用层的队列,用于暂存'已建立连接但未被线程处理'的 HTTP 请求。
  • 默认值:TongWeb8 企业版默认值为 100000;TongWeb7 嵌入式版本默认值未知(无限制),且只能通过代码配置。
  • 队列满时的行为:若队列已满,TongWeb 会直接拒绝请求,并返回 HTTP 503 Service Unavailable 错误(连接已建立,但请求被拒绝处理)。

2. 工作流程与协作关系

当客户端向 TongWeb 发送请求时,流程如下:

  1. 建立 TCP 连接:客户端先与 TongWeb 服务器建立 TCP 连接,若此时 TongWeb 工作线程空闲,连接会直接被处理;
  2. 进入 acceptCount 队列:若工作线程全部忙碌,新的 TCP 连接会进入操作系统的 acceptCount 队列等待;
  3. 进入 maxQueueSize 队列:当工作线程从 acceptCount 队列中取出连接后,若线程仍忙碌,请求会被放入 TongWeb 应用层的 maxQueueSize 队列等待;
  4. 处理请求:工作线程空闲时,从 maxQueueSize 队列中取出请求并执行。

示意图:

客户端请求 → TCP 握手 → [acceptCount 队列(操作系统)] → [maxQueueSize 队列(TongWeb 应用)] → 工作线程处理

3. 核心区别

维度acceptCountmaxQueueSize
作用层面操作系统内核(TCP 连接层)TongWeb 应用层(HTTP 请求处理层)
队列内容暂存'已建立但未被 TongWeb 处理'的 TCP 连接暂存'已被 TongWeb 接收但未被线程处理'的 HTTP 请求
满队列行为拒绝 TCP 连接(返回 Connection Refused)拒绝 HTTP 请求(返回 503 错误)
依赖条件与操作系统内核参数(如 net.core.somaxconn)相关仅依赖 TongWeb 应用配置,与操作系统无关
版本支持所有 TongWeb 版本均支持配置TongWeb7 嵌入式版本只能通过代码配置
默认值TongWeb8 企业版本 500、TongWeb7 嵌入式版 100TongWeb8 企业版 100000;TongWeb7 嵌入式版本未知(无限制)

4. 配置建议

  1. 高并发场景:
    • 若客户端频繁出现 Connection Refused,说明 acceptCount 过小,需增大(如调整为 200-500);
    • 若频繁出现 503 错误,说明 maxQueueSize 或工作线程(maxThreads)不足,需根据请求处理耗时调整队列长度或增加线程数。
  2. 参数配合:
    • 通常 maxQueueSize 应大于 acceptCount,避免应用层队列先满导致请求被拒绝;
  3. TongWeb8 企业版本配置示例

在 TongWeb8 的通道配置中,有以下 XML 配置项:

<connector SSLDisableCompression="true" SSLDisableSessionTickets="false" SSLEnabled="false" SSLHonorCipherOrder="false" SSLVerifyClient="NONE" SSLVerifyDepth="10" URIEncoding="UTF-8" acceptCount="500" address="0.0.0.0" algorithm="SunX509" allowHostHeaderMismatch="false" allowMethods="GET,POST" asyncTimeout="30000" clientAuth="false" compressibleMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml" compression="off" compressionMinSize="2048" connectionLinger="-1" connectionTimeout="60000" connectionUploadTimeout="300000" defaultSSLHostConfigName="_default_" disableUploadTimeout="true" discardFacades="false" enableKAE="false" enableLookups="false" encodedSolidusHandling="reject" gmEnabled="false" http2Enabled="false" httpRedirect="true" ignoreHeader="false" keepAliveTimeout="60000" keystoreFile="conf/server.keystore" keystoreType="JKS" maxConnections="10000" maxCookieCount="200" maxExtensionSize="8192" maxHeaderCount="100" maxHttpHeaderSize="8192" maxKeepAliveRequests="1000" maxParameterCount="10000" maxPostSize="-1" maxSavePostSize="4096" maxSwallowSize="2097152" maxThreads="3" maxTrailerSize="8192" minSpareThreads="3" name="server" noCompressionStrongETag="true" parseBodyMethods="POST,PUT" pollerThreadCount="1" pollerThreadPriority="5" port="8088" portOffset="0" processorCache="1000" protocol="com.tongweb.coyote.http11.Http11NioProtocol" proxyPort="1" queueSize="100000" redirectPort="443" relaxedPathChars="&quot;&lt;&gt;\[\\\]^\`{|}" relaxedQueryChars="&quot;&lt;&gt;\[\\\]^\`{|}" scheme="http" secure="false" selectorTimeout="1000" sendfileSize="48" serverRemoveAppProvidedValues="false" sessionCacheSize="-1" sessionTimeout="86400" skipCharsValidate="false" sniParseLimit="65536" systemManaged="true" tcpNoDelay="true" threadKeepAliveTime="60" threadPriority="5" throwOnFailure="false" trustMaxCertLength="10" truststoreAlgorithm="PKIX" truststoreType="JKS" useBodyEncodingForURI="false" useIPVHosts="false" useKeepAliveResponseHeader="false" useNetworkMonitor="false" useSendfile="false" useServerCipherSuitesOrder="false" useVirtualThreads="false" xpoweredBy="false"/>
  1. TongWeb7 企业版配置示例

在 TongWeb7 嵌入式版本中的配置:

server.port=8089
#设置 tongweb 的最大工作线程数
server.tongweb.max-threads=3
#最小工作线程,连接池中应用保护的最小空余线路数
server.tongweb.min-spare-threads=1
#最大的线程等待队列数,当线程满后,线程的请求会进入次队列数,如果等待队列满了会拒绝请求
server.tongweb.max-queue-size=3
#最大连接数
server.tongweb.max-connections=3
#最大的连接等待队列大小,当连接数满后,连接会进入次等待队列,等待队列满后,连接会被拒绝
server.tongweb.accept-count=3

TongWeb7.0..e.7 之前版本的 max-queue-size 不能直接配置,需要在代码中添加配置参数,如下:

@Configuration
public class TongWebConfig {
    @Value("${server.tongweb.max-queue-size:100}")
    private int maxQueueSize;

    @Bean
    public WebServerFactoryCustomizer<TongWebServletWebServerFactory> webServerFactoryCustomizer() {
        return factory -> factory.addConnectorCustomizers(
                (TongWebConnectorCustomizer) connector -> {
                    // 从配置文件读取 maxQueueSize 的值,默认为 100
                    //int maxQueueSize = 3; // 可以替换为从配置文件读取的值
                    connector.setAttribute("maxQueueSize", maxQueueSize);
                }
        );
    }
}
  1. 监控与调优:
    • 通过 JMX 监控队列长度(如 acceptCount 使用率、maxQueueSize 排队数),避免队列过长导致请求超时;
    • 结合请求处理时间调整:若请求处理快(如 100ms 内),队列可设小些;若处理慢(如 1s+),队列可适当增大。

5. 总结

  • acceptCount 是'连接入口'的第一道防线,控制操作系统能暂存的最大连接数;
  • maxQueueSize 是'请求处理'的第二道防线,控制 TongWeb 应用能暂存的最大请求数;
  • 两者需配合 maxThreads(工作线程数)共同优化,避免因队列过小导致请求被拒,或队列过大导致内存溢出(OOM)。

目录

  1. 1. 参数定义与作用
  2. 1.1 acceptCount(操作系统层面的连接队列)
  3. 1.2 maxQueueSize(TongWeb 应用层面的请求队列)
  4. 2. 工作流程与协作关系
  5. 3. 核心区别
  6. 4. 配置建议
  7. 5. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Windows 环境 llama.cpp 编译与 Qwen 模型本地部署指南
  • 整理上千个热门 Python 工具库,涵盖 24 大方向
  • OpenCode 使用 GitHub Copilot 的计费陷阱与优化方案
  • 利用大模型工具高效生成 PPT 演示文稿的方法与实践
  • GitHub 代码仓库初始化与首次推送指南
  • Flutter 基础组件:BottomNavigationBar 与 TabBar 多页切换及鸿蒙适配
  • Flutter 在 OpenHarmony 实战:Riverpod 2.0 响应式架构与状态治理
  • Linux 进程间通信详解:管道、共享内存与 System V IPC 机制
  • Java 7 32 位及 64 位 Windows 安装包介绍
  • 开源 ASR 新选择:Fun-ASR 与 Whisper 对比评测
  • Gemini ChatGPT Qwen 豆包 Claude 五大主流 AI 模型深度对比与技术选型指南
  • Windows 系统 Claude Code Git Bash 依赖修复方案
  • 给 Wan2.2 装个风格插件:LoRA 微调实战指南
  • AIGC 时代:利用大模型辅助青少年编程学习与项目实践
  • 前端异常监控:如何捕获并上报JS错误与白屏?
  • GitHub Copilot 学生身份认证与激活完整指南
  • Trae IDE 安装与使用指南:字节跳动 AI 原生开发工具
  • 一文读懂 LLM 训练:从预训练到微调
  • 使用 wechat-need-web 插件实现浏览器访问微信网页版
  • OpenClaw:意外爆红的 AI 助手如何改写开源规则

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online