CN114185792A - 一种压测场景的数据隔离方法、装置、设备及存储介质 - Google Patents
一种压测场景的数据隔离方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114185792A CN114185792A CN202111518883.1A CN202111518883A CN114185792A CN 114185792 A CN114185792 A CN 114185792A CN 202111518883 A CN202111518883 A CN 202111518883A CN 114185792 A CN114185792 A CN 114185792A
- Authority
- CN
- China
- Prior art keywords
- flow
- pressure measurement
- database
- data
- real
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种压测场景的数据隔离方法、装置、设备及存储介质,方法包括:对流入系统网关的全部流量进行切分和路由处理,得到处理后的流量;通过中间件对所述处理后的流量进行识别,其中,具有压测标识的流量为压测流量,没有压测标识的流量为真实流量;将识别出的真实流量输入到业务的主数据库中,将识别出的压测流量产生的数据输入到内存数据库中主数据库。本发明采用所述方法可以做到完全的数据隔离,不会形成脏数据,不会对线上正常用户造成影响,可以直接在线上真实环境中使用,得到真实的性能指标数据,为系统扩容和运营维护提供准确可靠的参考。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种压测场景的数据隔离方法、装置、设备及存储介质。
背景技术
为了能更真实的评估出整个系统的真实性能水平,需要基于线上真实环境和实际业务场景,通过模拟海量的用户请求,来对整个系统进行压力测试。由于是在线上真实环境中进行压测,那么防止压测数据和流量污染和干扰生产环境是极其重要的。具体来说,为了保证压测行为安全且可控,不会影响用户的正常使用,不会对线上环境造成任何的数据污染。要做到这一点,就需要确保压测流量产生的数据和状态,不能和正常用户的数据和状态混杂在一起,必须做到存储隔离,不能产生脏数据。
常见的性能压测方案中,如果遇到涉及到存储的地方,都需要在业务逻辑中对存储落地相关的代码逻辑进行处理,存储隔离的改造成本很高,特别是涉及到DB数据库隔离,业界通常采用搭建影子数据库的隔离方案,DB预算会是正常预算的2倍以上,且后续也需要持续投入人力进行影子库的维护,压测时跟进数据清理回收等。
目前业界常见性能压测方案中针对数据隔离这块,主要有下面几种方法:
1.在测试环境,利用AB、jemter等接口性能工具,模拟出高并发大流量的性能压力来做测试,不对压测的流量产生的数据单独去新建数据库和数据表,也就是说正常的用户流量数据和压测工具产生的流量数据,都是存储在相同的数据库和数据表中,数据是混在一起的,通常是通过在已有的数据库表中,修改数据表结构增加相关的标签字段,通过标签字段来区分出那些是压测工具产生的数据,那些是正常用户行为产生的数据,这种压测方法不能做到完全的数据隔离,所有的数据都是杂糅在一起的,压测工具产生的流量数据会对数据库造成数据污染,形成脏数据,对正常用户行为和统计报表可能会造成影响,对业务带来的隐患和风险很高,所以这种性能压测方法局限性很大,是不能在真实的线上环境和真实业务场景下使用的,只能是测试人员在测试环境中使用。
2.互联网企业推行实践的全链路压测方案,通过流量打标,在业务全链路上,可以针对压测流量做识别和定制化处理,通过搭建影子数据库,将压测流量产生的数据,单独存储到影子数据库,能避免产生脏数据,对线上业务透明,不影响正常的生产业务逻辑,趋近于真实场景。但是这种方法,成本很高需要投入大量人力改造业务和持续维护,需要业务从整体架构、中间件、存储、环境部署拓扑等全流程上面做定制改造,同时也存在对现有业务造成影响的隐患。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种压测场景的数据隔离方法、装置、设备及存储介质,旨在解决现有数据隔离方法无法做到完全的数据隔离、使用具有局限性以及改造环节多、成本高、对现有业务存在隐患的问题。
为了解决上述技术问题,本发明为解决上述技术问题所采用的技术方案如下:
第一方面,本发明提供一种压测场景的数据隔离方法,其中,包括:
对流入系统网关的全部流量进行切分和路由处理,得到处理后的流量;
通过中间件对所述处理后的流量进行识别,其中,具有压测标识的流量为压测流量,没有压测标识的流量为真实流量;
将识别出的真实流量输入到业务的主数据库中,将识别出的压测流量产生的数据输入到内存数据库中。
所述的方法,其中,所述对流入系统网关的全部流量进行切分和路由处理,包括:
将Nginx反向代理服务器作为系统网关,将所述Nginx反向代理服务器架设在业务系统端;
通过所述Nginx反向代理服务器对流入所述Nginx反向代理服务器的全部流量进行切分和路由处理;
其中,所述全部流量包括流量生成器产生的压测流量和线上真实用户产生的真实流量。
所述的方法,其中,所述通过中间件对所述处理后的流量进行识别,其中,具有压测标识的流量为压测流量,没有压测标识的流量为真实流量,包括:
将数据库组件作为中间件提供流量识别及处理能力,通过所述数据库组件检测处理后的流量中是否含有压测标识;
若所述处理后的流量中含有压测标识,则所述处理后的流量类型为压测流量;
若所述处理后的流量中不含有压测标识,则所述处理后的流量类型为真实流量;
其中,所述压测标识为在流量生成器产生压测流量时即对所产生的压测流量作出标识。
所述的方法,其中,在所述将识别出的真实流量输入到业务的主数据库中,将识别出的压测流量产生的数据输入到内存数据库中后,还包括:
根据所述主数据库的参数信息调整内存数据库的参数信息;
参照主数据库新建库表结构完成内存数据库的库表结构初始化;
将主数据库表数据同步到内存数据库中完成存量数据加载;
根据主数据库基础参数设置基础参数,所述基础参数包括:IP端口、存储容量以及字符编码;
根据主数据库性能参数设置性能参数,所述性能参数包括:连接队列、响应时延。
所述的方法,其中,在所述将识别出的真实流量输入到业务的主数据库中后,还包括:
将识别出的真实流量数据复制到从数据库中,保持所述从数据库中的数据与所述主数据库中的数据同步更新,所述从数据库与所述主数据库之间无缝切换。
所述的方法,其中,在所述根据主数据库的参数信息调整内存数据库的参数信息后,还包括:
当所述主数据库中的数据存储结构发生变化时,将所述数据存储结构的变化同步至内存数据库中。
所述的方法,其中,在所述根据所述主数据库的参数信息调整内存数据库的参数信息主数据库后,还包括:
在检测到压测完成信号且接收到压测数据删除指令时,删除所述内存数据库中的响应数据。
第二方面,本发明实施例还提供一种压测场景的数据隔离装置,其中,包括:
流量分配模块,用于对流入系统网关的全部流量进行切分和路由处理,得到处理后的流量;
流量识别模块,通过中间件对所述处理后的流量进行识别,其中,具有压测标识的流量为压测流量,没有压测标识的流量为真实流量;
流量隔离模块,用于将识别出的真实流量输入到业务的主数据库中,将识别出的压测流量产生的数据输入到内存数据库中;
第三方面,本发明实施例还提供一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时,实现如上述方案任一项所述的所述的压测场景的数据隔离方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如上述方案任一项所述的所述的压测场景的数据隔离方法的步骤。
有益效果:本发明公开了一种压测场景的数据隔离方法、装置、设备及存储介质,方法包括:对流入系统网关的全部流量进行切分和路由处理,得到处理后的流量;通过中间件对所述处理后的流量进行识别,其中,具有压测标识的流量为压测流量,没有压测标识的流量为真实流量;将识别出的真实流量输入到业务的主数据库中,将识别出的压测流量产生的数据输入到内存数据库中。通过采用本发明所述方法压测流量产生的数据都能够存储在内存数据库当中,易于清理,不会对生产DB库造成影响,可以实现完全的数据隔离,不会形成脏数据,不会对线上正常用户造成影响,由于不会产生脏数据,本发明的方法可以直接在线上真实环境中使用,相对测试环境中进行压测来说,由于是在线上真实场景中进行压测,和线上真实用户用的是相同的环境,不存在由于环境差异影响性能指标的问题,可以得到非常真实的性能指标数据,为系统扩容和运营维护提供准确可靠的参考,并且采用本发明的方法不需要对业务架构做深度的改造,自主性可控性较高,团队内可闭环完成,不需要走复杂漫长的DB申请搭建流程,测试复杂度和投入成本都很低,便于业务快速搭建环境进行性能测试。
附图说明
图1为本发明实施例提供的压测场景的数据隔离方法的具体实施方式的流程图。
图2为本发明实施例提供的压测场景的数据隔离方法具体实施方案流程图。
图3为本发明实施例提供的一种压测场景下的数据隔离装置的功能模块示意图;
图4为本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包括。例如包括了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包括在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
目前业界常见性能压测方案中针对数据隔离这块,主要有下面几种方法:
1.在测试环境,利用AB、jemter等接口性能工具,模拟出高并发大流量的性能压力来做测试,不对压测的流量产生的数据单独去新建数据库和数据表,也就是说正常的用户流量数据和压测工具产生的流量数据,都是存储在相同的数据库和数据表中,数据是混在一起的,通常是通过在已有的数据库表中,修改数据表结构增加相关的标签字段,通过标签字段来区分出那些是压测工具产生的数据,那些是正常用户行为产生的数据,这种压测方法不能做到完全的数据隔离,所有的数据都是杂糅在一起的,压测工具产生的流量数据会对数据库造成数据污染,形成脏数据,对正常用户行为和统计报表可能会造成影响,对业务带来的隐患和风险很高,所以这种性能压测方法局限性很大,是不能在真实的线上环境和真实业务场景下使用的,只能是测试人员在测试环境中使用。
2.互联网企业推行实践的全链路压测方案,通过流量打标,在业务全链路上,可以针对压测流量做识别和定制化处理,通过搭建影子数据库,将压测流量产生的数据,单独存储到影子数据库,能避免产生脏数据,对线上业务透明,不影响正常的生产业务逻辑,趋近于真实场景。但是这种方法,成本很高需要投入大量人力改造业务和持续维护,需要业务从整体架构、中间件、存储、环境部署拓扑等全流程上面做定制改造,同时也存在对现有业务造成影响的隐患。
为了解决现有数据隔离方法无法做到完全的数据隔离、使用具有局限性以及改造环节多、成本高、对现有业务存在隐患的问题,本实施例提供一种压测场景的数据隔离方法,具体地,如图1和图2所示,为本发明较佳实施例的压测场景的数据隔离方法,其包括以下步骤:
S10、对流入系统网关的全部流量进行切分和路由处理,得到处理后的流量;
S20、通过中间件对所述处理后的流量进行识别,其中,具有压测标识的流量为压测流量,没有压测标识的流量为真实流量;
S30、将识别出的真实流量输入到业务的主数据库(DB主库)中,将识别出的压测流量产生的数据输入到内存数据库中。
具体地,通过采用本发明所述方法压测流量产生的数据都能够存储在内存数据库当中,易于清理,不会对生产DB库造成影响,可以实现完全的数据隔离,不会形成脏数据,不会对线上正常用户造成影响,由于不会产生脏数据,本发明的方法可以直接在线上真实环境中使用,相对测试环境中进行压测来说,由于是在线上真实场景中进行压测,和线上真实用户用的是相同的环境,不存在由于环境差异影响性能指标的问题,可以得到非常真实的性能指标数据,为系统扩容和运营维护提供准确可靠的参考,并且采用本发明的方法不需要对业务架构做深度的改造,自主性可控性较高,团队内可闭环完成,不需要走复杂漫长的DB申请搭建流程,测试复杂度和投入成本都很低,便于业务快速搭建环境进行性能测试。
在一些实施方式中,所述真实流量可以包括但不限于用户产生的流量,当真实流量可以进一步细化分为两种及以上时,可为每种细化后的真实流量划分对应存储区域,并对该类型的服务请求的响应数据路由至对应的存储区域,以提升真实流量数据的管理效率。
在一些实施方式中,所述对流入系统网关的全部流量进行切分和路由处理,包括:
将Nginx反向代理服务器作为系统网关,将所述Nginx反向代理服务器架设在业务系统端;
通过所述Nginx反向代理服务器对流入所述Nginx反向代理服务器的全部流量进行切分和路由处理;
其中,所述全部流量包括流量生成器产生的压测流量和线上真实用户产生的真实流量。
通常,代理服务器分为正向代理服务器和反向代理服务器,其中正向代理简单的说,我是一个用户,我无法直接访问一个网站,但是我能访问一个代理服务器,这个代理服务器能访问那个我不能访问的网站,于是我先连上代理服务器,告诉它我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录。结论就是,正向代理,是一个位于客户端和原始服务器(originserver)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。而反向代理则是例如我要访问localhost:8080/views/test1这个页面,但view对应的服务器上并没有test1这个资源,它是从另一台服务器上调用的资源。这样view对应的那个服务器就使用了反向代理。即用户只需要把请求发给特定的反向代理服务器,具体请求是谁处理的用户不需要知道(其实也不知道),由代理服务器统一处理。结论就是反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率。反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。
具体地,通过设置代理服务器可以提高访问速度、过滤不安全信息并且访问一些不能访问的目标站点,本发明选用Nginx反向代理服务器并将其架设在业务系统端,可以将经过所述Nginx反向代理服务器的所有流量进行均衡地切分和路由处理,以降低业务系统的负载,随后将处理后的流量分配到业务系统的各个业务服务中,仅需简单的配置即可将全部流量切分开进行处理,极大减轻了业务系统的压力,并且通过对全部流量进行路由和切分处理,也可以使得压测流量和真实流量会被分散到各个具体的业务服务当中,而不至于一个业务服务同时被分配到压测流量和真实流量,避免了出现数据混乱的情况,除Nginx反向代理服务器以外,其它类似的反向代理软件也可以实现上述效果。
在本实施例中,选用Nginx反向代理服务器是因为其具有负载均衡的功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。简单而言就是当有2台或以上服务器时,根据规则随机地将请求分发到指定的服务器上处理,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。而Nginx目前支持自带3种负载均衡策略,还有2种常用的第三方策略。
在一些实施方式中,所述步骤S20、通过中间件对所述处理后的流量进行识别,其中,具有压测标识的流量为压测流量,没有压测标识的流量为真实流量具体包括:
将数据库组件作为中间件提供流量识别及处理能力,通过所述数据库组件检测处理后的流量中是否含有压测标识;若所述处理后的流量中含有压测标识,则所述处理后的流量类型为压测流量;若所述处理后的流量中不含有压测标识,则所述处理后的流量类型为真实流量;其中,所述压测标识为在流量生成器产生压测流量时即对所产生的压测流量作出标识。
具体地,将流量分配到各个具体的业务服务中以后,由于业务服务都是基于中间件的,因此为了减少对业务服务的影响和改造成本,对流量的识别和处理逻辑放在中间件当中,将数据库组件作为中间件,利用数据库组件提供流量识别及处理能力,对处理后的流量进行识别,识别流量中是否含有压测标识,有压测标识的流量为压测流量,没有压测标识的流量为真实流量。
在本实施例中,在所述步骤S300、将识别出的真实流量输入到业务的主数据库中,将识别出的压测流量产生的数据输入到内存数据库中后,包括:
根据所述主数据库的参数信息调整内存数据库的参数信息;
参照主数据库新建库表结构完成内存数据库的库表结构初始化;
将主数据库表数据同步到内存数据库中完成存量数据加载;
根据主数据库基础参数设置基础参数,所述基础参数包括:IP端口、存储容量以及字符编码;
根据主数据库性能参数设置性能参数,所述性能参数包括:连接队列、响应时延。
具体地,本发明将内存数据库与主数据库的数据保持同步,保证内存数据库中的数据是全部流量数据的总和,由于包含了用户正常产生的流量,内存数据库表中数据量是最完整的,也保证了压测出来的指标,不会因为内存表中数据太少导致性能结果不准确的问题,而为了保持内存数据库是与主数据库的数据是同步的,就需要根据主数据库的一些参数信息,调整内存数据库的库表结构、存量数据、基础参数、性能参数等信息,以满足内存数据库的数据与主数据库的数据保持同步。
进一步地,在一种优选的实施方式中,所述内存数据库还实时计算展示性能状态信息,所述性能状态信息包括:并发、吞吐、时延、CPU、内存等信息,但不限于此。
在一些实施方式中,在所述步骤将识别出的真实流量落地到业务的主数据库中后,还包括:
将识别出的真实流量数据复制到从数据库中,保持所述从数据库中的数据与所述主数据库中的数据同步更新,所述从数据库与所述主数据库之间无缝切换。
具体地,为了防止主数据库宕机是导致数据丢失,本发明还建立了从数据库,将主数据库中的全部流量数据都复制到从数据库中,保持从数据库中的数据与主数据库中的数据同步更新,并且使从数据库与主数据库之间能够无缝切换,以保证数据的有效性。
保持从数据库中的数据与主数据库中的数据同步更新的方式为:主数据库将更新的数据信息写入到二进制日志文件中,从数据库获取二进制文件修改内容,然后写入到中继日志中,再读取中继日志中的信息,实现数据的同步。
在一些实施方式中,在所述步骤S40、根据主数据库的参数信息调整内存数据库的参数信息后,还包括:
当所述主数据库中的数据存储结构发生变化时,将所述数据存储结构的变化同步至内存数据库中。
具体地,内存数据库除了不参与主数据库与从数据库的切换,其余时候都要与主数据库保持同步更新,因此,当主数据库的数据存储结构发生变化时,内存数据库也应该相应地变化其数据存储结构以实现与主数据库的数据同步。
在一些实施方式中,在所述步骤根据主数据库的参数信息调整内存数据库的参数信息后,还包括:
在检测到压测完成后,对其它应用系统(定义本申请中的应用系统为第一应用系统,其它应用系统可为第二应用系统、第三应用系统……)对应进行压测,得到存储于内存数据库中的响应数据,并将其与第一应用系统得到的存储于内存数据库中的响应数据进行分析,确定所述第一应用系统和/或其他应用系统是否需要扩容;
若是,则对需要扩容的应用系统进行扩容,并在扩容完成后再次进行压测和分析,直至确定所述第一应用系统和其它应用系统都不需要扩容。
现有技术中为了隔离压测数据与真实业务数据,常常会建立一套与生产环境相对应的测试环境,在测试环境下,模拟生产流量请求生成压测流量请求,并将这些压测流量请求不断施加给测试环境中的业务系统,根据测试环境中的压测数据确定业务系统的流量承载能力,此时,测试环境与生产环境是隔离的,对应压测数据与真实业务数据也是存储在对应环境的系统中的,因此,压测数据与真实业务数据不存在互相干扰的情况。但是,考虑到成本的问题,测试环境的配置往往要比生产环境低,若生产环境中某一业务链全流程涉及两个或以上应用系统时,一个测试环境往往仅对应部署了一个应用系统,导致得到的压测结果无法准确反映真实生产环境多应用系统互相调用时的流量承载能力,若基于该压测结果对生成环境中的应用系统进行扩容调整,会导致应用系统的流量承载能力与生产流量不匹配,应用系统的流量承载能力过大,会浪费服务器的资源,系统的流量承载能力过小则容易因为大流量导致系统宕机。
针对上述缺陷,本实施例在前述实施例提出的在利用真实系统环境进行压测的前提下,若涉及两个应用系统及以上的联动,则压测管理设备会在检测到压测完成之后,对联动的应用系统对应的压测服务数据存储区中的响应数据进行分析,确定每个联动的应用系统是否需要扩容,若某个或某几个应用系统需要进行扩容,则对这些应用系统按照需求(例如按照业务链的需求并发量)进行扩容,并在扩容完成后再次对应用系统进行压测、分析,确定是否还存在需要扩容的应用系统,若存在,则继续对需要进行扩容的系统进行扩容,直至满足需求。
如此,能够实现利用真实系统环境对业务链中联动的应用系统进行压测,并根据压测结果进行定向扩容,从而能够提升扩容后的应用系统的流量承载能力与生产流量的匹配度,提升了扩容的准确度。
当然,对于业务链仅涉及1个应用系统,没有与之联动调用的应用系统的情况,也可参照本实施例进行压测分析和扩容。
在一些实施方式中,在所述根据主数据库的参数信息调整内存数据库的参数信息后,还包括:
在检测到压测完成信号且接收到压测数据删除指令时,删除所述内存数据库中的响应数据。
为避免海量的压测流量所产生的相应数据长时间占用大量的存储资源,影响应用系统的真实业务运行,本发明在检测到压测完成信号,且在接收到压测数据删除指令时,会将存储于内存数据库中的响应数据删除,以避免其在压测完成后继续占用存储资源。
本发明还提供一种压测场景的数据隔离装置,如图3所示,该装置包括:流量分配模块10、流量识别模块20、流量落地模块30,其中:
流量分配模块10,用于对流入系统网关的全部流量进行切分和路由处理,得到处理后的流量;
流量识别模块20,用于通过中间件对所述处理后的流量进行识别,其中,具有压测标识的流量为压测流量,没有压测标识的流量为真实流量;
流量隔离模块30,用于将识别出的真实流量输入到业务的主数据库中,将识别出的压测流量产生的数据输入到内存数据库中。
所述压测场景下的数据隔离装置还包括:
参数调整模块40,用于根据主数据库的参数信息调整内存数据库的参数信息。
进一步地,所述流量分配模块10还用于
将Nginx反向代理服务器作为系统网关,将所述Nginx反向代理服务器架设在业务系统端;通过所述Nginx反向代理服务器对流入所述Nginx反向代理服务器的全部流量进行切分和路由处理。
所述流量识别模块20还用于将数据库组件作为中间件提供流量识别及处理能力,通过所述数据库组件检测处理后的流量中是否含有压测标识,若所述处理后的流量中含有压测标识,则所述处理后的流量类型为压测流量;若所述处理后的流量中不含有压测标识,则所述处理后的流量类型为真实流量。
所述参数调整模块包括;
库表结构初始化单元,用于参照主数据库新建库表结构完成内存数据库的库表结构初始化;
存量数据加载单元,用于将主数据库表数据同步到内存数据库中完成存量数据加载;
基础参数设置单元,用于根据主数据库基础参数设置基础参数,所述基础参数包括:IP端口、存储容量以及字符编码;
性能参数设置单元,用于根据主数据库性能参数设置性能参数,所述性能参数包括:连接队列、响应时延。
所述压测场景下的数据隔离装置还包括:
数据备份模块,用于将识别出的真实流量数据复制到从数据库中,保持所述从数据库中的数据与所述主数据库中的数据同步更新,所述从数据库与所述主数据库之间无缝切换;
数据更新模块,用于当所述主数据库中的数据存储结构发生变化时,将所述数据存储结构的变化同步至内存数据库中;
数据删除模块,用于在检测到压测完成信号且接收到压测数据删除指令时,删除所述内存数据库中的响应数据。
本发明还提供了一种计算机设备,如图4所示,该计算设备包括通过系统总线连接的处理器、存储器、网络接口。其中,该终端设备的处理器用于提供计算和控制能力。该终端设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种压测场景的数据隔离方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其他介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上,本发明公开了一种压测场景的数据隔离方法、装置、设备及存储介质,方法包括:对流入系统网关的全部流量进行切分和路由处理,得到处理后的流量;通过中间件对所述处理后的流量进行识别,其中,具有压测标识的流量为压测流量,没有压测标识的流量为真实流量;将识别出的真实流量输入到业务的主数据库中,将识别出的压测流量产生的数据输入到内存数据库中。本发明通过采用上述方法实现的效果为:1、压测流量产生的数据都能够存储在内存数据库当中,易于清理,不会对生产DB库造成影响,可以实现完全的数据隔离,不会形成脏数据,不会对线上正常用户造成影响;2、由于不会产生脏数据,本发明的方法可以直接在线上真实环境中使用,相对测试环境中进行压测来说,由于是在线上真实场景中进行压测,和线上真实用户用的是相同的环境,不存在由于环境差异影响性能指标的问题,可以得到非常真实的性能指标数据,为系统扩容和运营维护提供准确可靠的参考;3、采用本发明的方法不需要对业务架构做深度的改造,自主性可控性较高,团队内可闭环完成,不需要走复杂漫长的DB申请搭建流程,测试复杂度和投入成本都很低,便于业务快速搭建环境进行性能测试。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性地包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种压测场景的数据隔离方法,其特征在于,包括:
对流入系统网关的全部流量进行切分和路由处理,得到处理后的流量;
通过中间件对所述处理后的流量进行识别,其中,具有压测标识的流量为压测流量,没有压测标识的流量为真实流量;
将识别出的真实流量输入到业务的主数据库中,将识别出的压测流量产生的数据输入到内存数据库中。
2.根据权利要求1所述的方法,其特征在于,所述对流入系统网关的全部流量进行切分和路由处理,包括:
将Nginx反向代理服务器作为系统网关,将所述Nginx反向代理服务器架设在业务系统端;
通过所述Nginx反向代理服务器对流入所述Nginx反向代理服务器的全部流量进行切分和路由处理;
其中,所述全部流量包括流量生成器产生的压测流量和线上真实用户产生的真实流量。
3.根据权利要求1所述的方法,其特征在于,所述通过中间件对所述处理后的流量进行识别,其中,具有压测标识的流量为压测流量,没有压测标识的流量为真实流量,包括:
将数据库组件作为中间件提供流量识别及处理能力,通过所述数据库组件检测处理后的流量中是否含有压测标识;
若所述处理后的流量中含有压测标识,则所述处理后的流量类型为压测流量;
若所述处理后的流量中不含有压测标识,则所述处理后的流量类型为真实流量;
其中,所述压测标识为在流量生成器产生压测流量时即对所产生的压测流量作出标识。
4.根据权利要求1所述的方法,其特征在于,在所述将识别出的真实流量输入到业务的主数据库中,将识别出的压测流量产生的数据输入到内存数据库中后主数据库,还包括:
根据所述主数据库的参数信息调整内存数据库的参数信息;
参照主数据库新建库表结构完成内存数据库的库表结构初始化;
将主数据库表数据同步到内存数据库中完成存量数据加载;
根据主数据库基础参数设置内存数据库的基础参数,所述基础参数包括:IP端口、存储容量以及字符编码;
根据主数据库性能参数设置内存数据库的性能参数,所述性能参数包括:连接队列、响应时延。
5.根据权利要求1所述的方法,其特征在于,在所述将识别出的真实流量输入到业务的主数据库中后,还包括:
将识别出的真实流量数据复制到从数据库中,保持所述从数据库中的数据与所述主数据库中的数据同步更新,所述从数据库与所述主数据库之间无缝切换。
6.根据权利要求1所述的方法,其特征在于,在所述根据主数据库的参数信息调整内存数据库的参数信息后,还包括:
当所述主数据库中的数据存储结构发生变化时,将所述数据存储结构的变化同步至内存数据库中。
7.根据权利要求1所述的方法,其特征在于,在所述根据所述主数据库的参数信息调整内存数据库的参数信息后,还包括:
在检测到压测完成信号且接收到压测数据删除指令时,删除所述内存数据库中的响应数据。
8.一种压测场景的数据隔离装置,其特征在于,包括:
流量分配模块,用于对流入系统网关的全部流量进行切分和路由处理,得到处理后的流量;
流量识别模块,用于通过中间件对所述处理后的流量进行识别,其中,具有压测标识的流量为压测流量,没有压测标识的流量为真实流量;
流量隔离模块,用于将识别出的真实流量输入到业务的主数据库中,将识别出的压测流量产生的数据输入到内存数据库中。
9.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1至7中任一项所述的压测场景的数据隔离方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至7中任一项所述的压测场景的数据隔离方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111518883.1A CN114185792A (zh) | 2021-12-13 | 2021-12-13 | 一种压测场景的数据隔离方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111518883.1A CN114185792A (zh) | 2021-12-13 | 2021-12-13 | 一种压测场景的数据隔离方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114185792A true CN114185792A (zh) | 2022-03-15 |
Family
ID=80604706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111518883.1A Pending CN114185792A (zh) | 2021-12-13 | 2021-12-13 | 一种压测场景的数据隔离方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114185792A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242684A (zh) * | 2022-07-21 | 2022-10-25 | 中国平安财产保险股份有限公司 | 全链路压测方法、装置、计算机设备及存储介质 |
CN115373654A (zh) * | 2022-10-08 | 2022-11-22 | 天津华来科技股份有限公司 | Locust中间件代码架构方法、电子设备、存储介质 |
CN115484313A (zh) * | 2022-09-13 | 2022-12-16 | 浙江网商银行股份有限公司 | 数据处理方法以及装置 |
CN116781591A (zh) * | 2023-08-23 | 2023-09-19 | 国网信息通信产业集团有限公司 | 一种基于流量染色和透传技术的压力测试系统、压测终端及存储介质 |
-
2021
- 2021-12-13 CN CN202111518883.1A patent/CN114185792A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242684A (zh) * | 2022-07-21 | 2022-10-25 | 中国平安财产保险股份有限公司 | 全链路压测方法、装置、计算机设备及存储介质 |
CN115242684B (zh) * | 2022-07-21 | 2023-06-20 | 中国平安财产保险股份有限公司 | 全链路压测方法、装置、计算机设备及存储介质 |
CN115484313A (zh) * | 2022-09-13 | 2022-12-16 | 浙江网商银行股份有限公司 | 数据处理方法以及装置 |
CN115373654A (zh) * | 2022-10-08 | 2022-11-22 | 天津华来科技股份有限公司 | Locust中间件代码架构方法、电子设备、存储介质 |
CN115373654B (zh) * | 2022-10-08 | 2023-01-10 | 天津华来科技股份有限公司 | Locust中间件代码架构方法、电子设备、存储介质 |
CN116781591A (zh) * | 2023-08-23 | 2023-09-19 | 国网信息通信产业集团有限公司 | 一种基于流量染色和透传技术的压力测试系统、压测终端及存储介质 |
CN116781591B (zh) * | 2023-08-23 | 2024-01-02 | 国网信息通信产业集团有限公司 | 一种基于流量染色和透传技术的压力测试系统、压测终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114185792A (zh) | 一种压测场景的数据隔离方法、装置、设备及存储介质 | |
US20200186422A1 (en) | Using a container orchestration service for dynamic routing | |
US10284623B2 (en) | Optimized browser rendering service | |
CN106648556B (zh) | 前后端集成开发测试的方法及装置 | |
US10592312B2 (en) | Message oriented middleware with integrated rules engine | |
US20060156288A1 (en) | Extensible execution language | |
CN107276842B (zh) | 接口测试方法、装置及电子设备 | |
US11151025B1 (en) | Generating software test plans based at least in part on monitored traffic of a production application | |
CN110659202A (zh) | 客户端自动化测试方法及装置 | |
US11303532B2 (en) | Method and system for detecting service quality of CDN system | |
US10803166B1 (en) | Automated determination of application privileges | |
CN113704110B (zh) | 用户界面的自动化测试方法及装置 | |
CN108280237A (zh) | 一种灰度发布方法及装置、系统、计算机存储介质 | |
US20220012167A1 (en) | Machine Learning Based Test Coverage In A Production Environment | |
CN112650689A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN110865806A (zh) | 代码处理方法、装置、服务器及存储介质 | |
CN113127357B (zh) | 单元测试方法、装置、设备、存储介质及程序产品 | |
CN112433953A (zh) | 基于网络游戏客户端的嵌入式自动化测试方法、装置、设备及介质 | |
CN111464383A (zh) | 基于生产环境的系统容量测试方法及装置 | |
CN110266610B (zh) | 流量识别方法、装置、电子设备 | |
CN116719735A (zh) | 一种测试用例生成方法及装置 | |
WO2021121130A1 (zh) | 信息采集方法、装置、计算机设备及存储介质 | |
CN114385498A (zh) | 性能测试方法、系统、计算机设备及可读存储介质 | |
CN113301152A (zh) | 压测管理方法、系统、设备、介质及计算机程序产品 | |
GB2382263A (en) | Network/system modelling using node discovery and node associated data |
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 |