CN114942873A - 基于全链路在线压测的容量检测方法及相关设备 - Google Patents
基于全链路在线压测的容量检测方法及相关设备 Download PDFInfo
- Publication number
- CN114942873A CN114942873A CN202210316706.3A CN202210316706A CN114942873A CN 114942873 A CN114942873 A CN 114942873A CN 202210316706 A CN202210316706 A CN 202210316706A CN 114942873 A CN114942873 A CN 114942873A
- Authority
- CN
- China
- Prior art keywords
- flow
- pressure measurement
- formal
- service
- service application
- 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/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- 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/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/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
Abstract
本申请提供一种基于全链路在线压测的容量检测方法及相关设备。该方法包括:根据全链路压测平台对第一业务应用系统进行压力测试,得到设置压测标的压测流量,并通过探针进行识别处理,将压测流量以及和正式流量分离,通过第二业务应用系统调用压测请求,传递压测标,通过探针进行识别处理,将压测流量的业务键信息和正式流量的业务键信息分离,同时将压测流量的日志和正式流量的日志分离;基于探针通过全链路压测平台对压测流量的日志和正式流量的的日志进行调取解析处理,得到容量数据。使得压测流量和正式流量在逻辑上进行隔离,使之互不影响,避免污染正式的数据,解决容量数据不准确的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于全链路在线压测的容量检测方法及相关设备。
背景技术
容量,即系统处于最大负载状态或某项指标达到所能接受的最大阈值下对请求的最大处理能力,可通过容量数据找出短板,比如找到需要扩容的系统,或者增加一些硬件配置,以防生产的时候流量过大超过系统整体支持的流量,通过容量预估、容量压测,得出相关数据来助力运维以合理的互联网技术成本支撑业务发展。
基于上述情况,现有技术中通过单机压测方法、理论估算法或在线压测法进行容量检测,但单机压测方法缺乏和生产环境相同的流量背景,从而导致测试结果不准确,而理论估算法由于通过估算获取结果,导致结果依然不准确,此外,在线压测法需要对系统的代码进行改造,如对测试流量增加对应的逻辑,添加挡板程序等,会对原系统会带来风险。
发明内容
有鉴于此,本申请的目的在于提出一种基于全链路在线压测的容量检测方法及相关设备,用以解决上述技术问题。
基于上述目的,本申请的第一方面提供了一种基于全链路在线压测的容量检测方法,应用于全链路压测系统,所述全链路压测系统包括业务场景系统和全链路压测平台,其中,业务场景系统包括部署探针的业务应用系统,所述业务应用系统至少包括第一业务应用系统和第二业务应用系统;
所述方法包括:
根据所述全链路压测平台接收的压测请求对所述第一业务应用系统进行压力测试,得到设置压测标的压测流量,并通过所述第一业务应用部署的探针进行识别处理,将所述压测流量和所述业务场景系统运行得到的正式流量分离存储;
通过所述第二业务应用系统调用所述压测请求,得到所述压测流量的传输消息和所述正式流量的传输消息,并对所述压测流量的传输消息和所述正式流量的传输消息进行分离存储;
响应于确定所述压测标传递到所述第二业务应用系统,得到所述压测流量的业务键信息和日志、所述正式流量的业务键信息和日志,并通过所述第二业务应用系统部署的探针进行识别处理,将所述压测流量的业务键信息和所述正式流量的业务键信息分离进行存储,同时将所述压测流量的日志和所述正式流量的日志分离进行存储;
基于所述第二业务应用系统部署的探针通过所述全链路压测平台对所述压测流量的日志和所述正式流量的的日志进行调取解析处理,得到容量数据。
本申请的第二方面提供了一种全链路压测系统,全链路压测系统包括业务场景系统和全链路压测平台,其中,业务场景系统包括部署探针的业务应用系统,所述业务应用系统至少包括第一业务应用系统和第二业务应用系统;
压力测试模块,被配置为根据所述全链路压测平台接收的压测请求对所述第一业务应用系统进行压力测试,得到设置压测标的压测流量,并通过所述第一业务应用部署的探针进行识别处理,将所述压测流量和所述业务场景系统运行得到的正式流量分离存储;
传输模块,被配置为通过所述第二业务应用系统调用所述压测请求,得到所述压测流量的传输消息和所述正式流量的传输消息,并对所述压测流量的传输消息和所述正式流量的传输消息进行分离存储;
调用压力测试模块,被配置为响应于确定所述压测标传递到所述第二业务应用系统,得到所述压测流量的业务键信息和日志、所述正式流量的业务键信息和日志,并通过所述第二业务应用系统部署的探针进行识别处理,将所述压测流量的业务键信息和所述正式流量的业务键信息分离进行存储,同时将所述压测流量的日志和所述正式流量的的日志分离进行存储;
解析处理模块,被配置为基于所述第二业务应用系统部署的探针通过所述全链路压测平台对所述压测流量的日志和所述正式流量的的日志进行调取解析处理,得到容量数据。
本申请的第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
本申请的第四方面提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行第一方面所述方法。
从上面所述可以看出,本申请提供的基于全链路在线压测的容量检测方法及相关设备,根据全链路压测平台接收的压测请求对第一业务应用系统进行压力测试,得到设置压测标的压测流量,并通过第一业务应用部署的探针进行识别处理,通过部署的探针实现了无侵入的方式,不需要对源系统的代码、架构等进行大幅度的调整,对其影响极小,避免了对源系统改造较多造成系统风险等问题,将压测流量和业务场景系统运行得到的正式流量分离存储。再通过第二业务应用系统调用压测请求,得到压测流量的传输消息和正式流量的传输消息,并对压测流量的传输消息和正式流量的传输消息进行分离存储,当压测标传递到第二业务应用系统,得到压测流量的业务键信息和日志、正式流量的业务键信息和日志,并通过第二业务应用系统部署的探针进行识别处理,将压测流量的业务键信息和正式流量的业务键信息分离进行存储,同时将压测流量的日志和正式流量的日志分离进行存储,通过探针、压测标以及传递压测标,使得压测流量和正式流量、压测流量的传输消息和正式流量的传输消息、压测流量的业务键信息和正式流量的业务键信息、压测流量的日志和正式流量的日志分别在逻辑上进行隔离,使之互不影响,避免污染正式的数据,最后基于第二业务应用系统部署的探针通过全链路压测平台对压测流量的日志和正式流量的的日志进行调取解析处理,得到容量数据,解决容量数据不准确的问题。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的基于全链路在线压测的容量检测方法的流程图;
图2为本申请实施例的压力测试的结构框示意图;
图3为本申请实施例的生成容量数据的结构框示意图;
图4为本申请实施例的全链路压测系统的结构示意图;
图5为本申请实施例的电子设备的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
相关技术中采用单机压测方法搭建与生产环境一致的验证环境,验证每个系统的单机容量,直至达到水位线时的TPS(Transactions Per Second,服务器每秒处理的事务数)和相应时间以及CPU(Central Processing Unit,中央处理器)、内存、I/O(Input/Output),输入/输出)、带宽等信息,但单机压测方法由于缺乏和生产环境相同的流量背景,导致测试结果不准确。
采用理论估算法根据生产环境经验数据,计算峰值TPS,估算平均响应时间。如已知100并发用户下的数据,来推算1000并发用户下的TPS和相应时间。由于采用理论估算法是估算出来,导致估算的结果依然不准确。
另外,相关技术中还有在线压测法,对于满足能在生产环境压测的系统直接在生产上进行压测。验证每个系统的单机生产容量,直至达到水位线时的TPS和相应时间以及CPU、内存、I/O、带宽等信息,需对系统的代码进行改造,如对测试流量增加对应的逻辑,添加挡板程序等,会对原系统会带来风险。
本申请的实施例提供一种基于全链路在线压测的容量检测方法,通过部署的探针实现了无侵入的方式,不需要对源系统的代码、架构等进行大幅度的调整,对其影响极小,避免了对源系统改造较多造成系统风险等问题,并通过探针、压测标以及传递压测标,使得压测流量和正式流量、压测流量的传输消息和正式流量的传输消息、压测流量的业务键信息和正式流量的业务键信息、压测流量的日志和正式流量的日志分别在逻辑上进行隔离,使之互不影响,避免污染正式的数据,解决容量数据不准确的问题。
如图1所示,本实施例的方法,应用于全链路压测系统,所述全链路压测系统包括业务场景系统和全链路压测平台,其中,业务场景系统包括部署探针的业务应用系统,所述业务应用系统至少包括第一业务应用系统和第二业务应用系统;
所述方法包括:
步骤101,根据所述全链路压测平台接收的压测请求对所述第一业务应用系统进行压力测试,得到设置压测标的压测流量,并通过所述第一业务应用部署的探针进行识别处理,将所述压测流量和所述业务场景系统运行得到的正式流量分离存储。
在该步骤中,全链路压测平台设置第一业务应用系统的地址信息,通过第一业务应用系统发送压测请求,基于压测请求并根据第一业务应用系统的地址信息通过全链路压测平台对第一业务应用系统进行压力测试,得到设置压测标的压测流量,并通过第一业务应用部署的探针进行识别处理,将压测流量和业务场景系统运行得到的正式流量分离存储,采用部署探针对将设置压测标的压测流量进行识别处理(例如在请求中添加Header(标头)正常流量标记),这样在查找调用链路时可以精准定位,通过这样的方式实现了不对源程序进行修改,从而避免了造成系统风险等问题。其中,探针指安装在操作系统上的独立进程,用来采集架构信息。
其中,压测流量在任何环节能够被正确的识别出来,在流量入口层设置压测标,中间件识别并继续往下传递压测标,保证整条链路上压测标不丢失,通过这种方式使得下游的应用和存储也能接收到压测标。
另外,第一业务应用系统和第二业务应用系统表示同一业务场景下的不同系统,例如,双十一对于购物平台,会涉及到产品系统和支付系统,这里不对第一业务应用系统和第二业务应用系统作具体限定。
步骤102,通过所述第二业务应用系统调用所述压测请求,得到所述压测流量的传输消息和所述正式流量的传输消息,并对所述压测流量的传输消息和所述正式流量的传输消息进行分离存储。
在该步骤中,通过第二业务应用系统调用压测请求,得到压测流量的传输消息和正式流量的传输消息,并对压测流量的传输消息和正式流量的传输消息进行分离存储,使其在逻辑上进行隔离,隔离相对比较彻底、安全,使之互不影响,避免污染正式的数据。
步骤103,响应于确定所述压测标传递到所述第二业务应用系统,得到所述压测流量的业务键信息和日志、所述正式流量的业务键信息和日志,并通过所述第二业务应用系统部署的探针进行识别处理,将所述压测流量的业务键信息和所述正式流量的业务键信息分离进行存储,同时将所述压测流量的日志和所述正式流量的日志分离进行存储。
在该步骤中,第二业务应用系统调用压测请求,将压测标传递到第二业务应用系统,得到压测流量的业务键信息和日志、正式流量的业务键信息和日志,其中,压测流量的业务键信息和日志分别设置传递到第二业务应用系统的压测标,通过第二业务应用系统部署的探针进行识别处理,将压测流量的业务键信息和正式流量的业务键信息、压测流量的日志和正式流量的日志,采用部署探针对将设置压测标进行识别处理(例如在请求中添加Header(标头)正常流量标记),这样在查找调用链路时可以精准定位,并使其在逻辑上进行隔离,隔离相对比较彻底、安全,使之互不影响,避免污染正式的数据。
步骤104,基于所述第二业务应用系统部署的探针通过所述全链路压测平台对所述压测流量的日志和所述正式流量的的日志进行调取解析处理,得到容量数据。
在该步骤中,全链路压测平台设置第二业务应用系统的地址信息,通过第二业务应用系统的地址信息全链路压测平台进行访问,基于第二业务应用系统部署的探针对从压测流量的日志和正式流量的的日志提取的数据进行解析处理,得到容量数据,解决容量数据不准确的问题。
此外,可根据容量数据找出业务场景系统的短板,从而进行优化,以防生产的时候流量过大超过系统整体支持的流量。
通过上述方案,根据全链路压测平台接收的压测请求对第一业务应用系统进行压力测试,得到设置压测标的压测流量,并通过第一业务应用部署的探针进行识别处理,将压测流量和业务场景系统运行得到的正式流量分离存储,采用部署探针对将设置压测标的压测流量进行识别处理(例如在请求中添加Header(标头)正常流量标记),这样在查找调用链路时可以精准定位,通过这样的方式实现了不对源程序进行修改,从而避免了造成系统风险等问题。再通过第二业务应用系统调用压测请求,得到压测流量的传输消息和正式流量的传输消息,并对压测流量的传输消息和正式流量的传输消息进行分离存储,使其在逻辑上进行隔离,隔离相对比较彻底、安全,使之互不影响,避免污染正式的数据。当压测标传递到第二业务应用系统,得到压测流量的业务键信息和日志、正式流量的业务键信息和日志,并通过第二业务应用系统部署的探针进行识别处理,将压测流量的业务键信息和正式流量的业务键信息分离进行存储,同时将压测流量的日志和正式流量的日志分离进行存储,通过探针、压测标以及传递压测标,使得压测流量和正式流量、压测流量的传输消息和正式流量的传输消息、压测流量的业务键信息和正式流量的业务键信息、压测流量的日志和正式流量的日志分别在逻辑上进行隔离,使之互不影响,避免污染正式的数据,最后基于第二业务应用系统部署的探针通过全链路压测平台对压测流量的日志和正式流量的的日志进行调取解析处理,得到容量数据,解决容量数据不准确的问题。
在一些实施例中,所述业务场景系统包括下列至少之一:
正式存储数据库、影子存储数据库、正式消息队列数据库、影子消息队列数据库、正式缓存数据库、影子缓存数据库、正式日志数据库和影子日志数据库。
在上述方案中,影子存储数据库为正式存储数据库的镜像数据库,影子消息队列数据库为正式消息队列数据库的镜像数据库,影子缓存数据库为正式缓存数据库的镜像数据库、同理影子日志数据库为正式日志数据库的镜像数据库。
因为线上写操作不能污染正式的数据,因此,需要通过镜像数据库让压测流量及压测流量数据流转到镜像数据库,正式流量流转到正式数据库,在逻辑上隔离两种流量,使之互不影响。
在一些实施例中,步骤101,所述通过所述第一业务应用部署的探针进行识别处理,将所述压测流量和所述业务场景系统运行得到的正式流量分离存储,包括:
通过所述第一业务应用部署的探针识别所述压测标,将设置压测标的压测流量存入所述影子存储数据库,同时将所述业务场景系统运行得到正式流量存入所述正式存储数据库。
在上述方案中,影子存储数据库与正式存储数据库同配置,影子存储数据库名通常会在正式存储数据库名的基础上加上固定的前后缀,表名保持不变。库级别的隔离是数据源的隔离,隔离相对比较彻底、安全,从而保障了不会对正式的数据造成污染。
在一些实施例中,步骤102,所述对所述压测流量的传输消息和所述正式流量的传输消息进行分离存储,包括:
将所述压测流量的传输消息存入所述影子消息队列数据库,同时将所述正式流量的传输消息存入所述正式消息队列数据库。
在上述方案中,压测流量的传输消息存入影子消息队列数据库,同时将正式流量的传输消息存入正式消息队列数据库,使得在传输过程中的数据进行隔离,使之互不影响,进一步避免污染正式的数据。
在一些实施例中,步骤103,所述通过所述第二业务应用系统部署的探针进行识别处理,将所述压测流量的业务键信息和所述正式流量的业务键信息分离进行存储,同时将所述压测流量的日志和所述正式流量的的日志分离进行存储,包括:
通过所述第二业务应用系统部署的探针识别所述压测标,将设置压测标的所述压测流量的业务键信息存入所述影子缓存数据库,并将所述正式流量的业务键信息存入所述正式缓存数据库,同时将设置压测标的所述压测流量的日志存入所述影子日志数据库,将所述正式流量的的日志存入所述正式日志数据库。
在上述方案中,压测流量的业务键信息和压测流量的日志设置压测标,通过第二业务应用系统部署的探针识别压测标,采用部署探针对将设置压测标的压测流量的业务键信息和压测流量的日志进行识别处理(例如在请求中添加Header(标头)正常流量标记),使得压测流量的业务键信息和正式流量的业务键信息、压测流量的日志和正式流量的的日志进行隔离,使之互不影响,避免污染正式的数据,同时使得在查找调用链路时可以精准定位,通过这样的方式实现了不对源程序进行修改,从而避免了造成系统风险等问题。
其中,压测流量的业务键信息和正式流量的业务键信息的隔离一般用在KV缓存(Key-Value缓存模块,键值)、存储组件上(例如Redis(Remote Dictionary Server,远程字典服务)),探针会拦截对KV缓存、存储组件的所有操作,根据压测标自动修改Key(业务键信息)和过期时间,达到隔离数据和数据清理的目的。
在一些实施例中,步骤104,包括:
基于所述第二业务应用系统部署的探针通过所述全链路压测平台对所述压测流量的日志和所述正式流量的日志进行调取解析,得到探针数据信息、压测数据信息和链路数据信息;
通过对所述探针数据信息、所述压测数据信息和所述链路数据信息进行计算处理,得到所述容量数据。
在上述方案中,基于第二业务应用系统部署的探针通过全链路压测平台对压测流量的日志和所述正式流量的的日志进行调取解析,得到探针数据信息、压测数据信息和链路数据信息。
其中,探针数据信息包括业务活动的点、边等调用链数据;
压测数据信息包括各个应用的出口和入口数据、压测数据等;
链路数据信息包括调用链数据以及每个探针的详情数据;
通过对探针数据信息、压测数据信息和链路数据信息进行计算处理,可以得到到各业务应用系统的性能基线数据与容量数据,从而获取限流阈值,并可根据容量数据找出业务场景系统的短板,从而进行优化,以防生产的时候流量过大超过系统整体支持的流量。
在一些实施例中,通过所述全链路压测平台将所述探针数据信息、所述压测数据信息和所述链路数据信息分离进行存储。
在上述方案中,通过全链路压测平台将探针数据信息、压测数据信息和链路数据信息分离进行存储,将探针数据信息存到全链路压测平台的clickhouse(开源列式数据库)数据库中,将压测数据信息存储进influxdb(时序数据库)数据库中,将链路数据信息存储进mysql(关系型数据库管理系统)数据库中,以满足查询调用。
在一些实施例中,例如,如图2和图3所示,根据全链路压测平台接收的压测请求通过全链路压测平台的压力机对业务应用A(即第一业务应用)进行压力测试,并通过业务应用A部署的探针进行识别处理,将压测流量和正式流量分离存储,将压测流量写入影子库(即影子存储数据库),同时将正式流量写入正式库(即正式存储数据库),通过业务应用B(即第二业务应用)调用压测请求,得到压测流量的传输消息和正式流量的传输消息,并对压测流量的传输消息和正式流量的传输消息进行分离存储,将压测流量的传输消息写入影子topic(即影子消息队列数据库),将正式流量的传输消息写入正式topic(即正式消息队列数据库),当压测标传递到业务应用B,得到压测流量的业务键信息和日志、正式流量的业务键信息和日志,并通过第二业务应用系统部署的探针进行识别处理,将压测流量的业务键信息写入影子key(即影子缓存数据库),将正式流量的业务键信息写入正式key(即影子缓存数据库),同时将压测流量的日志写入影子日志(即影子日志数据库),将正式流量的日志分离写入正式日志(即正式日志数据库)。
通过全链路压测平台中的storm集群系统(分布式实时大数据处理框架)执行surge任务(网络调试任务)对探针日志数据(即第二业务应用系统部署的探针从压测流量的日志和所述正式流量的的日志进行调取的数据)进行解析处理,得到探针数据(即探针数据信息)、压测数据(即压测数据信息)和链路数据(即链路数据信息),将探针数据信息存到全链路压测平台的clickhouse(开源列式数据库)数据库中,将压测数据信息存储进influxdb(时序数据库)数据库中,将链路数据信息存储进mysql(关系型数据库管理系统)数据库中,通过storm集群系统对探针数据信息、压测数据信息和链路数据信息进行计算处理,得到容量数据,并可通过全链路压测平台的控制中心的amdb数据库(Advanced MassDatabase,分布式存储数据库)进行数据的查询,其中,业务应用A的地址信息和业务应用B的地址信息通过全链路压测平台的配置中心中的zookeeper集群系统(分布式应用程序协调服务)进行设置。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种全链路压测系统。
参考图4,所述全链路压测系统,包括业务场景系统和全链路压测平台,其中,业务场景系统包括部署探针的业务应用系统,所述业务应用系统至少包括第一业务应用系统和第二业务应用系统;
压力测试模块401,被配置为根据所述全链路压测平台接收的压测请求对所述第一业务应用系统进行压力测试,得到设置压测标的压测流量,并通过所述第一业务应用部署的探针进行识别处理,将所述压测流量和所述业务场景系统运行得到的正式流量分离存储;
传输模块402,被配置为通过所述第二业务应用系统调用所述压测请求,得到所述压测流量的传输消息和所述正式流量的传输消息,并对所述压测流量的传输消息和所述正式流量的传输消息进行分离存储;
调用压力测试模块403,被配置为响应于确定所述压测标传递到所述第二业务应用系统,得到所述压测流量的业务键信息和日志、所述正式流量的业务键信息和日志,并通过所述第二业务应用系统部署的探针进行识别处理,将所述压测流量的业务键信息和所述正式流量的业务键信息分离进行存储,同时将所述压测流量的日志和所述正式流量的的日志分离进行存储;
解析处理模块404,被配置为基于所述第二业务应用系统部署的探针通过所述全链路压测平台对所述压测流量的日志和所述正式流量的的日志进行调取解析处理,得到容量数据。
在一些实施例中,所述业务场景系统包括下列至少之一:
正式存储数据库、影子存储数据库、正式消息队列数据库、影子消息队列数据库、正式缓存数据库、影子缓存数据库、正式日志数据库和影子日志数据库。
在一些实施例中,压力测试模块401,具体被配置为:
通过所述第一业务应用部署的探针识别所述压测标,将设置压测标的压测流量存入所述影子存储数据库,同时将所述业务场景系统运行得到正式流量存入所述正式存储数据库。
在一些实施例中,传输模块402,具体被配置为:
将所述压测流量的传输消息存入所述影子消息队列数据库,同时将所述正式流量的传输消息存入所述正式消息队列数据库。
在一些实施例中,调用压力测试模块403,具体被配置为:
通过所述第二业务应用系统部署的探针识别所述压测标,将设置压测标的所述压测流量的业务键信息存入所述影子缓存数据库,并将所述正式流量的业务键信息存入所述正式缓存数据库,同时将设置压测标的所述压测流量的日志存入所述影子日志数据库,将所述正式流量的的日志存入所述正式日志数据库。
在一些实施例中,解析处理模块404,具体被配置为:
基于所述第二业务应用系统部署的探针通过所述全链路压测平台对所述压测流量的日志和所述正式流量的日志进行调取解析,得到探针数据信息、压测数据信息和链路数据信息;
通过对所述探针数据信息、所述压测数据信息和所述链路数据信息进行计算处理,得到所述容量数据。
在一些实施例中,通过所述全链路压测平台将所述探针数据信息、所述压测数据信息和所述链路数据信息分离进行存储。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的基于全链路在线压测的容量检测方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的基于全链路在线压测的容量检测方法。
图5示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器501、存储器502、输入/输出接口503、通信接口504和总线505。其中处理器501、存储器502、输入/输出接口503和通信接口504通过总线505实现彼此之间在设备内部的通信连接。
处理器501可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器502可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器502可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器502中,并由处理器501来调用执行。
输入/输出接口503用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口504用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线505包括一通路,在设备的各个组件(例如处理器501、存储器502、输入/输出接口503和通信接口504)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器501、存储器502、输入/输出接口503、通信接口504以及总线505,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的基于全链路在线压测的容量检测方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的基于全链路在线压测的容量检测方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的基于全链路在线压测的容量检测方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于全链路在线压测的容量检测方法,其特征在于,应用于全链路压测系统,所述全链路压测系统包括业务场景系统和全链路压测平台,其中,业务场景系统包括部署探针的业务应用系统,所述业务应用系统至少包括第一业务应用系统和第二业务应用系统;
所述方法包括:
根据所述全链路压测平台接收的压测请求对所述第一业务应用系统进行压力测试,得到设置压测标的压测流量,并通过所述第一业务应用部署的探针进行识别处理,将所述压测流量和所述业务场景系统运行得到的正式流量分离存储;
通过所述第二业务应用系统调用所述压测请求,得到所述压测流量的传输消息和所述正式流量的传输消息,并对所述压测流量的传输消息和所述正式流量的传输消息进行分离存储;
响应于确定所述压测标传递到所述第二业务应用系统,得到所述压测流量的业务键信息和日志、所述正式流量的业务键信息和日志,并通过所述第二业务应用系统部署的探针进行识别处理,将所述压测流量的业务键信息和所述正式流量的业务键信息分离进行存储,同时将所述压测流量的日志和所述正式流量的日志分离进行存储;
基于所述第二业务应用系统部署的探针通过所述全链路压测平台对所述压测流量的日志和所述正式流量的的日志进行调取解析处理,得到容量数据。
2.根据权利要求1所述的方法,其特征在于,所述业务场景系统包括下列至少之一:
正式存储数据库、影子存储数据库、正式消息队列数据库、影子消息队列数据库、正式缓存数据库、影子缓存数据库、正式日志数据库和影子日志数据库。
3.根据权利要求2所述的方法,其特征在于,所述通过所述第一业务应用部署的探针进行识别处理,将所述压测流量和所述业务场景系统运行得到的正式流量分离存储,包括:
通过所述第一业务应用部署的探针识别所述压测标,将设置压测标的压测流量存入所述影子存储数据库,同时将所述业务场景系统运行得到正式流量存入所述正式存储数据库。
4.根据权利要求2所述的方法,其特征在于,所述对所述压测流量的传输消息和所述正式流量的传输消息进行分离存储,包括:
将所述压测流量的传输消息存入所述影子消息队列数据库,同时将所述正式流量的传输消息存入所述正式消息队列数据库。
5.根据权利要求2所述的方法,其特征在于,所述通过所述第二业务应用系统部署的探针进行识别处理,将所述压测流量的业务键信息和所述正式流量的业务键信息分离进行存储,同时将所述压测流量的日志和所述正式流量的的日志分离进行存储,包括:
通过所述第二业务应用系统部署的探针识别所述压测标,将设置压测标的所述压测流量的业务键信息存入所述影子缓存数据库,并将所述正式流量的业务键信息存入所述正式缓存数据库,同时将设置压测标的所述压测流量的日志存入所述影子日志数据库,将所述正式流量的的日志存入所述正式日志数据库。
6.根据权利要求1所述的方法,其特征在于,所述基于所述第二业务应用系统部署的探针通过所述全链路压测平台对所述压测流量的日志和所述正式流量的的日志进行调取解析处理,得到容量数据,包括:
基于所述第二业务应用系统部署的探针通过所述全链路压测平台对所述压测流量的日志和所述正式流量的的日志进行调取解析,得到探针数据信息、压测数据信息和链路数据信息;
通过对所述探针数据信息、所述压测数据信息和所述链路数据信息进行计算处理,得到所述容量数据。
7.根据权利要求6所述的方法,其特征在于,通过所述全链路压测平台将所述探针数据信息、所述压测数据信息和所述链路数据信息分离进行存储。
8.一种全链路压测系统,其特征在于,全链路压测系统包括业务场景系统和全链路压测平台,其中,业务场景系统包括部署探针的业务应用系统,所述业务应用系统至少包括第一业务应用系统和第二业务应用系统;
压力测试模块,被配置为根据所述全链路压测平台接收的压测请求对所述第一业务应用系统进行压力测试,得到设置压测标的压测流量,并通过所述第一业务应用部署的探针进行识别处理,将所述压测流量和所述业务场景系统运行得到的正式流量分离存储;
传输模块,被配置为通过所述第二业务应用系统调用所述压测请求,得到所述压测流量的传输消息和所述正式流量的传输消息,并对所述压测流量的传输消息和所述正式流量的传输消息进行分离存储;
调用压力测试模块,被配置为响应于确定所述压测标传递到所述第二业务应用系统,得到所述压测流量的业务键信息和日志、所述正式流量的业务键信息和日志,并通过所述第二业务应用系统部署的探针进行识别处理,将所述压测流量的业务键信息和所述正式流量的业务键信息分离进行存储,同时将所述压测流量的日志和所述正式流量的的日志分离进行存储;
解析处理模块,被配置为基于所述第二业务应用系统部署的探针通过所述全链路压测平台对所述压测流量的日志和所述正式流量的日志进行调取解析处理,得到容量数据。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210316706.3A CN114942873A (zh) | 2022-03-28 | 2022-03-28 | 基于全链路在线压测的容量检测方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210316706.3A CN114942873A (zh) | 2022-03-28 | 2022-03-28 | 基于全链路在线压测的容量检测方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114942873A true CN114942873A (zh) | 2022-08-26 |
Family
ID=82906161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210316706.3A Pending CN114942873A (zh) | 2022-03-28 | 2022-03-28 | 基于全链路在线压测的容量检测方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114942873A (zh) |
-
2022
- 2022-03-28 CN CN202210316706.3A patent/CN114942873A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108683562B (zh) | 异常检测定位方法、装置、计算机设备及存储介质 | |
CN109558282B (zh) | 一种pcie链路检测方法、系统及电子设备和存储介质 | |
TW201941058A (zh) | 異常檢測方法及裝置 | |
CN109309596B (zh) | 一种压力测试方法、装置及服务器 | |
US11112908B2 (en) | Method of determining whether touch data valid, and device and storage medium for the same | |
CN111897724B (zh) | 一种适用于云平台的自动化测试方法及装置 | |
CN108734304B (zh) | 一种数据模型的训练方法、装置、及计算机设备 | |
CN109359118B (zh) | 一种数据写入方法及装置 | |
CN109684008B (zh) | 卡片渲染方法、装置、终端及计算机可读存储介质 | |
CN114095567B (zh) | 数据访问请求的处理方法、装置、计算机设备及介质 | |
CN110874315A (zh) | 测试方法、装置、电子设备和存储介质 | |
CN104809054A (zh) | 实现程序测试的方法和系统 | |
CN110046086B (zh) | 用于测试的期望数据生成方法及装置和电子设备 | |
CN111506455B (zh) | 服务发布结果的查验方法及装置 | |
CN110708211B (zh) | 网络流量测试方法及系统 | |
CN110865931B (zh) | 模拟方法、装置、电子设备和存储介质 | |
CN112241362A (zh) | 一种测试方法、装置、服务器及存储介质 | |
CN114942873A (zh) | 基于全链路在线压测的容量检测方法及相关设备 | |
CN112379967B (zh) | 模拟器检测方法、装置、设备及介质 | |
CN115052037A (zh) | 客户端检测方法、装置、存储介质和设备 | |
CN115269331A (zh) | 面向微服务组的服务拓扑监控方法及相关设备 | |
CN112380115A (zh) | 一种回归测试方法、装置、电子设备及存储介质 | |
CN105988917B (zh) | 异常信息获取方法及装置 | |
CN114003497A (zh) | 业务系统的测试方法、装置、设备及存储介质 | |
CN109656805B (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 |