当前位置: 首页 > 知识库问答 >
问题:

Spring无功高负荷性能差

井学
2023-03-14

我有一个spring boot webflux应用程序,默认情况下使用Netty。其中一个业务需求,我们有要求,要求应超时在2秒内。

当很少的请求被发送到应用程序时,一切都很好,但是当请求负载增加时(比如Jmeter每秒并发超过40或50次),由于每个请求的时间超过2秒阈值,有时所有请求都会超时。

如果有人能告诉我该做什么,那将是一个巨大的帮助。在这一点上,我没有更多的改进,并认为我可能已经看错了这一点,我的方法是不正确的。

我没有附加任何代码,因为应用程序是大的,我仍然不知道实际的问题所在。

共有1个答案

古棋
2023-03-14

我也遇到过同样的问题。我还没有找到这个问题的根本原因,但是当我从WebClient切换到RestTemplate,每个客户机(外部服务)都有专用的线程池时,问题就解决了。我跑了一只猎犬去找我是否在小溪里的某个地方挡住了,但它什么也没找到。我还尝试用更多的NIO辅助线程池(默认情况下,它等于内核数)部署我的应用程序,虽然有一些改进,但毕竟resttemplate产生了最好的性能。因此,我仍然使用Webflux堆栈,但不再使用WebClient,高负载时的性能很好。

 类似资料:
  • 使用kafka版本2.11-0.11.0.3发布10,000条消息(所有消息的总大小为10MB),将有2个消费者(具有相同的group-id)作为并行处理来消费该消息。在消费过程中,两个消费者都消费了相同的消息。 以下错误/警告是Kafka抛出的 警告:此成员将离开组,因为使用者轮询超时已过期。这意味着对poll()的后续调用之间的时间长于配置的max.poll.interval.ms,这通常意味

  • 训练负荷是对单个训练课用力程度的文字反馈。训练负荷的计算基于训练中关键能量源(碳水化合物和脂肪)的消耗。 训练负荷的特性,使得不同类型的训练课负荷彼此兼容。例如,您可以将长时间低强度骑行训练负荷与短时间高强度跑步训练课负荷进行比较。为了使训练之间的对比更准确,我们将您的训练负荷转化为预估恢复时间。 每次训练后,您都可以在Polar 应用程式的训练总结里看到您的训练负荷的说明。您可以在这里看到不同水

  • 本章将通过一个具体管理 Openflow switch 的例子来介绍一些比较高级的命令。 首先,启动 Mininet,执行 sudo mn --topo single,3 --mac --switch ovsk --controller remote 生成一个小的网络,三台主机连到一台交换机上,交换机为 OpenvSwitch 交换机,指定 remote 类型控制器(默认为本地)。

  • 下面内容将介绍使用Activiti的高级用例,它会超越BPMN 2.0流程的范畴。 因此,对于Activiti的明确目标和经验有利于理解这里的内容。 监听流程解析 bpmn 2.0 xml文件需要被解析为Activiti内部模型,然后才能在Activiti引擎中运行。 解析过程发生在发布流程或在内存中找不到对应流程的时候, 这时会从数据库查询对应的xml。 对于每个流程,BpmnParser类都会

  • 配置 移动设备上的游戏会遇到一些特殊的情景,比如游戏应用被切换至后台又切换回前台,正在玩游戏的时候电话来了,电话打完继续玩游戏,这些你在进行声音控制的时候都得考虑。 幸运的是,游戏引擎在设计的时候已经考虑到这些情景了,注意在 AppDelegate.cpp 中,有这样几个方法: // This function will be called when the app is inactive. Wh

  • DevEnv高级功能 本节介绍开发环境的高级功能,包括: 使用GPU开发环境 使用FDS FUSE存储 使用HDFS存储 使用HDFS FUSE存储 网络和安全 监控 定制开发环境Docker镜像