spring-Spring mvc架构在并发情形下性能急剧下降的问题

问题描述

Spring mvc架构在并发情形下性能急剧下降的问题

在公司有一个基于spring-mvc框架的web项目, 在100个用户同时访问的情况下响应时间超过10秒.
经过排查, 发现在Controller中调用所有注入的service方法, 均需要超过2秒的时间.
后来干脆把service里的代码先注释掉, 在Controller中调用空的service方法, 依然需要超过2秒.
service都是多实例的, 设置了singleton="false"
目前没有头绪...特来向大家求助, 感激不尽!

例如:
测时间用的如下方式

long beginVerify = System.currentTimeMillis();
int status = userService.verifySSOUser();
long costVerify = System.currentTimeMillis() - beginVerify;
System.out.println("verifySSOUser()用时: "+costVerify+"ms");

verifySSOUser()内部代码全部注释掉了, 只留有return 1;
最后输出时显示:
10个并发情况下, 用时小于10ms
100个并发情况下, 用时接近3s
200个并发情况下, 用时接近10s

解决方案

最后结果是:
实际上在service里面还有注入的DAO, 而DAO里面包含有数据库连接操作, 由于设置的数据库连接池过小, 导致大量service卡在等待数据库连接上.
修改数据库连接池后, 恢复正常

解决方案二:

看你的问题,我也学习了!CSDN看技术问答一个好处:看别人的错误,也能积累自己的知识。

时间: 2024-10-28 12:03:10

spring-Spring mvc架构在并发情形下性能急剧下降的问题的相关文章

web URL接口 高并发情形下 如何保证各个用户得到的数据与其他用户不重复

问题描述 问题的描述是这样的:url接口的形式向用户返回100条数据库中的A表(某字段排序后)中status为0的数据,用户要是在web上操作了某条数据以后就改为1.我想解决的问题是如何在多用户高并发的情形,用户请求该接口获得分配的数据如何处理能保证都是唯一的.处理了以后,不一定需要向每个用户都是固定的100条数据.但要保证每个用户得到的数据和其他用户的数据不能有重复.要求是不考虑sqlserver数据库的特性.像存储过程中事务,取了这100,然后再修改这100条数据的其他字段.这样sql在用户

《精通Spring MVC 4》——2.5 Spring MVC架构

2.5 Spring MVC架构 让我们从这个新的"Hello World"页面后退一步,尝试去理解在这个Web应用中到底发生了什么.为了做到这一点,需要跟踪浏览器所发送的HTTP请求的行程以及它是如何从服务器端得到响应的. 2.5.1 DispatcherServlet 每个Spring Web应用的入口都是DispatcherServlet.图2-3展现了DispatcherServlet的架构. 图2-3 这个一个典型的HttpServlet类,它会将HTTP请求分发给Handl

在Spring Web MVC环境下使用Dojo

开始之前 关于本教程 本教程主要探讨如何在 Spring Web MVC 环境中使用 Dojo 的 widget,示例应用使用了 dojox.data.DataGrid,一个 Dojo Toolkit 1.2 新增的 widget . Dojo widget 与服务器交换数据的格式有很多种,本教程主要探讨在 Ajax 编程中比较常用的 JSON 格式的数据.本教程示例演示了 dojox.data.DataGrid 组件与 Spring Web MVC 控制器之间交换数据的细节,其中,服务器端使用

《Spring技术内幕》——1.3节Spring的整体架构

1.3 Spring的整体架构 了解了Spring的设计理念之后,我们继续介绍Spring的整体架构.在Spring中,我们大致按照一个参考关系,将其划分为几个层次,比如IoC容器.AOP核心模块.封装的Java EE服务.作为中间的驱动组件.其他作为上层的应用,这些应用不但包括来源于社区的应用封装,如ACEGI,也包括使用Spring作为平台开发出来的各种类型的企业应用. 从技术上看,Spring是封装得很清晰的一个分层架构,可以参考如图1-4所示的Spring架构图. 在这个架构图中,我们可

Spring Web MVC(二)

五大核心组件 Controller 处理器控制器 MVC补充 AbstractController 和 WebContentGenerator 其它的简单控制器 MultiActionController 命令控制器command controllers重点 AbstractCommandController AbstractFormController SimpleFormController AbstractWizardFormController ViewResolver和View 视图与

ajax+hibeinate+spring+spring mvc 分页

问题描述 ajax+hibeinate+spring+spring mvc 分页 我想知道怎么用ajax分页,每页10条,ajax写好之后,后台写什么方法去执行调用,我是新手,不懂这些,求大神帮帮忙我用的是spring,springmvc+hibernate,三个框架,实在是不会了. $(function() { //此demo通过Ajax加载分页元素 var initPagination = function() { var num_entries = $(""#hiddenresu

Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

Spring Boot--2分钟构建spring web mvc REST风格HelloWorld 之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介绍了普通方式开发spring web mvc web service.接下来看看使用spring boot如何快速构建一个.   Spring Boot使我们更容易去创建基于Spring的独立和产品级的可以"即时运行"的应用和服务.支持约定大于配置,目的是尽可能快地构建和运行Spring应

Features of Spring Web MVC

21.1.1 Features of Spring Web MVC Spring Web Flow Spring Web Flow (SWF) aims to be the best solution for the management of web application page flow. SWF integrates with existing frameworks like Spring MVC and JSF, in both Servlet and Portlet environ

spring 的mvc中有没有像struts的DispatchAction

问题描述 还是不喜欢,一个请求写一个action那也太烦了最好用spring的mvc也可以用像DispatchAction一样的action昂昂用的是spring mvc 解决方案 Spring中有个MultiActionController解决方案二:public class HomeController extends MultiActionController {public List list;//查询所有数据public ModelAndView TestOne(HttpServlet