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

前提条件

已通过EDAS托管DUBBO微服务,详情请参见将DUBBO应用托管到EDAS

背景信息

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

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

限制条件

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

操作步骤

通过EDAS托管的DUBBO微服务应用,可参见以下操作进行场景配置。

  1. 登录PTS 控制台,在左侧导航栏中选择创建压测 > 微服务压测
  2. 微服务压测页面,填写场景名
  3. 微服务类型选择DUBBO环境类型选择EDAS。选择集群类型,不同的集群类型,对应的施压配置会有所不同,请参见施压配置
  4. 场景配置页签下,填写DUBBO服务配置信息。
    edas-dubbo.png
    参数 描述
    服务目标地址 若选择注册中心直连服务地址,则只需填写服务目标地址,无需填写注册中心地址,格式为dubbo://[ip1]:[port],[port]通常为20880。
    应用名 发布Dubbo的服务名。
    组别(可选) Dubbo微服务组别group。
    版本(可选) Dubbo微服务版本version。
    服务名 暴露服务的接口,示例工程发布的服务名com.alibaba.pts.dubbo.api.DemoService
    方法名 暴露服务的方法,示例工程发布的方法名sayHello
    方法参数类型 需要压测服务的函数包含的参数类型。填写的内容是一个字符串类型的JSON 数组,数组的每一位代表对应位置的参数类型。除了Java基本类型,其余类型需要填写完整的类路径。
    参数填写方式 包括方法参数和文件参数URL的填写方式:
    • 选择参数填写,需要输入方法参数。
    • 选择参数文件URL,需要填写参数文件的URL,文件URL必须支持公网访问。
    方法参数 需要压测服务的函数包含的参数,填写的内容是一个字符串类型的JSON数组,数组的每一位代表对应位置的参数。
    超时时间 请求发送之后该虚拟用户等待应答的最长时间,单位为毫秒。默认值1000,即1秒。对于在线业务,建议超时时间小于5000毫秒。主要行业的响应时间建议如下:
    • 互联网企业:500毫秒以下,例如淘宝业务10毫秒左右。
    • 金融企业:1000毫秒以下,部分复杂业务3000毫秒以下。
    • 保险企业:3000毫秒以下;
    • 制造业:5000毫秒以下。
    是否打印日志 输出请求日志,用于调试使用,正常压测时请关闭打印日志。
  5. 选择施压配置页签,设置微服务压测的网络配置,详情请参见微服务施压配置

联系我们

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

code