`
xpenxpen
  • 浏览: 724959 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring-petclinic性能调优实战

阅读更多
1.spring-petclinic介绍
spring-petclinic是spring官方做的一个宠物商店,结合了spring和其他一些框架的最佳实践。

架构如下:
1)前端
Thymeleaf做HTML模板引擎或纯JSP加Tag
CSS采用Bootstrap
webjars用来管理客户端依赖
Dandelion做表格

2)后端
Controller,用Spring MVC, Bean Validation
Service, 用Spring事务,加上ehcache缓存
Repository,写了3套,spring data jpa, jpa, jdbc,供大家自由选择
异常处理,统一交给SimpleMappingExceptionResolver处理,导向一个页面exception.jsp


2.性能调优
有专家对这个示例做了一些性能调优实战,使得性能从285 req/sec提升到了1225 req/sec。

性能调优实战一共分5天,对应5篇文章。

第1天,搭建jmeter测试环境,写jmeter脚本,测试一开始的性能是285 req/sec
第2天,用yourkit剖析问题,抓出元凶Dandelion,并解决性能问题,性能提升到560 req/sec。
随后去session化,性能变为532 req/sec。
再使用tomcat新的NIO connector,性能提升到867 req/sec
第3天,找到Commons DBCP乃又一元凶,改用tomcat dbcp,性能提升到910 req/sec。
Webjars也有损性能,所以去掉,性能提升到942 req/sec
去掉人为的monitoring AOP,性能提升到959 req/sec
第4天,测试发现spring data jpa, jpa, jdbc三种性能差别不大。
使用延迟加载和Open Session In View(要小心,有陷阱),性能提升到1066 req/sec
第5天,增加一个cache,用来缓存JpaOwnerRepositoryImpl.findByLastName(),性能提升到1225 req/sec

3.链接
官方原版petclinic
专家优化版petclinic

5篇优化文章,对应5天优化历程
Improving the performance of the Spring-Petclinic sample application (part 1 of 5)
Improving the performance of the Spring-Petclinic sample application (part 2 of 5)
Improving the performance of the Spring-Petclinic sample application (part 3 of 5)
Improving the performance of the Spring-Petclinic sample application (part 4 of 5)
Improving the performance of the Spring-Petclinic sample application (part 5 of 5)
分享到:
评论
1 楼 yanqingluo 2015-04-04  
好文章,转走了

相关推荐

    spring-petclinic-angular:Spring Petclinic示例应用程序的Angular 8版本(前端)

    git clone https://github.com/spring-petclinic/spring-petclinic-angular.git 安装本地项目包 npm install --save-dev @angular/cli@latest if npm version > 5.0 delete package-lock.json file ( bug in npm...

    spring-petclinic-rest-resolved

    REST版本的Spring PetClinic示例应用程序(spring-framework-petclinic扩展) Spring Petclinic应用程序的... docker run -p 9966:9966 springcommunity/spring-petclinic-rest 然后,您可以在此处访问petclinic: 此

    spring-petclinic-angularjs:Spring Petclinic示例应用程序的AngularJS 1和Spring Boot 2版本

    cd spring-petclinic-angularjs ./mvnw clean install cd spring-petclinic-server ../mvnw spring-boot:run 然后,您可以在此处访问petclinic: 如果您发现Spring Petclinic的错误/建议的改进 我们的问题跟踪器可在...

    spring-petclinic-master

    SpringPetClinic样品申请通过一些图表了解Spring Petclinic应用程序在本地运行诊所git clone https://github.com/spring-projects/spring-petclinic.gitcd spring-petclinic./mvnw spring-boot:run 然后,您可以在...

    spring-petclinic:https://github.comspring-projectsspring-petclinic.git

    通过一些图表了解Spring Petclinic应用程序 在本地运行诊所 Petclinic是使用构建的应用程序。 您可以构建一个jar文件并从命令行运行它: git clone https://github.com/spring-projects/spring-petclinic.git cd ...

    Angular-spring-petclinic-angular.zip

    Angular-spring-petclinic-angular.zip,Angular 8版Spring Petclinic示例应用程序(前端)Spring Petclinic Angular,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入...

    spring-petclinic-rest:Spring Petclinic示例应用程序的REST版本

    REST版本的Spring PetClinic示例应用程序(spring-framework-petclinic扩展) Spring Petclinic应用程序的此后端版本仅提供REST API。 没有UI 。 是使用REST API的Angular前端应用...cd spring-petclinic-rest ./mvnw

    Spring框架的示例项目源码 Spring Petclinic

    **Spring框架的示例项目源码 - Spring Petclinic** Spring Petclinic是Spring官方提供的一款开源示例应用,它用于展示Spring框架的各种特性及其在实际开发中的应用。该项目可以帮助开发者理解和学习Spring框架的...

    spring-petclinic:示例 Spring Petclinic 项目

    Spring PetClinic 示例应用程序几张图了解Spring Petclinic应用在本地经营宠物诊所git clone https://github.com/spring-projects/spring-petclinic.gitmvn tomcat7:run然后您可以在此处访问 petclinic: 如果您发现...

    jgsu-spring-petclinic:在我的Jenkins Pluralsight入门课程中使用的spring-petclinic示例的WIP更新

    通过一些图表了解Spring Petclinic应用程序 在本地运行诊所 Petclinic是使用构建的应用程序。 您可以构建一个jar文件并从命令行运行它: git clone https://github.com/spring-projects/spring-petclinic.git cd ...

    spring-petclinic:春天的诊所

    SpringPetClinic样品申请它是什么样子的? -spring-petclinic已在此处部署在cloudfoundry上: ://demo-spring-petclinic.cfapps.io/通过一些图表了解Spring Petclinic应用程序在本地运行诊所git clone ...

    spring-petclinic:一个基于Spring的示例应用程序

    通过一些图表了解Spring Petclinic应用程序 在本地运行诊所 Petclinic是使用构建的应用程序。 您可以构建一个jar文件并从命令行运行它: git clone https://github.com/spring-projects/spring-petclinic.git cd ...

    spring-petclinic-jlv:我的Java项目

    -spring-petclinic 已部署在 cloudfoundry 上: ://demo-spring-petclinic.cfapps.io/ 几张图了解Spring Petclinic应用 在本地经营宠物诊所 git clone https://github.com/SpringSource/spring-petclinic.git mvn...

    spring-petclinic-master运行mvn install报错:Failed to execute goal io.spring.javaformat:spring-javaformat

    spring-petclinic-master运行mvn install报错:Failed to execute goal io.spring.javaformat:spring-javaformat-maven-plugin:0.0.19:validate (default) on project spring-petclinic: Formatting violations ...

    spring-petclinic-microservices:使用Spring Cloud构建的Spring Petclinic的分布式版本

    使用Spring Cloud构建的Spring PetClinic示例应用程序的分布式版本 该微服务分支最初源自以演示如何将示例Spring应用程序拆分为。 为了实现该目标,我们使用了技术堆栈中的Spring Cloud Gateway,Spring Cloud ...

    spring-petclinic

    -spring-petclinic 已部署在 cloudfoundry 上: ://demo-spring-petclinic.cfapps.io/ 几张图了解Spring Petclinic应用 在本地经营宠物诊所 git clone https://github.com/SpringSource/spring-petclinic.git mvn...

    spring-petclinic:研究弹簧靴的项目

    通过一些图表了解Spring Petclinic应用程序 在本地运行诊所 Petclinic是使用构建的应用程序。 您可以构建一个jar文件并从命令行运行它: git clone https://github.com/spring-projects/spring-petclinic.git cd ...

    spring-petclinic-stable:https的克隆

    cd spring-petclinic-stable ./mvnw spring-boot:run 然后,您可以在此处访问petclinic: 如果您发现Spring Petclinic的错误/建议的改进 我们的问题跟踪器可在以下位置找到: : 数据库配置 在默认配置下,...

    spring-petclinic-rest-vet

    本项目"spring-petclinic-rest-vet"是Spring PetClinic的一个扩展,它展示了如何利用Spring Boot和RESTful API技术构建一个关于兽医服务的应用。这篇文章将深入探讨这个项目的实现细节和技术要点。 首先,Spring ...

    spring-petclinic:自己的定制宠物诊所

    Spring PetClinic 示例应用程序几张图了解Spring Petclinic应用在本地经营宠物诊所git clone https://github.com/spring-projects/spring-petclinic.gitmvn tomcat7:run然后您可以在此处访问 petclinic: 如果您发现...

Global site tag (gtag.js) - Google Analytics