一种基于cache存储的流量复用方法和装置制造方法
【专利摘要】本发明提供了一种基于cache存储的流量复用方法和装置,其中方法包括:依次读取发送至基准流量环境中被测模块的源数据包,在该源数据包的透传性区域中加入第一识别标识后包作为第一源数据包,在该源数据包的透传性区域中加入第二识别标识后作为第二源数据包;将所述第一源数据包和所述第二源数据包分别发送至所述基准流量环境中的被测模块和所述复用流量环境中的被测模块;分别拦截所述基准流量环境中的被测模块和所述复用流量环境中的被测模块发送至下游的请求包,查看请求包中的识别标识并执行相应操作。本发明能够自动对基准流量环境中的下游响应数据进行复用,快速构建一个或多个复用流量环境来对被测模块进行测试。
【专利说明】—种基于cache存储的流量复用方法和装置
【【技术领域】】
[0001]本发明涉及系统测试技术,特别涉及一种基于cache存储的流量复用方法和装置。
【【背景技术】】
[0002]通常,大型互联网公司都需要对搜索引擎内部改动或升级后的模块进行测试,以保证其质量。由于模块的改动或升级往往较为频繁,所以,相应的测试需求也较大,因此,通常的做法是会在线下建立一个基准流量环境,在基准流量环境中,搭建了被测模块的下游模块,下游模块通常都是有特定功能的后端集群,能够根据被测模块的请求,返回对应的响应数据,之后,将从线上dump (转存)下来的输入源数据输入至基准流量环境的被测模块后,就能形成一个与线上完全相同的流量环境。然而,这样的基准流量环境往往是稀缺资源,当有多个被测模块有测试需求时,只能排队等待基准流量环境被释放,或者,重新去建立一个新的基准流量环境,但这又需要占用大量的后端集群资源。
【
【发明内容】
】
[0003]有鉴于此,本发明提供了一种基于cache存储的流量复用方法和装置,能够将基准流量环境中被测模块上下游的数据流量进行复用,以复用出与基准流量环境相同的流量环境。
[0004]具体技术方案如下:
[0005]一种基于cache存储的流量复用方法,用于构建复用流量环境对基准流量环境中的流量进行复用,该方法包括: [0006]S1、获取发送至基准流量环境中被测模块的源数据包,在该源数据包的透传性区域中加入第一识别标识后发送至基准流量环境中的被测模块,在该源数据包的透传性区域中加入第二识别标识后发送至复用流量环境中的被测模块;
[0007]S2、若基准流量环境中的被测模块发送至下游模块的请求包中包含第一识别标识,则存储下游模块返回的该请求包对应的响应数据至cache ;
[0008]S3、若复用流量环境中的被测模块发送至下游模块的请求包中包含第二识别标识,则从cache中查找该请求包对应的响应数据并返回给复用流量环境中的被测模块。
[0009]根据本发明一优选实施例,所述加入第二识别标识,具体包括:将加入了所述第一识别标识的源数据包中的第一识别标识修改为所述第二识别标识。
[0010]根据本发明一优选实施例,所述存储下游模块返回的该请求包对应的响应数据至cache,具体包括:
[0011]用预先设定的算法根据该请求包生成一个唯一的key,将该key与所述下游模块返回的该请求包对应的响应数据形成对应关系后存储至cache ;
[0012]所述从cache中查找该请求 包对应的响应数据,具体包括:
[0013]用预先设定的算法根据该请求包生成一个唯一的key,在cache中查找与该key对应的响应数据。
[0014]根据本发明一优选实施例,所述S2具体包括:
[0015]拦截基准流量环境中的被测模块发送至下游模块的请求包,识别该请求包中是否包含第一识别标识后将该请求包转发给下游模块;如果识别出该请求包中包含第一识别标识,则截取下游模块返回的响应数据并将该响应数据与请求包的对应关系存储至cache,并将该响应数据转发给基准流量环境中的被测模块;
[0016]所述步骤S3具体包括:
[0017]拦截复用流量环境中的被测模块发送至下游模块的请求包,识别该请求包中是否包含第二识别标识,如果是,则从所述cache中查找该请求包对应的响应数据并返回给复用流量环境中的被测模块。
[0018]根据本发明一优选实施例,在步骤SI中,在发送包含所述第一识别标识的源数据包至所述基准流量环境中的被测模块之后达到预设延迟时间后,发送包含所述第二识别标识的源数据包至所述复用流量环境中的被测模块。
[0019]一种基于cache存储的流量复用装置,用于构建复用流量环境对基准流量环境中的流量进行复用,该装置包括:
[0020]第一修改单元,用于获取发送至基准流量环境中被测模块的源数据包,在该源数据包的透传性区域中加入第一识别标识后发送至基准流量环境中的被测模块;
[0021]第二修改单元,用于获取发送至基准流量环境中被测模块的源数据包,在该源数据包的透传性区域中加入第二识别标识后发送至复用流量环境中的被测模块;
[0022]第一识别单元,用于识别基准流量环境中的被测模块发送至下游模块的请求包,若基准流量环境中的被测模块发送至下游模块的请求包中包含第一识别标识,则存储下游模块返回的该请求包对应的响应数据至cache ;
[0023]第二识别单元,用于识别复用流量环境中的被测模块发送至下游模块的请求包,若复用流量环境中的被测模块发送至下游模块的请求包中包含第二识别标识,则从cache中查找该请求包对应的响应数据并返回给复用流量环境中的被测模块。
[0024]根据本发明一优选实施例,所述第二修改单元加入第二识别标识,具体执行:将加入了所述第一识别标识的源数据包中的第一识别标识修改为所述第二识别标识。
[0025]根据本发明一优选实施例,所述第一识别单元存储下游模块返回的该请求包对应的响应数据至cache,具体执行:用预先设定的算法根据该请求包生成一个唯一的key,将该key与所述下游模块返回的该请求包对应的响应数据形成对应关系后存储至cache ;
[0026]所述第二识别单元从cache中查找该请求包对应的响应数据,具体包括:用预先设定的算法根据该请求包生成一个唯一的key,在cache中查找与该key对应的响应数据。
[0027]根据本发明一优选实施例,所述第一识别单元具体执行:
[0028]拦截基准流量环境中的被测模块发送至下游模块的请求包,识别该请求包中是否包含第一识别标识后将该请求包转发给下游模块;如果识别出该请求包中包含第一识别标识,则截取下游模块返回的响应数据并将该响应数据与请求包的对应关系存储至cache,并将该响应数据转发给基准流量环境中的被测模块;
[0029]拦截复用流量环境中的被测模块发送至下游模块的请求包,识别该请求包中是否包含第二识别标识,如果是,则从所述cache中查找该请求包对应的响应数据并返回给复用流量环境中的被测模块。
[0030]根据本发明一优选实施例,所述第一修改单元在发送包含所述第一识别标识的源数据包至所述基准流量环境中的被测模块之后达到预设延迟时间后,所述第二修改单元发送包含所述第二识别标识的源数据包至所述复用流量环境中的被测模块。
[0031]由以上技术方案可以看出,本发明通过在发送至基准流量环境中被测模块的源数据包和发送至复用流量环境中被测模块的数据包中分别加入不同的识别标识,利用被测模块的透传性,将该些识别标识自动加入到被测模块发送至下游的请求包中,之后能够根据请求包中的不同识别标识做出相应的存储响应数据或读取响应数据的操作,以此完成对基准流量环境中流量的复用。本发明能够自动对基准流量环境中的下游响应数据进行复用,快速构建多个复用流量环境来对被测模块进行测试,使得当有多个被测模块有测试需求时不再需要排队等待基准流量环境的释放或者重新构建新的基准流量环境。
【【专利附图】
【附图说明】】
[0032]图1为本发明实施例一提供的基于cache存储的流量复用方法流程图;
[0033]图2为本发明实 施例二提供的基于cache存储的流量复用装置示意图。
【【具体实施方式】】
[0034]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0035]通常,搜索引擎的内部模块都具有能够透传数据包中特定字段的特性,该特性可以称作“透传性”。透传性是指,在模块之间传递的数据包中具有一个“透传性区域”,当上游模块将具有透传性区域的数据包传递给中间模块时,中间模块不会修改数据包透传性区域中的字段,而是将该些字段继续传递到下游模块。例如,一次数据传递的过程为上游模块A将数据包传递至中间模块B,中间模块B处理该数据包后生成一个请求包并传递至下游模块C,其中在上游模块A传递至中间模块B的数据包中有透传性区域,透传性区域中包括字段X,那么中间模块B在处理该数据包时不会修改字段X,而是会将字段X加入到其生成的请求包中,然后传递至下游模块C。
[0036]通常,模块之间的通信协议也都允许在通信数据包中加入自定义的字段来实现特定的功能,如google开发的protocol buffer协议、facebook开发的thrift协议、apache开发的avix)协议等。本发明正是利用被测模块的透传性以及在数据包的透传性区域中加入自定义的字段来实现对于基准流量环境中的数据流量的复用。
[0037]下面对本发明所提供的方法和装置进行进一步描述。
[0038]实施例一
[0039]图1为本发明实施例一所提供的基于cache存储的流量复用方法流程图,如图1所示,该方法包括:
[0040]S101、依次读取发送至基准流量环境中被测模块的源数据包,在该源数据包的透传性区域中加入第一识别标识后作为第一源数据包,在该源数据包的透传性区域中加入第二识别标识后作为第二源数据包。
[0041]为了能够形成与基准流量环境中相同的流量环境,需要对基准流量环境中被测模块的上下游流量数据进行复用,尤其是基准流量环境中的下游模块返回给被测模块的响应数据。因此,需要将基准流量环境中,下游模块返回给被测模块的响应数据存储至cache中,而在复用流量环境中,则需要根据被测模块向其下游发送的请求包在cache中查找对应的响应数据,本发明正是通过上述方式完成流量的复用。
[0042]为了能够根据基准流量环境中被测模块发送至其下游的请求包和复用流量环境中被测模块发送至其下游的请求包做相应的在cache中存储数据和在cache读取数据的操作,需要使得基准流量环境中被测模块发送至其下游的请求包中和复用流量环境中被测模块发送至其下游的请求包都分别具有一个标识。本发明正是利用被测模块的透传性,在源数据的透传性区域中加入特定字段,使得被测模块在其生成的请求包中加入该字段,以此来实现对请求包的标识。
[0043]在将源数据包发送至基准流量环境中的被测模块之前,先依次读取该些预先从线上dump的源数据包,并在该些数据包的透传性区域中加入第一识别标识。第一识别标识可以是根据需要自行定义字段,例如,可以加入“nbcache=0”这一字段作为第一识别标识。之后,将加入了第一识别标识的源数据包作为第一源数据包。
[0044]对于要发送至复用流量环境中被测模块的源数据,同样,先依次读取预先从线上dump的源数据包,并在该些数据包的透传性区域中加入第二识别标识。或者,也可以直接在第一源数据包的基础上进行修改,依次读取第一源数据包,将在第一源数据包的透传性区域中加入的第一识别标识修改为第二识别标识。同样,第二识别标识可以是根据需要自行定义的字段,例如,若第一识别标识为“nbcache=0”,可将该字段修改为“nbcache=l”作为第二识别标识。或者,也可以直接删除第一源数据包透传性区域中的第一识别标识,之后,重新在透传性区域中加入一个字段来作为第二识别标识。将具有第二识别标识的数据包作为第二源数据包。
[0045]S102、将所述第一源数据包和所述第二源数据包分别发送至所述基准流量环境中的被测模块和所述复用流量环境中的被测模块。
[0046]将第一源数据包发送至基准流量环境中的被测模块,基准流量环境中的被测模块收到该第一源数据包后,会对该第一源数据包进行处理,并生成一个请求包发送至下游模块,以获取所需的下游响应数据,而对于第一源数据包中的透传性区域中的第一识别标识,基准流量环境中的被测模块会将该第一识别标识加入到其所生成的请求包中,以此,第一识别标识便能表征该请求包为基准流量环境中被测模块发送至其下游的请求包。
[0047]将第二源数据包发送至复用流量环境中的被测模块,复用流量环境中的被测模块收到该第二源数据包后,会对该第二源数据包进行处理,并生成一个请求包发送至下游模块,以获取所需的下游响应数据,而对于第二源数据包中的透传性区域中的第二识别标识,复用流量环境中的被测模块会将该第二识别标识加入到其所生成的请求包中,以此,第二识别标识便能表征该请求包为复用流量环境中被测模块发送至其下游的请求包。
[0048]需要说明的是,为了在将第二源数据包发送至复用流量环境中的被测模块后,基准流量环境中的响应数据流量已经被成功复用至复用流量环境,可以在将第一源数据包发送至基准流量环境中的被测模块之后达到预设延迟时间后,再将第二源数据包发送至复用流量环境中的被测模块。
[0049]S103、分别拦截所述基准流量环境中的被测模块和所述复用流量环境中的被测模块发送至下游的请求包,查看请求包中的识别标识并执行相应操作。
[0050]解析所拦截的请求包,若所拦截的请求包中具有第一识别标识,则认为该请求包是基准流量环境中的被测模块发送至其下游的,将该请求包发送至基准流量环境中的下游模块,下游模块接收处理该请求包后,会返回一个响应数据,将该响应数据返回至基准流量环境中的被测模块的同时,将该响应数据与存储至cache ;
[0051]若所拦截的请求包中具有第二识别标识,则认为该请求包是复用流量环境中的被测模块发送至其下游的,在cache中查询与该请求包对应的响应数据,并将获取到的与该请求包对应的响应数据返回至复用流量环境中的被测模块。
[0052]为了便于将请求包与响应数据形成一一对应的关系,可以用预先设定的算法根据请求包生成一个唯一的key,利用该key与响应数据形成关系,具体方法可以是:
[0053]若所拦截的请求包中具有第一识别标识,则认为该请求包是基准流量环境中的被测模块发送至其下游的,采用所预先设定的算法根据该请求包生成一个唯一的key,之后,将该请求包发送至基准流量环境中的下游模块,将下游模块返回的响应数据返回至基准流量环境中的被测模块的同时,将该响应数据与所生成的key形成对应关系后存储至cache ;
[0054]若所拦截的请求包中具有第二识别标识,则认为该请求包是复用流量环境中的被测模块发送至其下游的,同样,采用所预先设定的算法根据该请求包生成一个唯一的key,之后在cache中查询与该key对应的响应数据,并将获取到的与该key对应的响应数据返回至复用流量环境中的被测模块。
[0055]需要注意的是,对于同一个请求包分别形成的具有第一识别标识的请求包和具有第二识别标识的请求包生成的key相同。
[0056]根据基准流量环境中被测模块向其下游发送的请求包和复用流量环境中被测模块向其下游发送的请求包生成key可以但不限于用下述方式来实现:选取请求中的身份标识字段,如uuid,之后用md5算法根据所选取的字段计算出key值;或者,采用现有的签名算法计算请求的签名,将所得签名作为key值。
[0057]存储响应数据的cache可以利用第三方工具,如Memcached来实现。
[0058]通过上述对本发明实施例提供的方法的描述可以看出,本发明通过对发送至被测模块的源数据包的修改,在其中加入不同识别标识来自动实现对下游模块返回的响应数据进行复用,通过在源数据包中加入第一识别标识,能够自动将下游模块返回的响应数据存储至cache,通过在源数据包中加入第二识别标识,能够自动在cache中查找对应的响应数据。当有多个模块模块需要通过流量复用环境进行测试时,也只需将加入了第二识别标识的源数据包发送至该多个被测模块,之后自动在cache中分别查找对应的响应数据返回至对应的被测模块。本发明能够自动复用基准流量环境中的流量,快速搭建一个或多个复用流量环境,有效地解决了基准流量环境不足的问题。
[0059]实施例二
[0060]图2为本发明实施例二提供的基于cache存储的流量复用装置示意图,如图2所示,该装置包括:第一修改单元10、第二修改单元2、第一识别单元30和第二识别单元40。
[0061]第一修改单元10,用于获取发送至基准流量环境中被测模块的源数据包,在该源数据包的透传性区域中加入第一识别标识后发送至基准流量环境中的被测模块。
[0062]在将源数据包发送至基准流量环境中的被测模块之前,第一修改单元10先依次读取该些预先从线上dump的源数据包,并在该些数据包的透传性区域中加入第一识别标识。第一识别标识可以是根据需要自行定义字段,例如,可以加入“nbcache=0”这一字段作为第一识别标识。之后,第一修改单元10将加入了第一识别标识的源数据包作为第一源数据包发送至基准流量环境中的被测模块。
[0063]第二修改单元20,用于获取发送至基准流量环境中被测模块的源数据包,在该源数据包的透传性区域中加入第二识别标识后发送至复用流量环境中的被测模块。
[0064]对于要发送至复用流量环境中被测模块的源数据,第二修改单元先依次读取预先从线上dump的源数据包,并在该些数据包的透传性区域中加入第二识别标识。或者,也可以直接在第一源数据包的基础上进行修改,依次读取第一源数据包,将在第一源数据包的透传性区域中加入的第一识别标识修改为第二识别标识。同样,第二识别标识可以是根据需要自行定义的字段,例如,若第一识别标识为“nbcache=0”,可将该字段修改为“nbcache=l”作为第二识别标识。或者,也可以直接删除第一源数据包透传性区域中的第一识别标识,之后,重新在透传性区域中加入一个字段来作为第二识别标识。之后,第二修改单元20将具有第二识别标识的数据包作为第二源数据包发送至复用流量环境中的被测模块。
[0065]需要说明的是,为了在将第二源数据包发送至复用流量环境中的被测模块后,基准流量环境中的响应数据流量已经被成功复用至复用流量环境,可以在第一修改单元10将第一源数据包发送至基准流量环境中的被测模块之后达到预设延迟时间后,第二修改单元20再将第二源数据包发送至复用流量环境中的被测模块。
[0066]第一识别单元30,用于识别基准流量环境中的被测模块发送至下游模块的请求包,若基准流量环境中的被测模块发送至下游模块的请求包中包含第一识别标识,则存储下游模块返回的该请求包对应的响应数据至cache。
[0067]基准流量环境中的被测模块收到该第一源数据包后,会对该第一源数据包进行处理,并生成一个请求包发送至下游模块,以获取所需的下游响应数据,而对于第一源数据包中的透传性区域中的第一识别标识,基准流量环境中的被测模块会将该第一识别标识加入到其所生成的请求包中。
[0068]第一识别单元30拦截基准流量环境中的被测模块发送至其下游的请求包,之后解析所拦截的请求包,若所拦截的请求包中具有第一识别标识,则将该请求包发送至基准流量环境中的下游模块,下游模块接收处理该请求包后,会返回一个响应数据,将该响应数据返回至基准流量环境中的被测模块的同时,将该响应数据与存储至cache。
[0069]第二识别单元40,用于识别复用流量环境中的被测模块发送至下游模块的请求包,若复用流量环境中的被测模块发送至下游模块的请求包中包含第二识别标识,则从cache中查找该请求包对应的响应数据并返回给复用流量环境中的被测模块。
[0070]复用流量环境中的被测模块收到该第二源数据包后,会对该第二源数据包进行处理,并生成一个请求包发送至下游模块,以获取所需的下游响应数据,而对于第二源数据包中的透传性区域中的第二识别标识,复用流量环境中的被测模块会将该第二识别标识加入到其所生成的请求包中。
[0071]第二识别单元40拦截复用流量环境中的被测模块发送至其下游的请求包,若所拦截的请求包中具有第二识别标识,则在cache中查询与该请求包对应的响应数据,并将获取到的与该请求包对应的响应数据返回至复用流量环境中的被测模块。
[0072]需要说明的是,第一识别单元30和第二识别单元40可以由一个识别单元来实现。
[0073]为了便于将请求包与响应数据形成一一对应的关系,第一识别单元30和第二识别单元40还可以用预先设定的算法根据请求包生成一个唯一的key,利用该key与响应数据形成关系,具体可以执行下述操作:
[0074]若第一识别单元30所拦截的请求包中具有第一识别标识,则采用所预先设定的算法根据该请求包生成一个唯一的key,之后,将该请求包发送至基准流量环境中的下游模块,将下游模块返回的响应数据返回至基准流量环境中的被测模块的同时,将该响应数据与所生成的key形成对应关系后存储至cache。
[0075]若第二识别单元40所拦截的请求包中具有第二识别标识,则同样采用所预先设定的算法根据该请求包生成一个唯一的key,之后在cache中查询与该key对应的响应数据,并将获取到的与该key对应的响应数据返回至复用流量环境中的被测模块。
[0076]需要注意的是,对于同一个请求包分别形成的具有第一识别标识的请求包和具有第二识别标识的请求包生成的key相同。
[0077]根据基准流量环境中被测模块向其下游发送的请求包和复用流量环境中被测模块向其下游发送的请求包生成key可以但不限于用下述方式来实现:选取请求中的身份标识字段,如uuid,之后用md5算法根据所选取的字段计算出key值;或者,采用现有的签名算法计算请求的签名,将所得签名作为key值。
[0078]存储响应数据的cache可以利用第三方工具,如Memcached来实现。
[0079]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种基于cache存储的流量复用方法,其特征在于,用于构建复用流量环境对基准流量环境中的流量进行复用,该方法包括: 51、获取发送至基准流量环境中被测模块的源数据包,在该源数据包的透传性区域中加入第一识别标识后发送至基准流量环境中的被测模块,在该源数据包的透传性区域中加入第二识别标识后发送至复用流量环境中的被测模块; 52、若基准流量环境中的被测模块发送至下游模块的请求包中包含第一识别标识,则存储下游模块返回的该请求包对应的响应数据至cache ; 53、若复用流量环境中的被测模块发送至下游模块的请求包中包含第二识别标识,则从cache中查找该请求包对应的响应数据并返回给复用流量环境中的被测模块。
2.根据权利要求1所述的方法,其特征在于,所述加入第二识别标识,具体包括:将加入了所述第一识别标识的源数据包中的第一识别标识修改为所述第二识别标识。
3.根据权利要求1所述的方法,其特征在于,所述存储下游模块返回的该请求包对应的响应数据至cache,具体包括: 用预先设定的算法根据该请求包生成一个唯一的key,将该key与所述下游模块返回的该请求包对应的响应数据形成对应关系后存储至cache ; 所述从cache中查找该请求包对应的响应数据,具体包括: 用预先设定的算法根据该请求包生成一个唯一的key,在cache中查找与该key对应的响应数据。
4.根据权利要求1所述的方法,其特征在于,所述S2具体包括: 拦截基准流量环境中的被测模块发送至下游模块的请求包,识别该请求包中是否包含第一识别标识后将该请求包转发给下游模块;如果识别出该请求包中包含第一识别标识,则截取下游模块返回的响应数据并将该响应数据与请求包的对应关系存储至cache,并将该响应数据转发给基准流量环境中的被测模块; 所述步骤S3具体包括: 拦截复用流量环境中的被测模块发送至下游模块的请求包,识别该请求包中是否包含第二识别标识,如果是,则从所述cache中查找该请求包对应的响应数据并返回给复用流量环境中的被测模块。
5.根据权利要求1所述的方法,其特征在于,在步骤SI中,在发送包含所述第一识别标识的源数据包至所述基准流量环境中的被测模块之后达到预设延迟时间后,发送包含所述第二识别标识的源数据包至所述复用流量环境中的被测模块。
6.一种基于cache存储的流量复用装置,其特征在于,用于构建复用流量环境对基准流量环境中的流量进行复用,该装置包括: 第一修改单元,用于获取发送至基准流量环境中被测模块的源数据包,在该源数据包的透传性区域中加入第一识别标识后发送至基准流量环境中的被测模块; 第二修改单元,用于获取 发送至基准流量环境中被测模块的源数据包,在该源数据包的透传性区域中加入第二识别标识后发送至复用流量环境中的被测模块; 第一识别单元,用于识别基准流量环境中的被测模块发送至下游模块的请求包,若基准流量环境中的被测模块发送至下游模块的请求包中包含第一识别标识,则存储下游模块返回的该请求包对应的响应数据至cache ;第二识别单元,用于识别复用流量环境中的被测模块发送至下游模块的请求包,若复用流量环境中的被测模块发送至下游模块的请求包中包含第二识别标识,则从cache中查找该请求包对应的响应数据并返回给复用流量环境中的被测模块。
7.根据权利要求6所述的装置,其特征在于,所述第二修改单元加入第二识别标识时,具体执行:将加入了所述第一识别标识的源数据包中的第一识别标识修改为所述第二识别标识。
8.根据权利要求6所述的装置,其特征在于,所述第一识别单元在存储下游模块返回的该请求包对应的响应数据至cache时,具体执行:用预先设定的算法根据该请求包生成一个唯一的key,将该key与所述下游模块返回的该请求包对应的响应数据形成对应关系后存储至cache ; 所述第二识别单元在从cache中查找该请求包对应的响应数据时,具体包括:用预先设定的算法根据该请求包生成一个唯一的key,在cache中查找与该key对应的响应数据。
9.根据权利要求5所述的装置,其特征在于,所述第一识别单元具体执行: 拦截基准流量环境中的被测模块发送至下游模块的请求包,识别该请求包中是否包含第一识别标识后将该请求包转发给下游模块;如果识别出该请求包中包含第一识别标识,则截取下游模块返回的响应数据并将该响应数据与请求包的对应关系存储至cache,并将该响应数据转发给基准流量环境中的被测模块; 拦截复用流量环境中的被测模块发送至下游模块的请求包,识别该请求包中是否包含第二识别标识,如果是,则从所述cache中查找该请求包对应的响应数据并返回给复用流量环境中的被测模块。
10.根据权利要求6所述的装置,其特征在于,所述第一修改单元在发送包含所述第一识别标识的源数据包至所述基准流量环境中的被测模块之后达到预设延迟时间后,所述第二修改单元发送包含所述第二识别标识的源数据包至所述复用流量环境中的被测模块。
【文档编号】H04L12/26GK103780449SQ201210407933
【公开日】2014年5月7日 申请日期:2012年10月23日 优先权日:2012年10月23日
【发明者】金敬亭, 孙继鹏 申请人:百度在线网络技术(北京)有限公司