Spring Boot中增加Tomcat的连接超时

2024-01-09

如何增加超时,以便在处理响应之前,请求不会超时?

Spring Boot 中的 Tomcat 设置:

server.tomcat.max-connections=2000
server.tomcat.max-threads=200
server.connection-timeout=1200000

每秒请求数增加constantUsersPerSec(20) during (15)在 15 秒内增加到 300,所有请求均已得到满足,如下图所示,加特林(蓝色)。

scn.inject(
      constantUsersPerSec(20) during (15), 
    )

这是因为max-connections = 2000它使用以下方式服务了 300 个请求200工作线程。

控制器是用 Spring MVC 编写的,它返回DeferredResult它执行异步请求处理,因此一旦处理完响应就会恢复响应。

但即使server.connection-timeout设置为高数字1200000快结束时有很多503(红色)

> status.find.in(200,304,201,202,203,204,205,206,207,208,209), b     78 (100.0%)
ut actually found 503

Gattle.conf 还设置了增加超时:

   timeOut {
      simulation = 8640000 # Absolute timeout, in seconds, of a simulation
    }
    ahc {
      #keepAlive = true                                # Allow pooling HTTP connections (keep-alive header automatically added)
      connectTimeout = 600000                          # Timeout when establishing a connection
      handshakeTimeout = 600000                        # Timeout when performing TLS hashshake
      pooledConnectionIdleTimeout = 600000             # Timeout when a connection stays unused in the pool
      readTimeout = 600000                             # Timeout when a used connection stays idle
      #maxRetry = 2                                    # Number of times that a request should be tried again
      requestTimeout = 600000           

根据来自的评论科尔多瓦尔 -

检查此属性: spring.mvc.async.request-timeout= # Amount of 异步请求处理超时之前的时间

此设置有助于其余的加特林配置

spring.mvc.async.request-timeout=1200000

然而,根本原因是,当请求数量很大时,所有工作线程(200)都会被上传打开的连接(2000)占用(控制器将 MultipartFile 作为参数并返回 DeferredResult )

I think DeferredResult当请求服务逻辑很快而业务逻辑很慢(在 forkjoin.commonPool 上运行)时会发光。它不太适合 MultiPartFile 上传(阻塞且缓慢),而且当文件大小很大时,响应不会快速恢复(如上面的每秒响应图表所示,只有在几秒钟后响应才开始恢复,因为打开连接)是 2000 人,工人只有 200 人)。如果增加工作人员,无论如何都会削弱异步处理的优势。

在这种情况下,请求处理(上传和阻塞)很慢,而业务逻辑很快。因此响应已准备就绪,但所有工作线程 (200) 都忙于服务越来越多的请求,导致响应无法恢复并因此超时。

可能有理由拥有单独的游泳池request serve and response resume与 DeferredResult 进行异步处理?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot中增加Tomcat的连接超时 的相关文章

  • 如何将参数传递给Workmanager DoWork方法

    我想安排任务在 24 小时后从数据库中删除 public class WorkManager extends Worker public WorkManager NonNull Context context NonNull WorkerP
  • 如何创建仅接受字母数字字符的正则表达式? [复制]

    这个问题在这里已经有答案了 可能的重复 字母数字和下划线的正则表达式 https stackoverflow com questions 336210 regular expression for alphanumeric and unde
  • 内部/匿名类的最佳实践[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 匿名类和静态内部类的最佳实践 设计和性能方面 是什么 就我个人而言 我认为静态内部类提供了更好的封装 并且应该提供更好的性能 因为它们无法访问类
  • 是否有任何理由使用 ZoneId.of("UTC") 而不是 ZoneOffset.UTC ?

    有什么理由使用ZoneId of UTC 代替ZoneOffset UTC 我们知道两者之间的区别 如ZoneOffset UTC 和 ZoneId of UTC 之间有什么区别 https stackoverflow com questi
  • 如何在 SpringBoot v3.0.0 中使用嵌入式 MongoDB?

    我正在尝试连接嵌入式 mongodb 并使用 MongoDbSpringIntegrationTest 对其进行测试 问题是相同的代码在 2 7 7 中适用于 spring boot 但在 3 0 0 中不适用于 spring boot 问
  • 字符串 a == 字符串 b 的规则 [重复]

    这个问题在这里已经有答案了 我试图了解字符串池的工作原理以及一个字符串等于另一个字符串的规则是什么 例如这个片段 public static void main String hi String s1 lol String s2 lol S
  • Android 的@hide 注解到底有什么作用?

    Android中很多内部API都被标记出来了 hide What exactly这是吗 另一个答案 https stackoverflow com questions 17035271 what does hide mean in the
  • 覆盖乔达一周的第一天?

    是否有可能覆盖乔达弱的第一天sunday 因为 Joda 使用Monday作为一周的第一天 如果有办法的话 谁能解释一下 我在 SOF 中提到了以下主题 乔达时间 一周的第一天 https stackoverflow com questio
  • 错误包括 bouncycastle 提供商

    我需要使用bouncycastle provider我的项目中的库 我已将其包含在 gradle 项目中 apply plugin application sourceCompatibility 1 6 version 1 0 0 main
  • 用二进制数、常规数字和格雷编码填充矩阵

    我有一个包含 1 s 或 0 s 的矩阵 用于创建二进制数 其宽度为n 对于 n 2 和 n 3 它看起来像 00 000 01 001 10 010 11 011 100 101 110 111 等等 现在我正在使用以下代码来生成它 in
  • 在 Hibernate 的 XML 配置文件中指定默认值

    我通过映射配置文件配置 Hibernate
  • Spring Boot 中的服务限流能力

    有什么办法可以实现Spring中其余服务的服务限制能力 特别是Spring boot 这里的期望是 我的服务暴露于外界 目前每秒 分钟的服务调用数量没有限制 我们希望通过设置限制来控制这一点 我有一个替代选项 通过跟踪并发哈希映射或任何缓存
  • jasper 报告文件中出现错误

    首先 我在 iReport 5 1 0 中创建一个 R D1 jrxml 文件 我执行该报告的 Java 代码如下所示 import java sql Connection import java sql DriverManager imp
  • 如何让 Camel FTP 按需只获取一次

    我对骆驼还很陌生 我一直在尝试让 Camel 根据需要仅通过 FTP 获取单个文件一次 我无法让它发挥作用 这是我尝试过的 让我知道什么是最好的方法以及我的代码有什么问题 1 读取文件后发送一条空消息当收到空消息时 停止路由 from di
  • 为什么找不到 getservletcontext?

    我正在尝试使用getServletContext getRealPath 但我不断收到此错误 cannot find symbol symbol method getServletContext location interface jav
  • Java无损保存原始JPEG

    如下所示 我有第一张图像是原始 JPEG 图像 第二张图像用于缓冲图像 然后使用保存http www lac inpe br JIPCookbook 6040 howto compressimages jsp http www lac in
  • 使用 SimpleDateFormat、Java 进行错误的日期解析

    我需要使用日期模式 yyyy MM dd 解析输入字符串中的日期 如果日期采用任何其他格式 则抛出错误 这是我解析日期的代码 private void validateDate throws MyException Date parsedD
  • Java 中有类似 .NET 的 NotImplementedException 的东西吗?

    有没有类似 NET 的东西NotImplementedException在Java中 康芒斯朗 http commons apache org proper commons lang javadocs api 2 6 org apache
  • 不鼓励在Web应用程序中使用线程吗?

    我们与同事就在 Java 的 Web 应用程序中使用线程进行了激烈的讨论 他们的观点是 不建议在 Java Web 应用程序中使用线程 因为它们不受容器管理 一般来说 我对此表示同意 因为线程可能会干扰容器 但是 如果它不是 Java EE
  • 当框架被拖动时,如何设置 JWindow 的位置位于文本字段下方?

    我正在制作一个自动完成项目 就像谷歌一样 我的框架中有一个 jtextfield 每当我在该字段中输入内容时 该文本字段下方就会出现一个 JWindow 并且该窗口来自另一个类 现在的问题是 每当我拖动框架时 如何使窗口始终出现在文本字段下

随机推荐

  • Material Table React 上的选择和远程数据分页

    我需要帮助 我需要使用材料表来反应我的数据表 我想同时使用选择和分页 但问题是如果我选择某一行并更改页面并返回到上一页 它不会选择该行 这是我创建的示例片段 是否可以覆盖选择道具 const Table gt const selectedR
  • 在 iOS 中从 NSDictionary 生成 JSON 字符串

    我有一个dictionary我需要生成一个JSON string通过使用dictionary 可以转换吗 你们能帮忙解决这个问题吗 Apple 在 iOS 5 0 和 Mac OS X 10 7 中添加了 JSON 解析器和序列化器 看NS
  • 在 Tomcat 上配置 PHP 会出现异常:UnsatisfiedLinkError

    我一直在尝试在 Tomcat 上使用 PHP 不要问为什么 我只是必须这样做 并且一直遵循使用 Tomcat 配置 PHP http toostep com trends configure php with tomcat以及一些使用 PE
  • 使用神经网络功能时出现错误

    我在可用的波士顿数据集上尝试了 R 中的神经网络 data Boston package MASS data lt Boston 只保留我们想要使用的变量 keeps lt c crim indus nox rm age dis tax p
  • Mongodb pymongo.errors.ServerSelectionTimeoutError:localhost:27017:[Errno 111]连接被拒绝,超时:30秒,

    我正在尝试本地连接到我的数据库 我已经在 MongoDB Compass 上建立了与数据库的连接 但是当我运行简单的代码时 出现以下错误 pymongo errors ServerSelectionTimeoutError localhos
  • macOS swift - 将数据保存到本地存储 - 最佳实践

    我是 macOS 开发的新手 我有一个应用程序 我需要将字符串 例如令牌 保存到某些本地存储 在关闭并打开应用程序后 我想检索该字符串 是否有可能只有我的应用程序才能检索该字符串 是不是最好写到txt文件或还有其他一些可能性 谢谢 这取决于
  • 如何从面板中加载的子用户控件访问父类功能/控件

    我有一个主窗体 其中包含一个面板 该面板将不同的用户控件加载到面板中 现在我需要从用户控件访问主窗体中的功能 下面我给出了我的代码 这是我的主要 Windows 窗体类 public partial class Form1 Form pub
  • 如何在 iPhone 中更改方向时更改视图控制器的视图?

    我正在开发一个支持 2 个方向的 iPhone 应用程序 我有这个视图控制器的 2 个 UIView 文件 我需要根据设备界面方向将相应的 UIView 文件设置到视图控制器 你能指导我如何改变方向吗 为什么要对两个方向使用两个视图 如果纵
  • 每次使用 pip 3 时如何解决“错误:外部管理环境”?

    错误信息 error externally managed environment This environment is externally managed gt To install Python packages system wi
  • 将自定义列添加到 Woocommerce 3+ 中的“我的帐户订单”表

    Woocommerce 3 5 x 在用户帐户 我的帐户 区域有一个特殊页面 其中显示用户以前的订单 此页面现在默认显示 5 列 这是 woocommerce 订单区域的屏幕截图 共有 5 列 我的订单 https i stack imgu
  • 如何在 R 中为蒙特卡洛创建更高效​​的模拟循环

    此练习的目的是创建营养摄入值的人群分布 早期数据中有重复的测量值 这些测量值已被删除 因此每一行都是数据框中唯一的人 我有这段代码 在使用少量数据框行进行测试时效果非常好 对于所有 7135 行 速度非常慢 我试图给它计时 但当我的机器上的
  • 条目压缩大小无效

    我使用称为 ASM 的字节码库来更改类文件 然后我想将每个类文件写回 jar 文件而不是填充类文件的文件夹中 我通过运行以下代码来做到这一点 当因未达到预期大小而引发 ZipException 时 即出现我的问题 java util zip
  • jQuery Datepicker 中的“今天”按钮不起作用

    我正在使用 jQueryUI Datepicker 并显示 今天 按钮 但这不起作用 它在演示中也不起作用 http www jqueryui com demos datepicker buttonbar http www jqueryui
  • Python pandas 与 OR 逻辑合并

    我正在搜索 但没有找到这个问题的答案 你可以使用 OR 逻辑执行 pandas 数据帧的合并吗 基本上 相当于使用 where t1 A t2 A OR t1 A t2 B 的 SQL 合并 我遇到一种情况 我将信息从一个数据库提取到数据帧
  • ORACLE SQL LISTAGG 未返回预期结果

    我正在运行 Oracle Database 11g Enterprise 11 2 0 4 0 PL SQL Release 11 2 0 4 0 并且在获取 LISTAGG 函数返回我期望的数据集时遇到一些问题 这是场景 我有一个看起来像
  • 将WAR部署到WebSphere 9需要3个小时

    过去将 WAR 部署到 WebSphere 8 5 5 0 需要 3 分钟 将相同的 WAR 部署到 WebSphere 9 0 0 2 需要 3 个小时 这是 WebSphere 9 0 0 2 中错误的表现吗 有人有类似的经历吗 更新
  • iphone界面发光效果问题

    我想在这个名为 convert 的应用程序中实现我认为是 UILabels 或者可能是自定义控件 的发光效果 我认为该应用程序看起来非常简洁 我正在尝试为我自己的应用程序实现类似的效果 有什么帮助吗 此致 david 替代文本 http w
  • 如何为 Excel 创建 GUI 插件?

    我在 Google 上进行了一些研究 但仍然找不到 Visual Studio 中的项目 我想为 Excel 创建一个 GUI 插件 例如带有 Windows 窗体的功能区上的停靠窗口 这是 Visual Studio 中的什么项目 我已经
  • 将控件添加到 Office 中的现有功能区组 (VSTO)

    我找到了很多关于如何向现有功能区添加新组的示例 这效果很好 我不知道如何将新控件添加到现有功能区上的现有组中 假设我想将自己的命令添加到 审阅 选项卡上的 校对 组中 我正在 VS2010 中为 Office2010 开发此程序 但我想同样
  • Spring Boot中增加Tomcat的连接超时

    如何增加超时 以便在处理响应之前 请求不会超时 Spring Boot 中的 Tomcat 设置 server tomcat max connections 2000 server tomcat max threads 200 server