生产环境全链路的压力测试方法及其装置与流程

未命名 07-12 阅读:91 评论:0


1.本技术涉及互联网技术、测试技术领域,尤其涉及一种生产环境全链路的压力测试方法及其装置。


背景技术:

2.链路压力测试是基于实际生产业务场景和系统环境,模拟海量的用户请求和数据对整个业务链进行压力测试,并持续调优的过程,不少企业为了保证系统的性能与稳定性,投入了大量的资源、时间来进行系统压测,评估系统容量、识别性能瓶颈点并进行优化。相关技术中,在进行压测时,需要中间件或存储服务进行大量的改造,方案复杂且不容易实现。


技术实现要素:

3.本技术旨在至少在一定程度上解决相关技术中的技术问题之一。
4.为此,本技术的一个目的在于提出一种生产环境全链路的压力测试方法,通过基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分;确定服务集群中应用服务的拓扑关系;基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。
5.本技术的第二个目的在于提出一种生产环境全链路的压力测试装置。
6.本技术的第三个目的在于提出一种电子设备。
7.本技术的第四个目的在于提出一种非瞬时计算机可读存储介质。
8.本技术的第五个目的在于提出一种计算机程序产品。
9.为达上述目的,本技术第一方面实施例提出了一种生产环境全链路的压力测试方法,包括:基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分;确定服务集群中应用服务的拓扑关系;基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。
10.根据本技术的一个实施例,基于拓扑关系,对压测流量和生产流量进行隔离的流量处理,包括:基于拓扑关系,确定第一应用服务的基于消息队列调用的第二应用服务;基于消息队列对压测流量和生产流量进行流量隔离控制;通过消息队列向第二应用服务消费压测流量和生产流量。
11.根据本技术的一个实施例,基于消息队列对压测流量和生产流量进行流量隔离控制,包括:向消息队列中的压测主题中传递压测流量,并向消息队列中的生产主题中传递生产流量。
12.根据本技术的一个实施例,通过消息队列向第二应用服务消费压测流量和生产流量,包括:通过第二应用服务中第一生产分组资源对生产主题中的生产流量进行消费;通过第二应用服务的第一压测分组资源对压测主题中的压测流量进行消费。
13.根据本技术的一个实施例,基于拓扑关系,对压测流量和生产流量进行隔离的流
量处理,包括:基于拓扑关系,确定第一应用服务的基于远程调用rpc所调用的第三应用服务;向第三应用服务传输压测流量和生产流量;通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量。
14.根据本技术的一个实施例,通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量之前,还包括:基于拓扑关系,确定第三应用服务调用的第四应用服务;确定第四应用服务的分组资源和分组资源的类型;基于分组资源的类型,确定用于传递生产流量的第二生产分组资源,以及用于传递压测流量的第二压测分组资源。
15.根据本技术的一个实施例,生产环境全链路的压力测试方法还包括:通过第三应用服务对压测流量和生产流量进行隔离存储。
16.根据本技术的一个实施例,通过第三应用服务对压测流量和生产流量进行隔离存储,包括:通过第三应用服务向生产库中存储生产流量,以及向影子库中存储压测流量。
17.根据本技术的一个实施例,服务集群中的应用服务中配置生产环境全链路压测管理服务器下发的全链路压测软件开发工具包sdk,方法还包括:基于软件开发工具包sdk对压测流量和生产流量进行隔离流量处理。
18.根据本技术的一个实施例,对压测流量和生产流量进行区分之后,还包括:获取压测流量的压测标;将压测流量的压测标作为第一应用服务的主线程的线程变量进行存储;在第一应用服务内通过线程变量对压测标进行传递。
19.根据本技术的一个实施例,在第一应用服务内通过线程变量对压测标进行传递,还包括:通过主线程的线程变量向第一应用服务的线程池中子线程传递压测标;由子线程基于rpc调用第三应用服务,并由第三应用服务向第四应用服务的不同分组资源传递压测流量和生产流量。
20.根据本技术的一个实施例,生产环境全链路的压力测试方法还还包括:在第一应用服务基于rpc调用第三应用服务时,由主线程对线程变量进行查询得到压测标,并基于压测标将压测流量发送至消息队列的压测主题中,以及将生产流量发送至消息队列的生产主题中。
21.为达上述目的,本技术第二方面实施例提出了一种生产环境全链路的压力测试装置,包括:接收模块,用于基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分;确定模块,用于确定服务集群中应用服务的拓扑关系;处理模块,用于基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。
22.根据本技术的一个实施例,处理模块,还用于:基于拓扑关系,确定第一应用服务的基于消息队列调用的第二应用服务;基于消息队列对压测流量和生产流量进行流量隔离控制;通过消息队列向第二应用服务消费压测流量和生产流量。
23.根据本技术的一个实施例,处理模块,还用于:向消息队列中的压测主题中传递压测流量,并向消息队列中的生产主题中传递生产流量。
24.根据本技术的一个实施例,处理模块,还用于:通过第二应用服务中第一生产分组资源对生产主题中的生产流量进行消费;通过第二应用服务的第一压测分组资源对压测主题中的压测流量进行消费。
25.根据本技术的一个实施例,处理模块,还用于:基于拓扑关系,确定第一应用服务的基于远程调用rpc所调用的第三应用服务;向第三应用服务传输压测流量和生产流量;通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量。
26.根据本技术的一个实施例,处理模块,还用于:基于拓扑关系,确定第三应用服务调用的第四应用服务;确定第四应用服务的分组资源和分组资源的类型;基于分组资源的类型,确定用于传递生产流量的第二生产分组资源,以及用于传递压测流量的第二压测分组资源。
27.根据本技术的一个实施例,处理模块,还用于:通过第三应用服务对压测流量和生产流量进行隔离存储。
28.根据本技术的一个实施例,处理模块,还用于:通过第三应用服务向生产库中存储生产流量,以及向影子库中存储压测流量。
29.根据本技术的一个实施例,服务集群中的应用服务中配置生产环境全链路压测管理服务器下发的全链路压测软件开发工具包sdk,处理模块,还用于:基于软件开发工具包sdk对压测流量和生产流量进行隔离流量处理。
30.根据本技术的一个实施例,接收模块,还用于:获取压测流量的压测标;将压测流量的压测标作为第一应用服务的主线程的线程变量进行存储;在第一应用服务内通过线程变量对压测标进行传递。
31.根据本技术的一个实施例,接收模块,还用于:通过主线程的线程变量向第一应用服务的线程池中子线程传递压测标;由子线程基于rpc调用第三应用服务,并由第三应用服务向第四应用服务的不同分组资源传递压测流量和生产流量。
32.根据本技术的一个实施例,接收模块,还用于:在第一应用服务基于rpc调用第三应用服务时,由主线程对线程变量进行查询得到压测标,并基于压测标将压测流量发送至消息队列的压测主题中,以及将生产流量发送至消息队列的生产主题中。
33.为达上述目的,本技术第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以实现如本技术第一方面实施例所述的生产环境全链路的压力测试方法。
34.为达上述目的,本技术第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于实现如本技术第一方面实施例所述的生产环境全链路的压力测试方法。
35.为达上述目的,本技术第五方面实施例提出了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如本技术第一方面实施例所述的生产环境全链路的压力测试方法。
36.本技术至少实现以下有益效果:
37.本技术方案简单,不需要底层中间件或存储服务进行升级,只在应用系统进行简单的改造升级,就可以实现生产环境全链路压测,且压测结果更为准确。
附图说明
38.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
39.图1是本技术一个实施例示出的一种生产环境全链路的压力测试方法的示例性流程示意图。
40.图2是本技术一个实施例示出的一种生产环境全链路的压力测试方法的示例性流程示意图。
41.图3是本技术一个实施例示出的一种生产环境全链路的压力测试方法的示例性流程示意图。
42.图4是本技术一个实施例示出的一种生产环境全链路的压力测试方法的示例性示意图。
43.图5是本技术一个实施例示出的一种生产环境全链路的压力测试方法的示例性示意图。
44.图6是本技术一个实施例示出的一种全链路压测软件开发工具包sdk的示意图。
45.图7是本技术一个实施例示出的一种生产环境全链路的压力测试装置的示意图。
46.图8是本技术一个实施例示出的一种电子设备的示意图。
具体实施方式
47.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
48.图1是本技术示出的一种生产环境全链路的压力测试方法的示例性流程示意图,由服务集群执行,如图1所示,该生产环境全链路的压力测试方法,包括以下步骤:
49.s101,基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
50.随着互联网发展,企业it系统面临着更高的挑战,特别是对于系统性能的挑战,对于一些企业来说,有些日子,比如说电商购物节,更是一年一度的大考,不少企业为了在电商大促期间保证系统的性能与稳定性,投入了大量的资源、时间来进行系统压测,评估系统容量、识别性能瓶颈点并进行优化。
51.本技术中,并不单独的接收压测流量或者单独的接收生产流量,而是基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
52.s102,确定服务集群中应用服务的拓扑关系。
53.确定服务集群中应用服务的拓扑关系。
54.s103,基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。
55.基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。
56.本技术实施例提出了一种生产环境全链路的压力测试方法,通过基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分;确定服务集群中应用服务的拓扑关系;基于拓扑关系,对压测流量和生产流量进行
隔离的流量处理。本技术方案简单,不需要底层中间件或存储服务进行升级,只在应用系统进行简单的改造升级,就可以实现生产环境全链路压测,且压测结果更为准确。
57.进一步的,对压测流量和生产流量进行区分之后,还包括:获取压测流量的压测标,将压测流量的压测标作为第一应用服务的主线程的线程变量进行存储,在第一应用服务内通过线程变量对压测标进行传递。
58.进一步的,在第一应用服务内通过线程变量对压测标进行传递,包括:通过主线程的线程变量向第一应用服务的线程池中子线程传递压测标,由子线程基于远程过程调用(remote procedure call,rpc)调用第三应用服务,并由第三应用服务向第四应用服务的不同分组资源传递压测流量和生产流量。
59.图2是本技术示出的一种生产环境全链路的压力测试方法的示例性流程示意图,由服务集群执行,如图2所示,该生产环境全链路的压力测试方法,包括以下步骤:
60.s201,基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
61.基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
62.s202,确定服务集群中应用服务的拓扑关系。
63.确定服务集群中应用服务的拓扑关系。
64.s203,基于拓扑关系,确定第一应用服务的基于消息队列调用的第二应用服务。
65.基于拓扑关系,确定第一应用服务的基于消息队列调用的第二应用服务。
66.s204,基于消息队列对压测流量和生产流量进行流量隔离控制。
67.向消息队列中的压测主题中传递压测流量,并向消息队列中的生产主题中传递生产流量。
68.其中,服务集群中的应用服务中配置生产环境全链路压测管理服务器下发的全链路压测软件开发工具包(software development kit,sdk),基于软件开发工具包sdk对压测流量和生产流量进行隔离流量处理。
69.全链路压测软件开发工具包sdk适配各种底层中间件或存储服务,帮助应用系统在最小化改造的基础上,快速具备生产环境全链路压测能力,包括但不限于生产环境全链路压测中压测标志识别、存储于传递,实现压测流量控制(包括服务调用、消息队列(message queue,mq)消息发送等),实现存储数据隔离(关系型数据库、nosql数据库等)等能力。
70.其中,应用服务嵌入sdk后,无需做特殊改造,本技术众多涉及到的流量隔离、压测标标识传递、存储隔离都是sdk实现的。
71.sdk的配置由操作员在压测管控服务进行设定,并下发给各个应用服务中的sdk,如流服务调用量控制配置信息、mq流量控制配置信息、存储控制配置信息等。
72.s205,通过消息队列向第二应用服务消费压测流量和生产流量。
73.通过第二应用服务中第一生产分组资源对生产主题中的生产流量进行消费,通过第二应用服务的第一压测分组资源对压测主题中的压测流量进行消费。
74.本技术方案简单,不需要底层中间件或存储服务进行升级,只在应用系统进行简单的改造升级,就可以实现生产环境全链路压测,且压测结果更为准确。
75.图3是本技术示出的一种生产环境全链路的压力测试方法的示例性流程示意图,由服务集群执行,如图3所示,该生产环境全链路的压力测试方法,包括以下步骤:
76.s301,基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
77.基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
78.s302,确定服务集群中应用服务的拓扑关系。
79.确定服务集群中应用服务的拓扑关系。
80.s303,基于拓扑关系,确定第一应用服务的基于远程调用rpc所调用的第三应用服务。
81.基于拓扑关系,确定第一应用服务的基于远程调用rpc所调用的第三应用服务。
82.其中,在第一应用服务基于rpc调用第三应用服务时,由主线程对线程变量进行查询得到压测标,并基于压测标将压测流量发送至消息队列的压测主题中,以及将生产流量发送至消息队列的生产主题中。
83.s304,向第三应用服务传输压测流量和生产流量。
84.通过第三应用服务对压测流量和生产流量进行隔离存储。
85.其中,通过第三应用服务对压测流量和生产流量进行隔离存储时,可通过第三应用服务向生产库中存储生产流量,以及向影子库中存储压测流量。
86.s305,通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量。
87.基于拓扑关系,确定第三应用服务调用的第四应用服务,确定第四应用服务的分组资源和分组资源的类型,基于分组资源的类型,确定用于传递生产流量的第二生产分组资源,以及用于传递压测流量的第二压测分组资源,并通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量。
88.本技术方案简单,不需要底层中间件或存储服务进行升级,只在应用系统进行简单的改造升级,就可以实现生产环境全链路压测,且压测结果更为准确。
89.图4是本技术示出的一种生产环境全链路的压力测试方法的示例性示意图,由服务集群执行,图4中浅灰色的箭头代表生产流量的流向,黑色的箭头代表压测流量的流向,如图4所示,该生产环境全链路的压力测试方法,包括以下步骤:基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分,确定服务集群中应用服务的拓扑关系,基于拓扑关系,确定第一应用服务的基于消息队列调用的第二应用服务,向消息队列中的压测主题中传递压测流量,并向消息队列中的生产主题中传递生产流量,通过第二应用服务中第一生产分组资源对生产主题中的生产流量进行消费,通过第二应用服务的第一压测分组资源对压测主题中的压测流量进行消费。并且,基于拓扑关系,确定第一应用服务的基于远程调用rpc所调用的第三应用服务,向第三应用服务传输压测流量和生产流量,通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量。
90.其中,服务集群中的每个应用服务中配置生产环境全链路压测管理服务器下发的
全链路压测软件开发工具包(software development kit,sdk),基于软件开发工具包sdk对压测流量和生产流量进行隔离流量处理。
91.图5是本技术示出的一种生产环境全链路的压力测试方法的示例性示意图,由服务集群执行,图5中浅灰色的箭头代表生产流量的流向,黑色的箭头代表压测流量的流向,如图5所示,该生产环境全链路的压力测试方法,包括以下步骤:基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分,获取压测流量的压测标,将压测流量的压测标作为第一应用服务的主线程的线程变量进行存储,通过主线程的线程变量向第一应用服务的线程池中子线程传递压测标,由子线程基于远程过程调用rpc调用第三应用服务,并由第三应用服务通过服务调用向第四应用服务的不同分组资源传递压测流量和生产流量。其中,在第一应用服务基于rpc调用第三应用服务时,由主线程对线程变量进行查询得到压测标,并基于压测标将压测流量发送至消息队列的压测主题中,以及将生产流量发送至消息队列的生产主题中,并通过第二应用服务中第一生产分组资源对生产主题中的生产流量进行消费,通过第二应用服务的第一压测分组资源对压测主题中的压测流量进行消费。
92.图6是本技术示出的一种全链路压测软件开发工具包sdk的示意图,如图6所示,该全链路压测软件开发工具包sdk包括:aop切面增强、压测标传递组件、压测标存储组件、rpc适配组件、mq适配组件、关系型数据库适配组件、配置缓存、配置同步组件组成。
93.其中:
94.aop切面增强,主要基于spring aop等技术,实现面向切面编程,实现原始应用系统方法增强,将压测相关逻辑代码植入进应用系统原始方法中。
95.压测标传递组件与压测标存储组件,主要负责压测标志识别、传递与存储。
96.rpc适配组件、mq适配组件、数据存储适配组件主要适配各种底层中间件或存储服务,如dubbo、springcloud、rocketmq、activemq、kafka、mysql、redis、elasticsearch、hbase等。
97.压测标传递组件与rpc适配组件、mq适配组件、关系型数据库适配组件协作,完成压测流量控制。
98.配置缓存、配置同步组件,主要是负责与服务集群内的通信,获取压测相关规则配置,并进行缓存存储。
99.sdk通过适配各种底层中间件或存储服务,帮助应用系统在最小化改造的基础上,快速具备生产环境全链路压测能力,包括但不限于生产环境全链路压测中压测标志识别、存储于传递,实现压测流量控制(包括服务调用、mq消息发送等),实现存储数据隔离(关系型数据库、nosql数据库等)等能力。
100.图7是本技术示出的一种生产环境全链路的压力测试装置的示意图,如图7所示,该生产环境全链路的压力测试装置700,包括接收模块701、确定模块702和处理模块703,其中:
101.接收模块701,用于基于服务集群入口处的第一应用服务在生产环境下接收压测流量和生产流量,并对压测流量和生产流量进行区分。
102.确定模块702,用于确定服务集群中应用服务的拓扑关系。
103.处理模块703,用于基于拓扑关系,对压测流量和生产流量进行隔离的流量处理。
104.本装置方案简单,不需要底层中间件或存储服务进行升级,只在应用系统进行简单的改造升级,就可以实现生产环境全链路压测,且压测结果更为准确。
105.根据本技术的一个实施例,处理模块703,还用于:基于拓扑关系,确定第一应用服务的基于消息队列调用的第二应用服务;基于消息队列对压测流量和生产流量进行流量隔离控制;通过消息队列向第二应用服务消费压测流量和生产流量。
106.根据本技术的一个实施例,处理模块703,还用于:向消息队列中的压测主题中传递压测流量,并向消息队列中的生产主题中传递生产流量。
107.根据本技术的一个实施例,处理模块703,还用于:通过第二应用服务中第一生产分组资源对生产主题中的生产流量进行消费;通过第二应用服务的第一压测分组资源对压测主题中的压测流量进行消费。
108.根据本技术的一个实施例,处理模块703,还用于:基于拓扑关系,确定第一应用服务的基于远程调用rpc所调用的第三应用服务;向第三应用服务传输压测流量和生产流量;通过第三应用服务向第四应用服务的第二生产分组资源中传递生产流量,以及向第四应用服务的第二压测分组资源中传递压测流量。
109.根据本技术的一个实施例,处理模块703,还用于:基于拓扑关系,确定第三应用服务调用的第四应用服务;确定第四应用服务的分组资源和分组资源的类型;基于分组资源的类型,确定用于传递生产流量的第二生产分组资源,以及用于传递压测流量的第二压测分组资源。
110.根据本技术的一个实施例,处理模块703,还用于:通过第三应用服务对压测流量和生产流量进行隔离存储。
111.根据本技术的一个实施例,处理模块703,还用于:通过第三应用服务向生产库中存储生产流量,以及向影子库中存储压测流量。
112.根据本技术的一个实施例,服务集群中的应用服务中配置生产环境全链路压测管理服务器下发的全链路压测软件开发工具包sdk,处理模块703,还用于:基于软件开发工具包sdk对压测流量和生产流量进行隔离流量处理。
113.根据本技术的一个实施例,接收模块701,还用于:获取压测流量的压测标;将压测流量的压测标作为第一应用服务的主线程的线程变量进行存储;在第一应用服务内通过线程变量对压测标进行传递。
114.根据本技术的一个实施例,接收模块701,还用于:通过主线程的线程变量向第一应用服务的线程池中子线程传递压测标;由子线程基于rpc调用第三应用服务,并由第三应用服务向第四应用服务的不同分组资源传递压测流量和生产流量。
115.根据本技术的一个实施例,接收模块701,还用于:在第一应用服务基于rpc调用第三应用服务时,由主线程对线程变量进行查询得到压测标,并基于压测标将压测流量发送至消息队列的压测主题中,以及将生产流量发送至消息队列的生产主题中。
116.为了实现上述实施例,本技术实施例还提出一种电子设备800,如图8所示,该电子设备800包括:处理器801和处理器通信连接的存储器802,存储器802存储有可被至少一个处理器执行的指令,指令被至少一个处理器801执行,以实现如上述实施例所示的生产环境全链路的压力测试方法。
117.为了实现上述实施例,本技术实施例还提出一种存储有计算机指令的非瞬时计算
机可读存储介质,其中,计算机指令用于使计算机实现如上述实施例所示的生产环境全链路的压力测试方法。
118.为了实现上述实施例,本技术实施例还提出一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如上述实施例所示的生产环境全链路的压力测试方法。
119.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
120.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
121.尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:
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中任一项所述的步骤。

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


技术研发人员:申延斌
受保护的技术使用者:京东科技信息技术有限公司
技术研发日:2023.05.12
技术公布日:2023/7/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐