微服务压测功能可以用于压测构建于VPC内的微服务应用,通过PTS界面的配置,30秒即可实现微服务压测。目前PTS支持自建、EDAS托管和ACK托管的SpringCloud框架的微服务压测。本文介绍如何配置自建SpringCloud微服务的压测场景。

前提条件

已基于阿里云云服务器ECS(Elastic Compute Service)产品自主搭建微服务应用,详情请参见部署微服务应用

背景信息

经典微服务架构是通过网关暴露每一个服务,且通过网络隔离来保障每个服务的安全性,因此云上微服务通常构建于安全性较高的VPC网络内。但压测VPC内的微服务应用会面临着网络隔离的难题,传统的解决方案是基于VPC网络搭建压测工具进行压测。例如JMeter压测工具,但搭建JMeter需要一定的时间成本和代码基础,且对微服务压测的支持不友好。

PTS自研的微服务压测功能可以解决这些难题,通过PTS控制台的简单配置,快速实现微服务的压测。

限制条件

  • 最大并发用户数不能超过1000。
  • 最大QPS不能超过1000。
  • 由于PTS施压资源是共享的,若遇到压测引擎不足的报错,请稍后重试。

操作步骤

基于阿里云ECS产品自主搭建的微服务应用,可参考以下操作进行场景配置。

  1. 登录PTS 控制台,在左侧导航栏中选择创建压测 > 微服务压测
  2. 微服务压测页面,填写场景名
  3. 微服务类型选择SpringCloud环境类型选择自建
  4. 场景配置页签下,填写SpringCloud服务配置信息。
    springcloud-自建
    参数 描述
    注册中心类型 包括Eureka、Zookeeper和Nacos类型。
    注册中心 微服务注册中心的IP地址。
    • 若是ZooKeeper类型,格式为[ip]:[port][ip]为注册中心对应的IP。
    • 若是Eureka类型,格式为http://[ip]:[port]/eureka/[ip]为注册中心对应的IP。
    • 若是Nacos类型,格式为[ip]:[port][ip]为注册中心对应的IP。
    应用名 暴露服务的应用application,SpringBoot应用一般为spring.application.name
    访问路径 请求路径URL。例如/demo
    请求方式 包括GET、POST、PUT、DELETE,并需要在Header定义页签定义Header。若选择POST和PUT请求,还需要填写请求参数Body。
    超时时间 请求发送之后该虚拟用户等待应答的最长时间,单位为毫秒。默认值1000,即1秒。对于在线业务,建议超时时间小于5000毫秒。主要行业的响应时间建议如下:
    • 互联网企业:500毫秒以下,例如淘宝业务10毫秒左右。
    • 金融企业:1000毫秒以下,部分复杂业务3000毫秒以下。
    • 保险企业:3000毫秒以下。
    • 制造业:5000毫秒以下。
    是否打印日志 输出请求日志,用于调试使用,正常压测时请关闭打印日志。
  5. 选择Header定义页签,填写Key、Value。若请求方式选择POST和PUT请求,还需要选择Body定义页签,填写请求参数Body。
  6. 选择施压配置页签,设置微服务压测的网络配置,详情请参见微服务施压配置

联系我们

如果您在使用微服务压测过程中有任何建议和疑问,欢迎扫描以下二维码加入钉钉群与我们交流。

code