CN116389321A - 生产环境全链路的压力测试方法及其装置 - Google Patents

生产环境全链路的压力测试方法及其装置 Download PDF

Info

Publication number
CN116389321A
CN116389321A CN202310538321.6A CN202310538321A CN116389321A CN 116389321 A CN116389321 A CN 116389321A CN 202310538321 A CN202310538321 A CN 202310538321A CN 116389321 A CN116389321 A CN 116389321A
Authority
CN
China
Prior art keywords
pressure measurement
flow
production
application service
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310538321.6A
Other languages
English (en)
Inventor
申延斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong Technology Information Technology Co Ltd
Original Assignee
Jingdong Technology Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jingdong Technology Information Technology Co Ltd filed Critical Jingdong Technology Information Technology Co Ltd
Priority to CN202310538321.6A priority Critical patent/CN116389321A/zh
Publication of CN116389321A publication Critical patent/CN116389321A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/14Arrangements for monitoring or testing data switching networks using software, i.e. software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Measuring Fluid Pressure (AREA)
  • Testing Of Devices, Machine Parts, Or Other Structures Thereof (AREA)

Abstract

本申请提出了一种生产环境全链路的压力测试方法及其装置,涉及互联网技术、测试技术领域。本申请通过基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分;确定服务集群中应用服务的拓扑关系;基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。本申请方案简单,不需要底层中间件或存储服务进行升级,只在应用系统进行简单的改造升级,就可以实现生产环境全链路压测,且压测结果更为准确。

Description

生产环境全链路的压力测试方法及其装置
技术领域
本申请涉及互联网技术、测试技术领域,尤其涉及一种生产环境全链路的压力测试方法及其装置。
背景技术
链路压力测试是基于实际生产业务场景和系统环境,模拟海量的用户请求和数据对整个业务链进行压力测试,并持续调优的过程,不少企业为了保证系统的性能与稳定性,投入了大量的资源、时间来进行系统压测,评估系统容量、识别性能瓶颈点并进行优化。相关技术中,在进行压测时,需要中间件或存储服务进行大量的改造,方案复杂且不容易实现。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的一个目的在于提出一种生产环境全链路的压力测试方法,通过基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分;确定服务集群中应用服务的拓扑关系;基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。
本申请的第二个目的在于提出一种生产环境全链路的压力测试装置。
本申请的第三个目的在于提出一种电子设备。
本申请的第四个目的在于提出一种非瞬时计算机可读存储介质。
本申请的第五个目的在于提出一种计算机程序产品。
为达上述目的,本申请第一方面实施例提出了一种生产环境全链路的压力测试方法,包括:基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分;确定服务集群中应用服务的拓扑关系;基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。
根据本申请的一个实施例,基于拓扑关系,对压测流量和生产流量进行隔离的流量处理,包括:基于拓扑关系,确定第一应用服务的基于消息队列调用的第二应用服务;基于消息队列对压测流量和生产流量进行流量隔离控制;通过消息队列向第二应用服务消费压测流量和生产流量。
根据本申请的一个实施例,基于消息队列对压测流量和生产流量进行流量隔离控制,包括:向消息队列中的压测主题中传递压测流量,并向消息队列中的生产主题中传递生产流量。
根据本申请的一个实施例,通过消息队列向第二应用服务消费压测流量和生产流量,包括:通过第二应用服务中第一生产分组资源对生产主题中的生产流量进行消费;通过第二应用服务的第一压测分组资源对压测主题中的压测流量进行消费。
根据本申请的一个实施例,基于拓扑关系,对压测流量和生产流量进行隔离的流量处理,包括:基于拓扑关系,确定第一应用服务的基于远程调用RPC所调用的第三应用服务;向第三应用服务传输压测流量和生产流量;通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量。
根据本申请的一个实施例,通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量之前,还包括:基于拓扑关系,确定第三应用服务调用的第四应用服务;确定第四应用服务的分组资源和分组资源的类型;基于分组资源的类型,确定用于传递生产流量的第二生产分组资源,以及用于传递压测流量的第二压测分组资源。
根据本申请的一个实施例,生产环境全链路的压力测试方法还包括:通过第三应用服务对压测流量和生产流量进行隔离存储。
根据本申请的一个实施例,通过第三应用服务对压测流量和生产流量进行隔离存储,包括:通过第三应用服务向生产库中存储生产流量,以及向影子库中存储压测流量。
根据本申请的一个实施例,服务集群中的应用服务中配置生产环境全链路压测管理服务器下发的全链路压测软件开发工具包SDK,方法还包括:基于软件开发工具包SDK对压测流量和生产流量进行隔离流量处理。
根据本申请的一个实施例,对压测流量和生产流量进行区分之后,还包括:获取压测流量的压测标;将压测流量的压测标作为第一应用服务的主线程的线程变量进行存储;在第一应用服务内通过线程变量对压测标进行传递。
根据本申请的一个实施例,在第一应用服务内通过线程变量对压测标进行传递,还包括:通过主线程的线程变量向第一应用服务的线程池中子线程传递压测标;由子线程基于RPC调用第三应用服务,并由第三应用服务向第四应用服务的不同分组资源传递压测流量和生产流量。
根据本申请的一个实施例,生产环境全链路的压力测试方法还还包括:在第一应用服务基于RPC调用第三应用服务时,由主线程对线程变量进行查询得到压测标,并基于压测标将压测流量发送至消息队列的压测主题中,以及将生产流量发送至消息队列的生产主题中。
为达上述目的,本申请第二方面实施例提出了一种生产环境全链路的压力测试装置,包括:接收模块,用于基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分;确定模块,用于确定服务集群中应用服务的拓扑关系;处理模块,用于基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。
根据本申请的一个实施例,处理模块,还用于:基于拓扑关系,确定第一应用服务的基于消息队列调用的第二应用服务;基于消息队列对压测流量和生产流量进行流量隔离控制;通过消息队列向第二应用服务消费压测流量和生产流量。
根据本申请的一个实施例,处理模块,还用于:向消息队列中的压测主题中传递压测流量,并向消息队列中的生产主题中传递生产流量。
根据本申请的一个实施例,处理模块,还用于:通过第二应用服务中第一生产分组资源对生产主题中的生产流量进行消费;通过第二应用服务的第一压测分组资源对压测主题中的压测流量进行消费。
根据本申请的一个实施例,处理模块,还用于:基于拓扑关系,确定第一应用服务的基于远程调用RPC所调用的第三应用服务;向第三应用服务传输压测流量和生产流量;通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量。
根据本申请的一个实施例,处理模块,还用于:基于拓扑关系,确定第三应用服务调用的第四应用服务;确定第四应用服务的分组资源和分组资源的类型;基于分组资源的类型,确定用于传递生产流量的第二生产分组资源,以及用于传递压测流量的第二压测分组资源。
根据本申请的一个实施例,处理模块,还用于:通过第三应用服务对压测流量和生产流量进行隔离存储。
根据本申请的一个实施例,处理模块,还用于:通过第三应用服务向生产库中存储生产流量,以及向影子库中存储压测流量。
根据本申请的一个实施例,服务集群中的应用服务中配置生产环境全链路压测管理服务器下发的全链路压测软件开发工具包SDK,处理模块,还用于:基于软件开发工具包SDK对压测流量和生产流量进行隔离流量处理。
根据本申请的一个实施例,接收模块,还用于:获取压测流量的压测标;将压测流量的压测标作为第一应用服务的主线程的线程变量进行存储;在第一应用服务内通过线程变量对压测标进行传递。
根据本申请的一个实施例,接收模块,还用于:通过主线程的线程变量向第一应用服务的线程池中子线程传递压测标;由子线程基于RPC调用第三应用服务,并由第三应用服务向第四应用服务的不同分组资源传递压测流量和生产流量。
根据本申请的一个实施例,接收模块,还用于:在第一应用服务基于RPC调用第三应用服务时,由主线程对线程变量进行查询得到压测标,并基于压测标将压测流量发送至消息队列的压测主题中,以及将生产流量发送至消息队列的生产主题中。
为达上述目的,本申请第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以实现如本申请第一方面实施例所述的生产环境全链路的压力测试方法。
为达上述目的,本申请第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于实现如本申请第一方面实施例所述的生产环境全链路的压力测试方法。
为达上述目的,本申请第五方面实施例提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如本申请第一方面实施例所述的生产环境全链路的压力测试方法。
本申请至少实现以下有益效果:
本申请方案简单,不需要底层中间件或存储服务进行升级,只在应用系统进行简单的改造升级,就可以实现生产环境全链路压测,且压测结果更为准确。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一个实施例示出的一种生产环境全链路的压力测试方法的示例性流程示意图。
图2是本申请一个实施例示出的一种生产环境全链路的压力测试方法的示例性流程示意图。
图3是本申请一个实施例示出的一种生产环境全链路的压力测试方法的示例性流程示意图。
图4是本申请一个实施例示出的一种生产环境全链路的压力测试方法的示例性示意图。
图5是本申请一个实施例示出的一种生产环境全链路的压力测试方法的示例性示意图。
图6是本申请一个实施例示出的一种全链路压测软件开发工具包SDK的示意图。
图7是本申请一个实施例示出的一种生产环境全链路的压力测试装置的示意图。
图8是本申请一个实施例示出的一种电子设备的示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
图1是本申请示出的一种生产环境全链路的压力测试方法的示例性流程示意图,由服务集群执行,如图1所示,该生产环境全链路的压力测试方法,包括以下步骤:
S101,基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
随着互联网发展,企业IT系统面临着更高的挑战,特别是对于系统性能的挑战,对于一些企业来说,有些日子,比如说电商购物节,更是一年一度的大考,不少企业为了在电商大促期间保证系统的性能与稳定性,投入了大量的资源、时间来进行系统压测,评估系统容量、识别性能瓶颈点并进行优化。
本申请中,并不单独的接收压测流量或者单独的接收生产流量,而是基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
S102,确定服务集群中应用服务的拓扑关系。
确定服务集群中应用服务的拓扑关系。
S103,基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。
基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。
本申请实施例提出了一种生产环境全链路的压力测试方法,通过基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分;确定服务集群中应用服务的拓扑关系;基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。本申请方案简单,不需要底层中间件或存储服务进行升级,只在应用系统进行简单的改造升级,就可以实现生产环境全链路压测,且压测结果更为准确。
进一步的,对压测流量和生产流量进行区分之后,还包括:获取压测流量的压测标,将压测流量的压测标作为第一应用服务的主线程的线程变量进行存储,在第一应用服务内通过线程变量对压测标进行传递。
进一步的,在第一应用服务内通过线程变量对压测标进行传递,包括:通过主线程的线程变量向第一应用服务的线程池中子线程传递压测标,由子线程基于远程过程调用(Remote Procedure Call,RPC)调用第三应用服务,并由第三应用服务向第四应用服务的不同分组资源传递压测流量和生产流量。
图2是本申请示出的一种生产环境全链路的压力测试方法的示例性流程示意图,由服务集群执行,如图2所示,该生产环境全链路的压力测试方法,包括以下步骤:
S201,基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
S202,确定服务集群中应用服务的拓扑关系。
确定服务集群中应用服务的拓扑关系。
S203,基于拓扑关系,确定第一应用服务的基于消息队列调用的第二应用服务。
基于拓扑关系,确定第一应用服务的基于消息队列调用的第二应用服务。
S204,基于消息队列对压测流量和生产流量进行流量隔离控制。
向消息队列中的压测主题中传递压测流量,并向消息队列中的生产主题中传递生产流量。
其中,服务集群中的应用服务中配置生产环境全链路压测管理服务器下发的全链路压测软件开发工具包(Software Development Kit,SDK),基于软件开发工具包SDK对压测流量和生产流量进行隔离流量处理。
全链路压测软件开发工具包SDK适配各种底层中间件或存储服务,帮助应用系统在最小化改造的基础上,快速具备生产环境全链路压测能力,包括但不限于生产环境全链路压测中压测标志识别、存储于传递,实现压测流量控制(包括服务调用、消息队列(Message Queue,MQ)消息发送等),实现存储数据隔离(关系型数据库、NoSQL数据库等)等能力。
其中,应用服务嵌入SDK后,无需做特殊改造,本申请众多涉及到的流量隔离、压测标标识传递、存储隔离都是SDK实现的。
SDK的配置由操作员在压测管控服务进行设定,并下发给各个应用服务中的SDK,如流服务调用量控制配置信息、MQ流量控制配置信息、存储控制配置信息等。
S205,通过消息队列向第二应用服务消费压测流量和生产流量。
通过第二应用服务中第一生产分组资源对生产主题中的生产流量进行消费,通过第二应用服务的第一压测分组资源对压测主题中的压测流量进行消费。
本申请方案简单,不需要底层中间件或存储服务进行升级,只在应用系统进行简单的改造升级,就可以实现生产环境全链路压测,且压测结果更为准确。
图3是本申请示出的一种生产环境全链路的压力测试方法的示例性流程示意图,由服务集群执行,如图3所示,该生产环境全链路的压力测试方法,包括以下步骤:
S301,基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
S302,确定服务集群中应用服务的拓扑关系。
确定服务集群中应用服务的拓扑关系。
S303,基于拓扑关系,确定第一应用服务的基于远程调用RPC所调用的第三应用服务。
基于拓扑关系,确定第一应用服务的基于远程调用RPC所调用的第三应用服务。
其中,在第一应用服务基于RPC调用第三应用服务时,由主线程对线程变量进行查询得到压测标,并基于压测标将压测流量发送至消息队列的压测主题中,以及将生产流量发送至消息队列的生产主题中。
S304,向第三应用服务传输压测流量和生产流量。
通过第三应用服务对压测流量和生产流量进行隔离存储。
其中,通过第三应用服务对压测流量和生产流量进行隔离存储时,可通过第三应用服务向生产库中存储生产流量,以及向影子库中存储压测流量。
S305,通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量。
基于拓扑关系,确定第三应用服务调用的第四应用服务,确定第四应用服务的分组资源和分组资源的类型,基于分组资源的类型,确定用于传递生产流量的第二生产分组资源,以及用于传递压测流量的第二压测分组资源,并通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量。
本申请方案简单,不需要底层中间件或存储服务进行升级,只在应用系统进行简单的改造升级,就可以实现生产环境全链路压测,且压测结果更为准确。
图4是本申请示出的一种生产环境全链路的压力测试方法的示例性示意图,由服务集群执行,图4中浅灰色的箭头代表生产流量的流向,黑色的箭头代表压测流量的流向,如图4所示,该生产环境全链路的压力测试方法,包括以下步骤:基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分,确定服务集群中应用服务的拓扑关系,基于拓扑关系,确定第一应用服务的基于消息队列调用的第二应用服务,向消息队列中的压测主题中传递压测流量,并向消息队列中的生产主题中传递生产流量,通过第二应用服务中第一生产分组资源对生产主题中的生产流量进行消费,通过第二应用服务的第一压测分组资源对压测主题中的压测流量进行消费。并且,基于拓扑关系,确定第一应用服务的基于远程调用RPC所调用的第三应用服务,向第三应用服务传输压测流量和生产流量,通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量。
其中,服务集群中的每个应用服务中配置生产环境全链路压测管理服务器下发的全链路压测软件开发工具包(Software Development Kit,SDK),基于软件开发工具包SDK对压测流量和生产流量进行隔离流量处理。
图5是本申请示出的一种生产环境全链路的压力测试方法的示例性示意图,由服务集群执行,图5中浅灰色的箭头代表生产流量的流向,黑色的箭头代表压测流量的流向,如图5所示,该生产环境全链路的压力测试方法,包括以下步骤:基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分,获取压测流量的压测标,将压测流量的压测标作为第一应用服务的主线程的线程变量进行存储,通过主线程的线程变量向第一应用服务的线程池中子线程传递压测标,由子线程基于远程过程调用RPC调用第三应用服务,并由第三应用服务通过服务调用向第四应用服务的不同分组资源传递压测流量和生产流量。其中,在第一应用服务基于RPC调用第三应用服务时,由主线程对线程变量进行查询得到压测标,并基于压测标将压测流量发送至消息队列的压测主题中,以及将生产流量发送至消息队列的生产主题中,并通过第二应用服务中第一生产分组资源对生产主题中的生产流量进行消费,通过第二应用服务的第一压测分组资源对压测主题中的压测流量进行消费。
图6是本申请示出的一种全链路压测软件开发工具包SDK的示意图,如图6所示,该全链路压测软件开发工具包SDK包括:aop切面增强、压测标传递组件、压测标存储组件、rpc适配组件、mq适配组件、关系型数据库适配组件、配置缓存、配置同步组件组成。
其中:
aop切面增强,主要基于spring aop等技术,实现面向切面编程,实现原始应用系统方法增强,将压测相关逻辑代码植入进应用系统原始方法中。
压测标传递组件与压测标存储组件,主要负责压测标志识别、传递与存储。
rpc适配组件、mq适配组件、数据存储适配组件主要适配各种底层中间件或存储服务,如dubbo、springcloud、rocketMQ、ActiveMQ、Kafka、MySQL、Redis、ElasticSearch、Hbase等。
压测标传递组件与rpc适配组件、mq适配组件、关系型数据库适配组件协作,完成压测流量控制。
配置缓存、配置同步组件,主要是负责与服务集群内的通信,获取压测相关规则配置,并进行缓存存储。
SDK通过适配各种底层中间件或存储服务,帮助应用系统在最小化改造的基础上,快速具备生产环境全链路压测能力,包括但不限于生产环境全链路压测中压测标志识别、存储于传递,实现压测流量控制(包括服务调用、MQ消息发送等),实现存储数据隔离(关系型数据库、NoSQL数据库等)等能力。
图7是本申请示出的一种生产环境全链路的压力测试装置的示意图,如图7所示,该生产环境全链路的压力测试装置700,包括接收模块701、确定模块702和处理模块703,其中:
接收模块701,用于基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
确定模块702,用于确定服务集群中应用服务的拓扑关系。
处理模块703,用于基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。
本装置方案简单,不需要底层中间件或存储服务进行升级,只在应用系统进行简单的改造升级,就可以实现生产环境全链路压测,且压测结果更为准确。
根据本申请的一个实施例,处理模块703,还用于:基于拓扑关系,确定第一应用服务的基于消息队列调用的第二应用服务;基于消息队列对压测流量和生产流量进行流量隔离控制;通过消息队列向第二应用服务消费压测流量和生产流量。
根据本申请的一个实施例,处理模块703,还用于:向消息队列中的压测主题中传递压测流量,并向消息队列中的生产主题中传递生产流量。
根据本申请的一个实施例,处理模块703,还用于:通过第二应用服务中第一生产分组资源对生产主题中的生产流量进行消费;通过第二应用服务的第一压测分组资源对压测主题中的压测流量进行消费。
根据本申请的一个实施例,处理模块703,还用于:基于拓扑关系,确定第一应用服务的基于远程调用RPC所调用的第三应用服务;向第三应用服务传输压测流量和生产流量;通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量。
根据本申请的一个实施例,处理模块703,还用于:基于拓扑关系,确定第三应用服务调用的第四应用服务;确定第四应用服务的分组资源和分组资源的类型;基于分组资源的类型,确定用于传递生产流量的第二生产分组资源,以及用于传递压测流量的第二压测分组资源。
根据本申请的一个实施例,处理模块703,还用于:通过第三应用服务对压测流量和生产流量进行隔离存储。
根据本申请的一个实施例,处理模块703,还用于:通过第三应用服务向生产库中存储生产流量,以及向影子库中存储压测流量。
根据本申请的一个实施例,服务集群中的应用服务中配置生产环境全链路压测管理服务器下发的全链路压测软件开发工具包SDK,处理模块703,还用于:基于软件开发工具包SDK对压测流量和生产流量进行隔离流量处理。
根据本申请的一个实施例,接收模块701,还用于:获取压测流量的压测标;将压测流量的压测标作为第一应用服务的主线程的线程变量进行存储;在第一应用服务内通过线程变量对压测标进行传递。
根据本申请的一个实施例,接收模块701,还用于:通过主线程的线程变量向第一应用服务的线程池中子线程传递压测标;由子线程基于RPC调用第三应用服务,并由第三应用服务向第四应用服务的不同分组资源传递压测流量和生产流量。
根据本申请的一个实施例,接收模块701,还用于:在第一应用服务基于RPC调用第三应用服务时,由主线程对线程变量进行查询得到压测标,并基于压测标将压测流量发送至消息队列的压测主题中,以及将生产流量发送至消息队列的生产主题中。
为了实现上述实施例,本申请实施例还提出一种电子设备800,如图8所示,该电子设备800包括:处理器801和处理器通信连接的存储器802,存储器802存储有可被至少一个处理器执行的指令,指令被至少一个处理器801执行,以实现如上述实施例所示的生产环境全链路的压力测试方法。
为了实现上述实施例,本申请实施例还提出一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机实现如上述实施例所示的生产环境全链路的压力测试方法。
为了实现上述实施例,本申请实施例还提出一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如上述实施例所示的生产环境全链路的压力测试方法。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (16)

1.一种生产环境全链路的压力测试方法,其特征在于,由服务集群执行,所述方法包括:
基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对所述压测流量和所述生产流量进行区分;
确定所述服务集群中应用服务的拓扑关系;
基于所述拓扑关系,对所述压测流量和所述生产流量进行隔离的流量处理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述拓扑关系,对所述压测流量和所述生产流量进行隔离的流量处理,包括:
基于所述拓扑关系,确定所述第一应用服务的基于消息队列调用的第二应用服务;
基于所述消息队列对所述压测流量和所述生产流量进行流量隔离控制;
通过所述消息队列向所述第二应用服务消费所述压测流量和所述生产流量。
3.根据权利要求2所述的方法,其特征在于,所述基于所述消息队列对所述压测流量和所述生产流量进行流量隔离控制,包括:
向所述消息队列中的压测主题中传递所述压测流量,并向所述消息队列中的生产主题中传递所述生产流量。
4.根据权利要求3所述的方法,其特征在于,所述通过所述消息队列向所述第二应用服务消费所述压测流量和所述生产流量,包括:
通过所述第二应用服务中第一生产分组资源对所述生产主题中的生产流量进行消费;
通过所述第二应用服务的第一压测分组资源对所述压测主题中的压测流量进行消费。
5.根据权利要求1所述的方法,其特征在于,所述基于所述拓扑关系,对所述压测流量和所述生产流量进行隔离的流量处理,包括:
基于所述拓扑关系,确定所述第一应用服务的基于远程调用RPC所调用的第三应用服务;
向所述第三应用服务传输所述压测流量和所述生产流量;
通过所述第三应用服务向第四应用服务的第二生产分组资源中传递所述生产流量,以及向所述第四应用服务的第二压测分组资源中传递所述压测流量。
6.根据权利要求5所述的方法,其特征在于,所述通过所述第三应用服务向第四应用服务的第二生产分组资源中传递所述生产流量,以及向所述第四应用服务的第二压测分组资源中传递所述压测流量之前,还包括:
基于所述拓扑关系,确定所述第三应用服务调用的所述第四应用服务;
确定所述第四应用服务的分组资源和所述分组资源的类型;
基于所述分组资源的类型,确定用于传递所述生产流量的第二生产分组资源,以及用于传递所述压测流量的第二压测分组资源。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
通过所述第三应用服务对所述压测流量和所述生产流量进行隔离存储。
8.根据权利要求7所述的方法,其特征在于,所述通过所述第三应用服务对所述压测流量和所述生产流量进行隔离存储,包括:
通过所述第三应用服务向生产库中存储所述生产流量,以及向影子库中存储所述压测流量。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述服务集群中的应用服务中配置生产环境全链路压测管理服务器下发的全链路压测软件开发工具包SDK,所述方法还包括:
基于所述软件开发工具包SDK对所述压测流量和所述生产流量进行隔离流量处理。
10.根据权利要求1-8中任一项所述的方法,其特征在于,所述对所述压测流量和所述生产流量进行区分之后,还包括:
获取所述压测流量的压测标;
将所述压测流量的压测标作为所述第一应用服务的主线程的线程变量进行存储;
在所述第一应用服务内通过所述线程变量对所述压测标进行传递。
11.根据权利要求10所述的方法,其特征在于,所述在所述第一应用服务内通过所述线程变量对所述压测标进行传递,还包括:
通过所述主线程的线程变量向所述第一应用服务的线程池中子线程传递所述压测标;
由所述子线程基于RPC调用第三应用服务,并由所述第三应用服务向第四应用服务的不同分组资源传递所述压测流量和所述生产流量。
12.根据权利要求10所述的方法,其特征在于,所述方法还还包括:
在所述第一应用服务基于RPC调用第三应用服务时,由所述主线程对所述线程变量进行查询得到所述压测标,并基于所述压测标将所述压测流量发送至消息队列的压测主题中,以及将所述生产流量发送至所述消息队列的生产主题中。
13.一种生产环境全链路的压力测试装置,其特征在于,包括:
接收模块,用于基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对所述压测流量和所述生产流量进行区分;
确定模块,用于确定所述服务集群中应用服务的拓扑关系;
处理模块,用于基于所述拓扑关系,对所述压测流量和所述生产流量进行隔离的流量处理。
14.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-12中任一项所述的方法。
15.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-12中任一项所述的方法。
16.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-12中任一项所述的步骤。
CN202310538321.6A 2023-05-12 2023-05-12 生产环境全链路的压力测试方法及其装置 Pending CN116389321A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310538321.6A CN116389321A (zh) 2023-05-12 2023-05-12 生产环境全链路的压力测试方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310538321.6A CN116389321A (zh) 2023-05-12 2023-05-12 生产环境全链路的压力测试方法及其装置

Publications (1)

Publication Number Publication Date
CN116389321A true CN116389321A (zh) 2023-07-04

Family

ID=86967674

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310538321.6A Pending CN116389321A (zh) 2023-05-12 2023-05-12 生产环境全链路的压力测试方法及其装置

Country Status (1)

Country Link
CN (1) CN116389321A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116781591A (zh) * 2023-08-23 2023-09-19 国网信息通信产业集团有限公司 一种基于流量染色和透传技术的压力测试系统、压测终端及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116781591A (zh) * 2023-08-23 2023-09-19 国网信息通信产业集团有限公司 一种基于流量染色和透传技术的压力测试系统、压测终端及存储介质
CN116781591B (zh) * 2023-08-23 2024-01-02 国网信息通信产业集团有限公司 一种基于流量染色和透传技术的压力测试系统、压测终端及存储介质

Similar Documents

Publication Publication Date Title
CN107967143B (zh) 获取客户端应用程序源代码的更新指示信息的方法、装置和系统
CN110297944B (zh) 分布式xml数据处理方法及系统
US20130152069A1 (en) Method, apparatus and system for initiating terminal operation
CN116389321A (zh) 生产环境全链路的压力测试方法及其装置
CN108882053B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN104243610A (zh) 一种分布式文件传输服务方法
CN112860308A (zh) 接口定义的配置方法、业务处理方法、服务器及存储介质
CN115114044A (zh) 消息推送方法、装置、设备和介质
CN111008032A (zh) 一种页面数据更新方法及装置
CN109873731B (zh) 测试方法、装置和系统
CN113064685A (zh) 一种h5页面加载方法及装置
CN108399046B (zh) 文件操作请求处理方法和装置
US12101429B2 (en) Method for service decision distribution among multiple terminal devices and system
CN108696554B (zh) 负载均衡方法和装置
CN109005468B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN113986312B (zh) 软件升级方法、装置、电子设备及计算机可读存储介质
CN107861807B (zh) 程序调用的优化方法及装置
CN112395337A (zh) 一种数据导出方法和装置
CN109462491B (zh) 用于测试服务器功能的系统、方法和装置
CN112118567A (zh) 设备升级方法、电子设备和介质
CN114189384B (zh) 业务处理方法、装置、设备及存储介质
CN105407133A (zh) 一种移动应用自动化发布方法和系统
CN115248735A (zh) 一种日志数据输出控制方法、装置、设备及存储介质
CN112948195A (zh) 接口测试的方法、装置、电子设备和存储介质
CN112131070B (zh) 调用关系跟踪方法、装置、设备及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination