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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 如何对通过阿里云容器服务创建的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

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
17天前
|
算法 物联网 数据库
阿里云 OpenSearch RAG 应用实践
本文介绍了阿里云OpenSearch在过去一年中在RAG方面的应用和探索。
447 2
阿里云 OpenSearch RAG 应用实践
|
5天前
|
安全 Java API
Java一分钟之-Spring Data REST:创建RESTful服务
【6月更文挑战第15天】Spring Data REST让基于Spring Data的项目轻松创建REST API,免去大量控制器代码。通过自动HTTP映射和链接生成,简化CRUD操作。文章涵盖启用REST、配置仓库、自定义端点、解决过度暴露、缺失逻辑和安全性问题,提供代码示例,如自定义Repository、投影和安全配置,强调在利用其便利性时注意潜在挑战。
21 5
|
4天前
|
监控 Java 数据安全/隐私保护
性能监控之 JMX 监控 Docker 容器中的 Java 应用
【6月更文挑战9天】性能监控之 JMX 监控 Docker 容器中的 Java 应用
24 1
|
6天前
|
Java Nacos 数据格式
Spring Cloud Nacos 详解:服务注册与发现及配置管理平台
Spring Cloud Nacos 详解:服务注册与发现及配置管理平台
27 3
|
5天前
|
Java Linux Spring
在 Linux 系统中将 Spring Boot 应用作为系统服务运行
【6月更文挑战第11天】最近由于一些原因,服务器经常会重启,每次重启后需要手动启动 Spring Boot 的工程,因此我需要将其配置成开启自启动的服务。
25 1
|
13天前
|
安全 Java 开发者
Java一分钟之-Spring Cloud Netflix Eureka:服务注册与发现
【6月更文挑战第8天】Spring Cloud Eureka是微服务架构的关键,提供服务注册与发现功能。本文讲解Eureka工作原理、配置、常见问题及解决方案。Eureka包含Server(管理服务状态)和Client(注册服务实例并发现服务)。快速入门包括启动Eureka Server和创建Eureka Client。常见问题涉及服务注册不上、服务下线和客户端注册信息不准确,可通过检查网络、理解自我保护机制和配置元数据解决。此外,文中还提及健康检查、安全配置和集群部署等高级实践,以增强系统健壮性和扩展性。
57 8
|
8天前
|
运维 Ubuntu Docker
深入理解容器化技术:Docker的应用与实践
在这个数字化转型迅速推进的时代,容器化技术为软件开发和部署提供了新的路径。本文将深入探讨Docker技术的基本原理、应用场景以及实际操作,旨在帮助读者全面理解并掌握这一关键技术。
61 2
|
13天前
|
安全 持续交付 Docker
深入探索Dockerfile:构建容器化应用的秘密武器
深入探索Dockerfile:构建容器化应用的秘密武器
|
13天前
|
运维 监控 搜索推荐
客户案例 | 阿里云向量检索 Milvus 版在识货电商检索场景的应用与实践
本文分享了阿里云向量检索 Milvus 版在识货电商检索场景的应用与实践。阿里云的 Milvus 服务以其性能稳定和功能多样化的向量检索能力,为识货团队在电商领域的向量检索场景中搭建业务系统提供了强有力的支持。
|
16天前
|
弹性计算 安全 网络安全
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(3)
**《从基础到应用云上安全航行指南》——阿里云专家教你如何安全访问和管理ECS资源(3)** 在阿里云的广阔云海中,ECS(弹性计算服务)资源如同航行的船只,承载着我们的业务与数据。如何确保这些

相关产品

  • 容器计算服务