流量识别方法、装置、电子设备与流程

文档序号:18737815发布日期:2019-09-21 01:24阅读:193来源:国知局
流量识别方法、装置、电子设备与流程

本申请一个或多个实施例涉及计算机应用技术领域,尤其涉及流量识别方法、装置、电子设备。



背景技术:

灰度测试,是指在业务系统的版本上线时,可以按照用户受众从少到多,版本功能从少至全,进行发布及试用。基于灰度测试,可以实现业务系统版本发布过程的可控性;以及,业务系统实现稳定地,渐进式地上线。

流量录制回放技术,是指对生产环境下的业务流量执行录制,并将录制后的业务流量用于在生产环境或测试环境中进行回放的一种测试技术。

例如,在灰度测试环境下,可以对生产环境下的业务系统执行流量录制以及流量回放。

其中,用于回放的流量可以有多种用途,比如:该流量可以是用于验证产品问题的小比例真实用户流量,再比如:该流量也可以是用于验证系统性能的压测流量,又比如:该流量还可以是用于回归系统功能的自构造流量。



技术实现要素:

本申请提供一种流量识别方法,所述方法应用于分布式业务系统,所述分布式业务系统包括若干测试数据库、与流量发起方对接的业务子系统,以及与所述测试数据库对接的识别子系统,所述方法包括:

所述业务子系统接收流量发起方的业务流量;

将所述业务流量作为测试流量转发至所述识别子系统;

所述识别子系统检查所述测试流量中是否还包括扩展测试流量标签;如果所述测试流量中仅包括通用测试流量标签,则将所述测试流量识别为通用测试流量;如果所述测试流量中还包括扩展测试流量标签,则将所述测试流量识别为仿真测试流量。

可选的,所述将所述业务流量作为测试流量转发至所述识别子系统,包括:

将所述测试流量存储至消息队列,以由所述识别子系统从所述消息队列获取所述测试流量。

可选的,还包括:

如果所述测试流量为通用测试流量,查找与所述通用测试流量标签对应的测试数据库,将所述测试流量转发至与所述通用测试流量标签对应的测试数据库,以使所述分布式业务系统针对所述测试流量执行通用流量测试。

可选的,还包括:

如果所述测试流量为仿真测试流量,查找与所述扩展测试流量标签对应的测试数据库,将所述测试流量转发至与所述扩展测试流量标签对应的测试数据库,以使所述分布式业务系统针对所述测试流量执行仿真测试流量测试。

可选的,还包括:

如果所述测试流量仅包括扩展测试流量标签,则将所述测试流量识别为异常流量。

可选的,所述分布式业务系统为分布式的在线业务系统。

本申请还提供一种流量识别装置,所述装置应用于分布式业务系统,所述分布式业务系统包括若干测试数据库、与流量发起方对接的业务子系统,以及与所述测试数据库对接的识别子系统,所述装置包括:

获取模块,所述业务子系统接收流量发起方的业务流量;

转发模块,将所述业务流量作为测试流量转发至所述识别子系统;

识别模块,所述识别子系统检查所述测试流量中是否还包括扩展测试流量标签;如果所述测试流量中仅包括通用测试流量标签,则将所述测试流量识别为通用测试流量;如果所述测试流量中还包括扩展测试流量标签,则将所述测试流量识别为仿真测试流量。

可选的,所述转发模块进一步:

将所述测试流量存储至消息队列,以由所述识别子系统从所述消息队列获取所述测试流量。

可选的,所述识别模块进一步:

如果所述测试流量为通用测试流量,查找与所述通用测试流量标签对应的测试数据库,将所述测试流量转发至与所述通用测试流量标签对应的测试数据库,以使所述分布式业务系统针对所述测试流量执行通用流量测试。

可选的,所述识别模块进一步:

如果所述测试流量为仿真测试流量,查找与所述扩展测试流量标签对应的测试数据库,将所述测试流量转发至与所述扩展测试流量标签对应的测试数据库,以使所述分布式业务系统针对所述测试流量执行仿真测试流量测试。

可选的,所述分布式业务系统为分布式的在线业务系统。

本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;

所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。

通过以上实施例,基于业务流量中所包含的测试流量标签,分布式业务系统仅需在与测试数据库对接的识别子系统中进一步检查该流量中是否还包括扩展测试流量标签,复用分布式业务系统现有的子系统,识别出仿真测试流量,从而实现了多种业务流量的识别及隔离,降低了分布式业务系统的改造成本。

附图说明

图1是一示例性实施例提供的一种流量识别的组网图;

图2是一示例性实施例提供的一种流量识别方法的流程图;

图3是一示例性实施例提供的一种业务流量识别的流程图;

图4是一示例性实施例提供的一种流量标签组成的示意图;

图5是一示例性实施例提供的一种电子设备的硬件结构图;

图6是一示例性实施例提供的一种流量识别装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的相关技术,进行简要说明。

为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面先对本说明书实施例涉及的流量识别的相关技术,进行简要说明。

请参见图1,图1是本说明书一实施例提供的一种流量识别的组网图。

如图1所示的组网包括:流量发起方、分布式业务系统;其中,流量发起方,向分布式业务系统发送待回放的测试流量,分布式业务系统为接收该测试流量并执行业务处理。

例如:为了达到模拟线上的某种场景对应真实流量的目的,流量发起方将利用线上流量录制回放技术录制的一个仿真测试流量发送给分布式业务系统;以使分布式业务系统实现对该仿真测试流量进行处理,从而实现对分布式业务系统进行灰度测试。

如图1所示,分布式业务系统包括若干测试数据库(DB1、DB2)、与流量发起方对接的业务子系统、与测试数据库对接的识别子系统;

其中,若干测试数据库,可以与测试流量的具体类型相对应;例如,测试数据库DB1与只包括通用测试标签的通用测试流量相对应,测试数据库DB2与包括通用测试标签以及扩展测试流量标签的仿真测试流量相对应。

业务子系统,用于接收流量发起方发送的测试流量,并将该测试流量进行处理后转发给识别子系统;

识别子系统,用于对测试流量执行进一步处理后,从测试数据库DB1、DB2中选择与该测试流量对应的测试数据库,从而完成对该分布式业务系统的测试。

在以上示出的组网架构的基础上,本说明书旨在提出一种,基于分布式业务系统对业务流量携带的不同的测试流量标签进行识别,来实现快速地、低成本的多种流量识别的技术方案。

在实现时,分布式业务系统包括若干测试数据库、与流量发起方对接的业务子系统,以及与上述测试数据库对接的识别子系统。

其中,上述业务子系统、上述识别子系统以及上述若干测试数据库,例如为图1所示。

进一步的,上述业务子系统接收上述流量发起方的业务流量;将上述业务流量作为测试流量转发至上述识别子系统。

当上述识别子系统接收到上述测试流量后,检查上述测试流量中是否还包括扩展测试流量标签;如果上述测试流量为通用测试流量,查找与上述通用测试流量标签对应的测试数据库,将上述测试流量识别为通用测试流量;如果上述测试流量中还包括扩展测试流量标签,则将上述测试流量识别为仿真测试流量。

在以上技术方案中,基于业务流量中所包含的测试流量标签,分布式业务系统仅需在与测试数据库对接的识别子系统中进一步检查该流量中是否还包括扩展测试流量标签,复用分布式业务系统现有的子系统,识别出仿真测试流量,从而实现了多种业务流量的识别及隔离,降低了分布式业务系统的改造成本。

下面通过具体实施例并结合具体的应用场景对本说明书进行描述。

请参考图2,图2是本说明书一实施例提供的一种流量识别方法的流程图,所述方法应用于分布式业务系统,所述分布式业务系统包括若干测试数据库、与流量发起方对接的业务子系统,以及与所述测试数据库对接的识别子系统,上述方法执行以下步骤:

步骤202、所述业务子系统接收流量发起方的业务流量。

步骤204、将所述业务流量作为测试流量转发至所述识别子系统。

步骤206、所述识别子系统检查所述测试流量中是否还包括扩展测试流量标签;如果所述测试流量中仅包括通用测试流量标签,则将所述测试流量识别为通用测试流量;如果所述测试流量中还包括扩展测试流量标签,则将所述测试流量识别为仿真测试流量。

在本说明书中,上述分布式业务系统,包括基于任意的分布式技术搭建的分布式系统;例如,上述分布式业务系统为基于Hadoop分布式技术的分布式系统。

在示出的一种实施方式中,上述分布式业务系统为分布式的在线业务系统。也即,利用真实的业务系统,在真实的业务环境中,来执行流量仿真。

例如,在实际应用中,上述分布式业务系统可以是用于支持用户进行商品买卖交易的淘宝、天猫系统。

又例如,在实际应用中,上述分布式业务系统还可以是为用户提供的云计算或云存储服务的阿里云系统。

当然,在实际应用中,上述分布式业务系统也可以是在内部测试环境中搭建的用于模拟线上业务的测试系统,在本说明书中不进行特别限定。

为了方便理解,先介绍下分布式系统的相关概念。分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的节点(例如:计算机或设备)组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个节点无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。

在实现时,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,并且及时对单个节点的硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,以及,应用程序也不能进一步优化的时候,通常才需要考虑分布式系统。

在本说明书中,上述业务流量,可以包括通用测试流量、仿真测试流量,和通用业务流量中的任意一种或者多种的组合;

相应的,在本说明书中,为了准确的标识以上示出的两种测试流量(通用测试流量、仿真测试流量),可以在现有的通用测试流量标签的基础上,再增加一种扩展测试流量标签。若测试流量中仅包含通用测试流量标签,则该测试流量对应为通用测试流量;若测试流量中除包含通用测试流量标签外,还包括扩展测试流量标签,则该测试流量对应为仿真测试流量。

在本说明书中,上述通用业务流量,是指线上的真实业务流量;而上述测试流量(包括通用测试流量以及仿真测试流量),是指包括基于任何流量录制技术对上述分布式系统的在线业务流量所录制获得的业务流量。

在实现时,流量录制技术可以有很多种,可以在基于硬件、网络、或软件对业务流量执行录制。比如:基于网络设备提供的流量镜像功能,可以获取生产环境中真实业务流量的镜像流量。再比如:基于软件流捕获工具,也可以获取生产环境中真实业务流量。

例如,在实际应用中,上述测试流量可以是双十一活动期间,用户在淘宝、天猫系统进行商品买卖交易时,录制的业务流量。又例如,上述测试流量还可以是用于验证上述分布式系统合入已解决问题代码的某个版本的业务流量。

在本说明书中,上述流量发起方,至少包括可以基于任何流量回放技术,对上述业务流量中的上述测试流量执行回放的任何系统。

在实现时,流量回放技术可以有很多种,可以在不同角度对业务流量执行回放,比如:基于TCP的回放工具TcpReplay。再比如:基于Java的压力测试工具JMeter;

其中,JMeter最初被设计用于Web应用测试,但后来扩展到其他测试领域,可以用于测试静态和动态资源,例如静态文件、Java小服务程序、CGI脚本、Java对象、数据库、FTP服务器等等。JMeter可以对被测对象模拟出巨大的流量负载,通过构造不同压力的测试流量,来测试被测对象的负载能力、以及分析整体性能。

例如,在实际应用中,上述流量发起方可以是对上述测试流量执行回放的JMeter回放服务器或JMeter回放服务器集群。

需要说明的是,上述流量发起方可以包括多个测试设备、测试设备集群以及多个用户终端设备,在本说明书中不作具体限定。

在本说明书中,上述流量发起方通过对上述业务流量中的上述测试流量执行回放,也即,上述流量发起方将上述测试流量发送给上述分布式业务系统;以及,上述流量发起方将上述业务流量的在线的通用业务流量发送给上述分布式业务系统,以使上述分布式业务系统基于业务逻辑对上述业务流量执行对应的业务处理。

例如,上述业务流量包括双十一活动期间,用户在淘宝、天猫系统进行商品买卖交易时,录制的模拟业务流量以及交易期间的线上真实存在的业务流量。上述分布式业务系统的网络拓扑以及节点数目在当前时刻发生了变化,需要基于上述业务流量对上述分布式业务系统执行灰度验证,用以验证上述分布式业务系统在上述业务流量的压力下,功能以及性能是否正常。

请参见图3,图3是本申请一实施例提供的一种业务流量识别的流程图。上述分布式业务系统在接收到上述流量发起方的上述业务流量后,根据如图3所示的业务流量识别的流程,针对上述业务流量的不同情况进行对应不同处理。为了方便理解,针对如图3所示的不同情况,这里先做下总体介绍。

如图3所示,上述分布式业务系统在接收到上述流量发起方的业务流量(对应图3所示的S1步骤)后,首先检查该业务流量是否仅包含通用业务流量(对应图3所示的S2步骤),也即该业务流量没有测试流量;若是,则上述分布式业务系统针对该业务流量执行对应的通用业务处理(对应图3所示的S4步骤),若否,则上述分布式业务系统进一步检查该业务流量中是否还包含测试流量(对应图3所示的S3步骤);若该业务流量中还包含测试流量(对应图3所示的S3步骤为Y时),则上述分布式业务系统针对该业务流量中的测试流量,执行对应的测试业务处理(对应图3所示的S5步骤)。在上述分布式业务系统将该测试流量执行对应测试处理时,主要包括如下3种可能情况:

情况1、若该测试流量只包括扩展测试流量标签(对应图3所示的S6步骤),则将该测试流量识别为异常流量(对应图3所示的S7步骤),上述分布式业务系统需要给出相关日志或告警,用以指示该测试流量构造异常。

情况2、若该测试流量只包括通用测试流量标签(对应图3所示的S8步骤为Y时),则上述分布式业务系统将该测试流量识别为通用测试流量(对应图3所示的S9步骤)

情况3、若该测试流量除包括通用测试流量标签外,还包括扩展测试流量标签(对应图3所示的S10步骤为Y时),则上述分布式业务系统将该测试流量识别为仿真测试流量(对应图3所示的S11步骤)。

基于如图3所示的业务流量识别的流程图及以上说明,在上述业务流量仅包含通用业务流量时,上述分布式业务系统无需任何特殊处理,仅需根据该通用业务流量执行对应的通用业务处理;而当上述业务流量包含用于测试的上述录制流量时,上述分布式业务系统将上述业务流量作为测试流量进行识别,并根据该识别结果的不同情况,对该测试流量执行对应的测试业务处理。

需要说明的是,上述业务流量在经过上述分布式系统中不同子系统对应业务逻辑执行对应的业务处理时,上述业务流量中的测试流量标签会被带入到该业务逻辑执行对应的业务处理的上下文中。上述分布式系统的业务子系统仅需要识别上述业务流量中是否包括通用测试流量标签,从而复用了上述业务子系统对应业务逻辑的已有实现,仅需对上述分布式系统的识别子系统进行改造,进一步识别上述业务流量中是否还包括扩展测试流量标签,从而实现了可以识别多种不同的业务流量。

在本说明书中,上述分布式业务系统可以通过搭载的业务子系统,来接收流量发起方发起的业务流量。

例如:在实现时,上述业务子系统可以是淘宝、天猫系统中的在线业务系统中的交易处理子系统;该交易处理子系统可以接收用户和商家进行商品交易时所形成的的真实线上流量。

需要说明的是,上述业务子系统也可以是测试环境搭建的用于模拟在线业务系统的测试系统中的业务流量业务子系统。

在本说明书中,上述业务子系统接收上述流量发起方的业务流量。

例如,上述业务流量可以包括上述录制流量。又例如,上述业务流量也可以包括上述通用业务流量。再例如,上述业务流量还可以包括上述录制流量以及上述通用业务流量。

需要说明的是,上述业务流量可以包括通用测试流量标签;其中,上述通用测试流量标签用于指示上述业务流量中的录制流量的对应测试数据库的对应标签。

在实现时,上述流量发起方,可以在上述业务流量中的业务会话的报文的特定位置增加特定的字段,从而实现在上述业务流量中打上通用测试流量标签。

请参见图4,图4是本说明书一示例性实施例提供的一种流量标签组成的示意图。如图4所示,上述业务流量中的业务会话的报文可以包括“交易标识”、“LAB1”、“LAB2”、“交易内容”。其中,上述通用测试流量标签例如为在上述业务流量中的业务会话的报文的“交易标识”字段之后位置的“LAB1”。需要说明的是图4仅为示例,上述通用测试流量标签也可以位于其它位置,比如:“LAB1”也可以位于“交易标识”字段之前的位置,在本申请中,上述通用测试流量标签在上述业务流量所包括的报文中的位置以及长度、格式等都不做具体限定。

在本说明书中,上述分布式业务系统可以通过搭载的识别子系统,来接收上述业务子系统转发的业务流量;

其中,上述识别子系统为用于识别上述测试流量对应类型的子系统,并将上述测试流量转发至与对应的对接测试数据库。

例如:在实现时,上述识别子系统可以是淘宝、天猫系统中的在线业务系统中的数据处理子系统;该数据处理子系统可以接收用户和商家进行商品交易时所形成的的真实线上流量,将该真实线上流量转发至对应的数据库。

当然,在实际应用中,上述识别子系统也可以是测试环境搭建的用于模拟在线业务系统的测试系统中的业务流量识别子系统,可以将用于业务模拟测试的录制流量转发至对应的测试数据库。

在本说明书中,上述业务子系统在接收到上述业务流量后,将上述业务流量作为测试流量转发至上述识别子系统。

在示出的一种实施方式中,上述业务子系统将上述测试流量存储至消息队列,以由上述识别子系统从上述消息队列获取上述测试流量。

为了方便理解,这里介绍消息队列相关概念。消息队列,是指在消息的传输过程中保存消息的容器。其中,上述消息可以包括两个以及以上的模块间、或设备间或子系统间的需要交互的数据。比如:上述消息可以是字符串、也可以是报文,还可以是数据库访问请求等。

在消息队里中,提供消息的对象称之为“消息生产者”,获取消息的对象称之为“消息消费者”。消息队列可以由多种模型,比如:点对点消息队列模型、发布订阅消息模型;其中,发布订阅消息模型为分布式系统中经常使用。

基于发布订阅消息模型,发布者(也即“消息生产者”)向一个特定的主题Topic发布消息,0个或多个订阅者(也即“消息消费者”),接收来自这个消息主题的消息。在此模型下,发布者和订阅者可以彼此不知道对方。需要说明的是,在实际实现中,基于发布订阅消息模型,订阅者必须先订阅特定的主题Topic,发布者再发送消息,而后订阅者接收订阅的消息,这个配置顺序必须保证。

在本说明书中,上述业务子系统例如为上述发布订阅消息模型中的发布者;上述识别子系统例如为上述发布订阅消息模型中的订阅者。上述识别子系统订阅了上述业务子系统发布的目标Topic;上述业务子系统基于发布订阅消息模型的消息队列将上述测试流量发布到该目标Topic;由上述识别子系统基于该目标Topic,从消息队列里中,获取上述测试流量。

需要说明的是,除基于消息队列机制外,上述业务子系统还可以通过其他通信方式将上述业务流量作为测试流量转发至上述识别子系统。

在本说明书中,进一步地,上述识别子系统在获取上述测试流量后,对上述测试流量执行检查。

以上述示例继续举例,上述识别子系统基于上述目标Topic,从上述消息队里中,获取上述测试流量后,对上述测试流量执行检查。

在本说明书中,上述扩展测试流量标签是指,用于指示上述测试流量为仿真测试流量的对应测试数据库的对应标签。

例如:请参见图4所示,上述测试流量中的业务会话的报文除了包括“交易标识”、“LAB1”、“交易内容”外,还包括“LAB2”。其中,上述扩展测试流量标签例如为在“LAB1”(上述通用测试流量标签)之后位置的“LAB2”。需要说明的是图4仅为示例,上述扩展测试流量标签也可以位于其它位置,比如:“LAB2”也可以位于“交易内容”字段之后的位置,在本申请中,上述扩展测试流量标签在上述测试流量所包括的报文中的位置以及长度、格式等都不做具体限定。

在本说明书中,上述识别子系统检查上述测试流量中是否还包括扩展测试流量标签;如果所述测试流量中仅包括通用测试流量标签,则将所述测试流量识别为通用测试流量;如果上述测试流量中还包括扩展测试流量标签,则将上述测试流量识别为仿真测试流量。

在实现时,上述识别子系统在上述测试流量中检查通用测试流量标签是否存在外,还需进一步检查是否上述测试流量是否还包括扩展测试流量标签;如果上述测试流量中仅包括上述通用测试流量标签,则上述识别子系统将上述测试流量识别为通用测试流量,如果上述测试流量中除包括上述通用测试流量标签外,还包括扩展测试流量标签,则上述识别子系统将上述测试流量识别为仿真测试流量。

例如,若上述测试流量包含通用测试流量标签(例如为如图4所示的流量标签LAB1)以及扩展测试流量标签(例如为如图4所示的流量标签LAB2),则上述识别子系统确定该测试流量中除上述包括通用测试流量标签外,还包括扩展测试流量标签;上述识别子系统将上述测试流量识别为仿真测试流量。若上述测试流量仅包含通用测试流量标签(例如为如图4所示的流量标签LAB1),上述识别子系统将上述测试流量识别为通用测试流量。

需要说明的是,上述仿真测试流量可以包括多种类型,也即上述扩展测试流量标签可以通过预定义格式,分别指示多种类型的测试流量。

在本说明书中,在完成对针对上述测试流量对应如图3所示的各种情况的流量识别后,进一步地,根据上述测试流量中所携带的流量标签情况,上述识别子系统将上述测试流量转发到对应的测试数据库;

其中,上述测试数据库可以包括任何类型的分布式数据库或分布式数据库集群。

在实现时,上述分布式数据库可以是支持SQL(Structured Query Language,结构化查询语言)的关系数据库技术的关系数据库,也可以是支持NoSQL(No Structured Query Language,Not Only SQL)的非关系数据库技术的非关系数据库。

例如:如图4所示的与上述通用测试流量标签LAB1对应的如图1所示的DB1、可以是MongoDB数据库集群,其中,MongoDB为非关系数据库;如图4所示的与上述扩展测试流量标签LAB2对应的如图1所示的DB2,可以是MySQL数据库集群,其中,MySQL为关系数据库。

在示出的一种实施方式中,在上述识别子系统针对上述测试流量完成识别后,如果上述测试流量为仿真测试流量,查找与上述扩展测试流量标签对应的测试数据库,将上述测试流量转发至与上述扩展测试流量标签对应的测试数据库,以使上述分布式业务系统针对上述测试流量执行仿真测试流量测试。

例如:若上述测试流量为仿真测试流量,也即上述测试流量除包含通用测试流量标签(例如为图4所示的LAB1)外,还包含扩展测试流量标签(例如为如图4所示的LAB2),上述识别子系统将上述测试流量转发至与上述扩展测试流量标签LAB2对应的如图1所示的测试数据库DB2,以使上述分布式业务系统针对上述测试流量执行仿真测试流量测试。

在示出的另一种实施方式中,在针对上述测试流量根据所携带的测试流量标签完成识别后,如果上述测试流量为通用测试流量,则上述识别子系统查找与上述通用测试流量标签对应的测试数据库,将上述测试流量转发至与所述通用测试流量标签对应的测试数据库,以使上述分布式业务系统针对上述测试流量执行通用流量测试。

例如:若上述测试流量仅包含通用测试流量标签(例如为图4所示的LAB1),而不包含扩展测试流量标签(例如为如图4所示的LAB2),则上述识别子系统将上述测试流量转发至与通用测试流量标签LAB1对应的如图1所示的测试数据库DB1,以使上述分布式业务系统针对上述测试流量执行通用流量测试。

在示出的另一种实施方式中,在针对根据所携带的测试流量标签上述测试流量完成识别后,如果上述测试流量仅包括扩展测试流量标签,则上述识别子系统将上述测试流量识别为异常流量。

例如:若上述测试流量不包含通用测试流量标签(例如为图4所示的LAB1),则上述识别子系统将上述测试流量识别为异常流量;进一步地,上述分布式业务系统可以给出相关日志或告警,用以指示该测试流量构造异常。

需要说明的是,如果上述测试流量既不包含通用测试流量标签(例如为图4所示的LAB1),也不包含扩展测试流量标签(例如为图4所示的LAB2),则上述识别子系统将上述测试流量识别为通用业务流量,也即该业务流量中仅包含线上的真实业务流量,不包括用于测试的测试流量;进一步地,上述识别子系统将该业务流量转发至对应的线上流量业务数据库或数据库集群,以使上述分布式业务系统针对该业务流量执行线上的通用业务处理。

在以上技术方案中,基于业务流量所包含的测试流量标签,分布式业务系统仅需在与测试数据库对接的识别子系统中进一步检查该流量中是否还包括扩展测试流量标签,复用分布式业务系统现有的子系统,识别出仿真测试流量,从而实现了多种业务流量的识别及隔离,降低了分布式业务系统的改造成本。

与上述方法实施例相对应,本申请还提供了流量识别装置的实施例。

与上述方法实施例相对应,本说明书还提供了一种流量识别装置的实施例。本说明书的流量识别装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本说明书的流量识别装置装置所在电子设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。

图6是本说明书一示例性实施例示出的一种流量识别装置的框图。

请参考图6,所述流量识别装置60可以应用在前述图5所示的电子设备中,所述装置应用于分布式业务系统,所述分布式业务系统包括若干测试数据库、与流量发起方对接的业务子系统,以及与所述测试数据库对接的识别子系统,所述装置包括:

获取模块601,所述业务子系统接收流量发起方的业务流量;

转发模块602,将所述业务流量作为测试流量转发至所述识别子系统;

识别模块603,所述识别子系统检查所述测试流量中是否还包括扩展测试流量标签;如果所述测试流量中仅包括通用测试流量标签,则将所述测试流量识别为通用测试流量;如果所述测试流量中还包括扩展测试流量标签,则将所述测试流量识别为仿真测试流量。

在本实施例中,所述转发模块602进一步:

将所述测试流量存储至消息队列,以由所述识别子系统从所述消息队列获取所述测试流量。

在本实施例中,所述识别模块603进一步:

如果所述测试流量为通用测试流量,查找与所述通用测试流量标签对应的测试数据库,将所述测试流量转发至与所述通用测试流量标签对应的测试数据库,以使所述分布式业务系统针对所述测试流量执行通用流量测试。

在本实施例中,所述识别模块603进一步:

如果所述测试流量为仿真测试流量,查找与所述扩展测试流量标签对应的测试数据库,将所述测试流量转发至与所述扩展测试流量标签对应的测试数据库,以使所述分布式业务系统针对所述测试流量执行仿真测试流量测试。

在本实施例中,所述识别模块603进一步:

如果所述测试流量仅包括扩展测试流量标签,则将所述测试流量识别为异常流量。

在本实施例中,所述分布式业务系统为分布式的在线业务系统。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述实施例阐明的装置、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。所述电子设备可以应用于分布式业务系统,所述分布式业务系统包括若干测试数据库、与流量发起方对接的业务子系统,以及与所述测试数据库对接的识别子系统;该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。

在本实施例中,通过读取并执行所述存储器存储的与流量识别的控制逻辑对应的机器可执行指令,所述处理器被促使:

业务子系统接收流量发起方的业务流量;

将所述业务流量作为测试流量转发至所述识别子系统;

扩展测试流量标签所述识别子系统检查所述测试流量中是否还包括扩展测试流量标签;如果所述测试流量中仅包括通用测试流量标签,则将所述测试流量识别为通用测试流量;如果所述测试流量中还包括扩展测试流量标签,则将所述测试流量识别为仿真测试流量。

在本实施例中,通过读取并执行所述存储器存储的与流量识别的控制逻辑对应的机器可执行指令,所述处理器被促使:

将所述测试流量存储至消息队列,以由所述识别子系统从所述消息队列获取所述测试流量。

在本实施例中,通过读取并执行所述存储器存储的与流量识别的控制逻辑对应的机器可执行指令,所述处理器被促使:

如果所述测试流量为通用测试流量,查找与所述通用测试流量标签对应的测试数据库,将所述测试流量转发至与所述通用测试流量标签对应的测试数据库,以使所述分布式业务系统针对所述测试流量执行通用流量测试。

在本实施例中,通过读取并执行所述存储器存储的与流量识别的控制逻辑对应的机器可执行指令,所述处理器被促使:

如果所述测试流量为仿真测试流量,查找与所述扩展测试流量标签对应的测试数据库,将所述测试流量转发至与所述扩展测试流量标签对应的测试数据库,以使所述分布式业务系统针对所述测试流量执行仿真测试流量测试。

在本实施例中,通过读取并执行所述存储器存储的与流量识别的控制逻辑对应的机器可执行指令,所述处理器被促使:

如果所述测试流量仅包括扩展测试流量标签,则将所述测试流量识别为异常流量。

在本实施例中,所述分布式业务系统为分布式的在线业务系统。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1