在阿里云容器服务上创建Spring Boot应用之压测篇

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 如何对通过阿里云容器服务创建的Spring Boot应用进行性能压测

  Spring Boot框架的第一个稳定版本是在2014年由Pivotal发布的,该框架的宗旨在于为基于Spring的Web应用提供快速设计开发,并追求小而美、约定胜于配置、快速开发、自包含且便捷。Spring Boot当前开发中的版本是1.4。

  上一篇文章“在阿里云容器服务上创建第一个Spring Boot应用”,讲述了如何通过Maven的Docker plugin上传镜像到阿里云的容器Hub,并通过阿里云的容器服务快速在云环境创建应用。本文将描述下,如果在阿里云环境里继续对这个Web应用进行压测,下面我会按照4个步骤进行介绍:

  • 第一步:评估应用的架构
  • 第二步:评估压测的架构
  • 第三步:配置压测任务
  • 第四步:查看压测结果

第一步:评估应用的架构

  上一篇我们通过阿里云容器服务给这个Sping Boot服务配置了一条路由规则:
容器端口为8080,域名前缀为spring-boot。容器服务会自动生成一个测试域名‘spring-boot.<cluster_id>.<region_id>.alicontainer.com’

  当一个Request请求这个域名时会经过以下几次转发:

  • 这个域名的DNS指向集群的负载均衡SLB的ip。
  • SLB会监听80端口的请求并转发到集群内的每台云服务器的80端口。
  • 而每台云服务器里面有一个系统的容器acs-routing,会负责将服务器的80端口上指定域名的请求转发到指定容器的内部8080端口。

以下是应用的架构简图:
demo1_2_

我们回到容器服务的控制台记录下几个信息,后续会再用到:

第二步:评估压测的架构

评估压测指标

首先我们需要对Spring Boot的用户访问场景进行评估,经过拍脑袋之后,我们决定以10个并发对首页进行压测,看看能否抗的住,主要观察几个指标:首页的tps、rt,服务器的cpu、load。最常见的方式就是搞一个httpload、jmeter压压,幸运的发现阿里云已经提供了类似的能力。我们决定通过“云监控”和“性能压测”两个产品来试试。

以下是压测的架构简图:
demo1_1_
压测方案分为两部分:

安装监控插件(ECS插件)

通过云监控采集服务器的监控数据(免费开通云监控->云服务监控->ECS监控列表->筛选第一步中的2台服务器,“点击安装”ECS插件)
_2016_02_01_11_25_41

设置压测目标信息

在性能测试产品里绑定压测的ECS和SLB(免费开通性能测试企业版->测试环境->云内机器)
_2016_02_01_11_30_24
_2016_02_01_11_31_49
下面开始配置压测任务

第三步:配置压测任务

新增压测脚本(性能测试控制台->测试脚本->脚本)

_2016_02_01_11_35_06
点击上图的新增脚本
_2016_02_01_11_37_27
设置脚本名:perf-springboot

添加一个事务:事务名称(testPerf),请求链接(http://spring-boot.cfe5de77bd7a4474c826e8465930fae75.cn-shenzhen.alicontainer.com/),请求类型(GET)
点击保存

新增测试场景

选择脚本名
_2016_02_01_11_41_02
设置场景名:perf-springboot
设置并发用户数:10
_2016_02_01_11_42_05
点击保存

新增测试任务

_2016_02_01_11_43_24
点击新增任务

设置任务名:perf-springboot

设置持续时间:10分钟

设置施压集群:深圳

选择监控机:绑定之前深圳集群的两台机器

绑定场景:绑定上一步的测试场景
_2016_02_01_11_48_13
点击保存
_2016_02_01_11_48_43
点击确认
_2016_02_01_11_49_31
点击执行
_2016_02_01_11_50_53

第四步:查看压测结果

休息10分钟回来~

查看压测结果
_2016_02_02_12_09_03
查看tps数据
_2016_02_02_12_09_34
查看rt数据
_2016_02_02_12_09_42
查看服务器的cpu数据
_2016_02_02_12_09_55

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
12天前
|
安全 Java 网络安全
当网络安全成为数字生活的守护者:Spring Security,为您的应用筑起坚不可摧的防线
【9月更文挑战第2天】在数字化时代,网络安全至关重要。本文通过在线银行应用案例,详细介绍了Spring Security这一Java核心安全框架的核心功能及其配置方法。从身份验证、授权控制到防御常见攻击,Spring Security提供了全面的解决方案,确保应用安全。通过示例代码展示了如何配置`WebSecurityConfigurerAdapter`及`HttpSecurity`,帮助开发者有效保护应用免受安全威胁。
35 4
|
12天前
|
IDE Java 开发工具
还在为繁琐的配置头疼吗?一文教你如何用 Spring Boot 快速启动,让开发效率飙升,从此告别加班——打造你的首个轻量级应用!
【9月更文挑战第2天】Spring Boot 是一款基于 Spring 框架的简化开发工具包,采用“约定优于配置”的原则,帮助开发者快速创建独立的生产级应用程序。本文将指导您完成首个 Spring Boot 项目的搭建过程,包括环境配置、项目初始化、添加依赖、编写控制器及运行应用。首先需确保 JDK 版本不低于 8,并安装支持 Spring Boot 的现代 IDE,如 IntelliJ IDEA 或 Eclipse。
47 5
|
14天前
|
安全 NoSQL Java
JeecgBoot应用Spring Authorization Server
Spring Authorizaiton Server, 简称 sas,是一个授权服务器框架,提供 OAuth2.1 与 Open Connect 1.0 认证规范及其他规范的实现,它建立在 Spring Security 之上,为构建 OpenID Connect 1.0 Identity Provider 和 OAuth2 授权服务器产品提供了一个安全、轻量级和可定制的基础
32 2
|
13天前
|
Java Spring 监控
Spring Boot Actuator:守护你的应用心跳,让监控变得触手可及!
【8月更文挑战第31天】Spring Boot Actuator 是 Spring Boot 框架的核心模块之一,提供了生产就绪的特性,用于监控和管理 Spring Boot 应用程序。通过 Actuator,开发者可以轻松访问应用内部状态、执行健康检查、收集度量指标等。启用 Actuator 需在 `pom.xml` 中添加 `spring-boot-starter-actuator` 依赖,并通过配置文件调整端点暴露和安全性。Actuator 还支持与外部监控工具(如 Prometheus)集成,实现全面的应用性能监控。正确配置 Actuator 可显著提升应用的稳定性和安全性。
36 0
|
13天前
|
测试技术 Java Spring
Spring 框架中的测试之道:揭秘单元测试与集成测试的双重保障,你的应用真的安全了吗?
【8月更文挑战第31天】本文以问答形式深入探讨了Spring框架中的测试策略,包括单元测试与集成测试的有效编写方法,及其对提升代码质量和可靠性的重要性。通过具体示例,展示了如何使用`@MockBean`、`@SpringBootTest`等注解来进行服务和控制器的测试,同时介绍了Spring Boot提供的测试工具,如`@DataJpaTest`,以简化数据库测试流程。合理运用这些测试策略和工具,将助力开发者构建更为稳健的软件系统。
23 0
|
13天前
|
Java Spring UED
Spring框架的异常处理秘籍:打造不败之身的应用!
【8月更文挑战第31天】在软件开发中,异常处理对应用的稳定性和健壮性至关重要。Spring框架提供了一套完善的异常处理机制,包括使用`@ExceptionHandler`注解和配置`@ControllerAdvice`。本文将详细介绍这两种方式,并通过示例代码展示其具体应用。`@ExceptionHandler`可用于控制器类中的方法,处理特定异常;而`@ControllerAdvice`则允许定义全局异常处理器,捕获多个控制器中的异常。
32 0
|
13天前
|
Java Spring 监控
危机时刻,Spring框架如何拯救你的应用?深入探讨健康检查与自我修复功能
【8月更文挑战第31天】在现代软件架构中,应用的稳定性和可用性至关重要。本文介绍Spring框架中的健康检查与自我修复机制,通过Spring Boot Actuator的`/health`端点监控应用状态,并结合Spring Cloud Hystrix实现服务容错和断路器功能,提高应用健壮性。借助这些工具,开发者能轻松监控应用健康状况并在发现问题时自动采取措施,确保服务高可用性。要实现完善的机制,需根据具体应用架构和需求进行配置和扩展。
33 0
|
13天前
|
Java Spring 开发者
Java Web开发新潮流:Vaadin与Spring Boot强强联手,打造高效便捷的应用体验!
【8月更文挑战第31天】《Vaadin与Spring Boot集成:最佳实践指南》介绍了如何结合Vaadin和Spring Boot的优势进行高效Java Web开发。文章首先概述了集成的基本步骤,包括引入依赖和配置自动功能,然后通过示例展示了如何创建和使用Vaadin组件。相较于传统框架,这种集成方式简化了配置、提升了开发效率并便于部署。尽管可能存在性能和学习曲线方面的挑战,但合理的框架组合能显著提升应用开发的质量和速度。
25 0
|
15天前
|
缓存 Java 数据库连接
Spring Boot 资源文件属性配置,紧跟技术热点,为你的应用注入灵动活力!
【8月更文挑战第29天】在Spring Boot开发中,资源文件属性配置至关重要,它让开发者能灵活定制应用行为而不改动代码,极大提升了可维护性和扩展性。Spring Boot支持多种配置文件类型,如`application.properties`和`application.yml`,分别位于项目的resources目录下。`.properties`文件采用键值对形式,而`yml`文件则具有更清晰的层次结构,适合复杂配置。此外,Spring Boot还支持占位符引用和其他外部来源的属性值,便于不同环境下覆盖默认配置。通过合理配置,应用能快速适应各种环境与需求变化。
26 0
|
15天前
|
Java API 开发者
【开发者福音】Spring Boot 异常处理:优雅应对错误,提升应用健壮性,让调试不再是噩梦!
【8月更文挑战第29天】本文通过对比传统错误处理方式与Spring Boot推荐的最佳实践,展示了如何在Spring Boot应用中实现统一且优雅的异常处理。传统方法需在每个可能出错的地方显式处理异常,导致代码冗余且不一致。而Spring Boot的全局异常处理机制则能集中处理所有异常,简化代码并确保错误响应格式统一,提高应用程序的健壮性和可维护性。文中提供了具体的示例代码以帮助读者更好地理解和应用这一机制。
57 0

相关产品

  • 容器计算服务