流量处理方法、网关、流量对比系统及装置与流程

文档序号:26588555发布日期:2021-09-10 20:07阅读:89来源:国知局
流量处理方法、网关、流量对比系统及装置与流程

1.本发明涉及数据处理技术领域,具体涉及一种流量处理方法、网关、流量对比系统及装置。


背景技术:

2.随着互联网的发展,为保证服务应用能为用户提供更优良的服务,需要对服务应用进行测试。
3.目前通常在用户验收测试(user acceptance test,uat)环境下对服务应用进行测试。但是,uat环境下用于测试服务应用的流量无法真实模拟生产环境下的真实流量,导致服务应用的测试效果并不准确,测试准确性较差。


技术实现要素:

4.有鉴于此,本发明实施例提供一种流量处理方法、网关、流量对比系统及装置,以解决现有测试服务应用的方式存在的测试准确性差等问题。
5.为实现上述目的,本发明实施例提供如下技术方案:本发明实施例第一方面公开一种流量处理方法,所述方法适用于网关,所述方法包括:获取待转发至目标服务的原始流量,所述原始流量包含原始请求;若确定所述原始流量满足预设的网关流控规则,复制所述原始流量中的所述原始请求,得到包含复制请求的复制流量,每个所述原始请求对应一个所述复制请求,所述网关流控规则由控制台配置并转发至网关存储,所述网关流控规则至少包含api类型、api名称、请求基准值和待测试服务的服务名;将所述原始流量中的所述原始请求转发至所述目标服务,以及将所述复制流量中的复制请求转发至所述待测试服务;获取所述目标服务反馈的处理所述原始请求后得到的响应数据,及获取所述待测试服务反馈的处理所述复制请求后得到的响应数据;将所述原始请求的响应数据及所述复制请求的响应数据发送至流量对比系统,使所述流量对比系统比对具有对应关系的所述原始请求与所述复制请求的响应数据,得到响应比对信息,所述响应比对信息至少包括:所述原始请求的数量、同与其对应的所述原始请求的响应数据一致的所述复制请求的数量、同与其对应的所述原始请求的响应数据不一致的所述复制请求的数量。
6.优选的,确定所述原始流量满足预设的网关流控规则的过程,包括:将所述原始流量的所述原始请求输入第一过滤器和处理器槽链;调用所述处理器槽链中的网关流控槽,确定所述原始请求的数量是否大于等于网关流控规则中的请求基准值,及确定所述原始请求是否满足所述网关流控规则中的api类型和api名称;
若所述原始请求的数量大于等于所述请求基准值,且若所述原始请求满足所述api类型和所述api名称,确定所述原始流量满足所述网关流控规则。
7.优选的,所述若确定所述原始流量满足预设的网关流控规则,复制所述原始流量中的所述原始请求,得到包含复制请求的复制流量,包括:若确定所述原始流量满足预设的网关流控规则,调用所述处理器槽链中的网关流控定制槽,获取所述网关流控规则中待测试服务的服务名;调用所述网关流控定制槽,将所述待测试服务的服务名及所述网关流控规则写入所述原始请求的请求上下文;调用第二过滤器,根据所述原始请求的请求上下文,对所述原始请求进行复制,得到包含复制请求的复制流量。
8.优选的,将所述原始流量中的所述原始请求转发至所述目标服务,以及将所述复制流量中的复制请求转发至所述待测试服务,包括:调用第三过滤器,将所述原始流量中的所述原始请求转发至所述目标服务;调用所述第二过滤器,将所述复制流量中的复制请求转发至所述待测试服务。
9.优选的,所述将所述原始请求的响应数据及所述复制请求的响应数据发送至流量对比系统,包括:调用第四过滤器,将每一对具有对应关系的所述原始请求和所述复制请求的请求信息进行封装得到相应的映射对象,将所述映射对象发送至流量对比系统,所述请求信息至少包含所述原始请求和所述复制请求的响应数据。
10.优选的,获取网关流控规则的过程包括:接收apollo配置中心发送的json格式的网关流控规则,所述json格式的网关流控规则由控制台配置并发送至所述apollo配置中心;对所述json格式的网关流控规则进行解析,得到预设形式的网关流控规则并将其进行存储。
11.本发明实施例第二方面公开一种流量处理方法,所述方法适用于流量对比系统,所述方法包括:接收网关发送的原始请求的响应数据及复制请求的响应数据,所述原始请求的响应数据由所述网关将所述原始请求转发至目标服务处理得到,所述复制请求由所述网关根据预设的网关流控规则复制所述原始请求得到,所述网关流控规则由控制台配置并转发至所述网关存储,所述网关流控规则至少包含api类型、api名称、请求基准值和待测试服务的服务名,所述复制请求的响应数据由所述网关将所述复制请求转发至所述待测试服务处理得到;比对具有对应关系的所述原始请求与所述复制请求的响应数据,得到响应比对信息,所述响应比对信息至少包括:所述原始请求的数量、同与其对应的所述原始请求的响应数据一致的所述复制请求的数量、同与其对应的所述原始请求的响应数据不一致的所述复制请求的数量。
12.优选的,所述比对具有对应关系的所述原始请求与所述复制请求的响应数据,得到响应比对信息,包括:筛选属于第一json路径且不属于第二json路径的所述原始请求与所述复制请求;
比对筛选结果中具有对应关系的所述原始请求与所述复制请求的响应数据,得到响应比对信息。
13.优选的,比对具有对应关系的所述原始请求与所述复制请求的响应数据,得到响应比对信息之后,还包括:在可视化界面中,展示所述响应比对信息。
14.本发明实施例第三方面公开一种网关,所述网关包括:第一获取单元,用于获取待转发至目标服务的原始流量,所述原始流量包含原始请求;处理单元,用于若确定所述原始流量满足预设的网关流控规则,复制所述原始流量中的所述原始请求,得到包含复制请求的复制流量,每个所述原始请求对应一个所述复制请求,所述网关流控规则由控制台配置并转发至网关存储,所述网关流控规则至少包含api类型、api名称、请求基准值和待测试服务的服务名;转发单元,用于将所述原始流量中的所述原始请求转发至所述目标服务,以及将所述复制流量中的复制请求转发至所述待测试服务;第二获取单元,用于获取所述目标服务反馈的处理所述原始请求后得到的响应数据,及获取所述待测试服务反馈的处理所述复制请求后得到的响应数据;发送单元,用于将所述原始请求的响应数据及所述复制请求的响应数据发送至流量对比系统,使所述流量对比系统比对具有对应关系的所述原始请求与所述复制请求的响应数据,得到响应比对信息,所述响应比对信息至少包括:所述原始请求的数量、同与其对应的所述原始请求的响应数据一致的所述复制请求的数量、同与其对应的所述原始请求的响应数据不一致的所述复制请求的数量。
15.本发明实施例第四方面公开一种流量对比系统,所述流量对比系统包括:接收单元,用于接收网关发送的原始请求的响应数据及复制请求的响应数据,所述原始请求的响应数据由所述网关将所述原始请求转发至目标服务处理得到,所述复制请求由所述网关根据预设的网关流控规则复制所述原始请求得到,所述网关流控规则由控制台配置并转发至所述网关存储,所述网关流控规则至少包含api类型、api名称、请求基准值和待测试服务的服务名,所述复制请求的响应数据由所述网关将所述复制请求转发至所述待测试服务处理得到;比对单元,用于比对具有对应关系的所述原始请求与所述复制请求的响应数据,得到响应比对信息,所述响应比对信息至少包括:所述原始请求的数量、同与其对应的所述原始请求的响应数据一致的所述复制请求的数量、同与其对应的所述原始请求的响应数据不一致的所述复制请求的数量。
16.本发明实施例第五方面公开一种流量处理装置,所述流量处理装置包括:控制台、网关及流量对比系统;所述控制台,用于配置网关流控规则并将其转发至所述网关存储,所述网关流控规则至少包含api类型、api名称、请求基准值和待测试服务的服务名;所述网关,用于获取待转发至目标服务的原始流量,所述原始流量包含原始请求;若确定所述原始流量满足所述网关流控规则,复制所述原始流量中的所述原始请求,得到包含复制请求的复制流量;将所述原始流量中的所述原始请求转发至所述目标服务,以及
将所述复制流量中的复制请求转发至所述待测试服务;获取所述目标服务反馈的处理所述原始请求后得到的响应数据,及获取所述待测试服务反馈的处理所述复制请求后得到的响应数据;将所述原始请求的响应数据及所述复制请求的响应数据发送至所述流量对比系统;所述流量对比系统,用于比对具有对应关系的所述原始请求与所述复制请求的响应数据,得到响应比对信息,所述响应比对信息至少包括:所述原始请求的数量、同与其对应的所述原始请求的响应数据一致的所述复制请求的数量、同与其对应的所述原始请求的响应数据不一致的所述复制请求的数量。
17.基于上述本发明实施例提供的一种流量处理方法、网关、流量对比系统及装置,该方法为:获取待转发至目标服务的原始流量;若确定原始流量满足预设的网关流控规则,复制原始流量中的原始请求,得到包含复制请求的复制流量;将原始流量中的原始请求转发至目标服务,以及将复制流量中的复制请求转发至待测试服务;获取目标服务反馈的处理原始请求后得到的响应数据,及获取待测试服务反馈的处理复制请求后得到的响应数据;将原始请求的响应数据及复制请求的响应数据发送至流量对比系统,使流量对比系统比对具有对应关系的原始请求与复制请求的响应数据,得到响应比对信息。本方案中,在生产环境下,复制满足网关流控规则的原始流量,将原始流量转发至目标服务及将复制流量转发至待测试服务,并获取目标服务处理原始流量得到的响应数据和待测试服务处理复制流量得到的响应数据。将原始流量和复制流量的响应数据发送至流量对比系统进行比对。通过真实流量对服务应用进行测试,提高测试准确性。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
19.图1为本发明实施例提供的一种流量处理方法的流程图;图2为本发明实施例提供的配置流控规则的界面示意图;图3为本发明实施例提供的网关与apollo配置中心的交互示意图;图4为本发明实施例提供的处理器槽链的详情示意图;图5为本发明实施例提供的添加对比内容的界面示意图;图6为本发明实施例提供的配置json路径的界面示意图;图7为本发明实施例提供的比对响应数据的界面示意图;图8为本发明实施例提供的展示响应比对信息的可视化界面示意图;图9为本发明实施例提供的展示不匹配详情的可视化界面示意图;图10为本发明实施例提供的一种网关的结构框图;图11为本发明实施例提供的一种流量对比系统的结构框图;图12为本发明实施例提供的一种流量处理装置的结构框图。
具体实施方式
20.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
22.由背景技术可知,目前通常在用户验收测试(user acceptance test,uat)环境下对服务应用进行测试,但由于uat环境下用于测试服务应用的流量无法真实模拟生产环境下的真实流量,导致服务应用的测试效果并不准确,测试准确性较差。
23.因此,本发明实施例提供一种流量处理方法、网关、流量对比系统及装置,在生产环境下,复制满足网关流控规则的原始流量,将原始流量转发至目标服务及将复制流量转发至待测试服务,并获取目标服务处理原始流量得到的响应数据和待测试服务处理复制流量得到的响应数据。将原始流量和复制流量的响应数据发送至流量对比系统进行比对。通过真实流量对服务应用进行测试,以提高测试准确性。
24.参见图1,示出了本发明实施例提供的一种流量处理方法的流程图,该流量处理方法包括:步骤s101:网关获取待转发至目标服务的原始流量。
25.需要说明的是,流量为单位时间内进入服务的一定数量的请求,该原始流量为需经网关转发至目标服务进行处理的流量,该原始流量包含原始请求,也就是说原始流量为生产环境下的真实流量。
26.在具体实现步骤s101的过程中,网关获取待转发至目标服务进行处理的原始流量。
27.步骤s102:网关若确定原始流量满足预设的网关流控规则,复制原始流量中的原始请求,得到包含复制请求的复制流量。
28.需要说明的是,每个原始请求对应一个复制请求,网关流控规则由控制台配置并转发至网关存储,网关流控规则至少包含api(application programming interface,应用程序接口)类型、api名称、请求基准值和待测试服务的服务名。
29.在一些具体实施例中,控制台预先配置网关流控规则并将该网关流控规则转换为json格式(也就是将网关流控规则编码为json字符串),控制台将json格式的网关流控规则发送至apollo(阿波罗)配置中心,由apollo配置中心将json格式的网关流控规则发送至网关。
30.为更好解释说明控制台如何配置网关流控规则,以图2示出的配置流控规则的界面示意图,结合过程a1至a3进行解释说明,需要说明的是,图2中的控制台为sentinel控制台。
31.a1、sentinel控制台响应用户登录sentinel控制台的指令,并对该用户进行身份
校验。当该用户通过身份校验后,sentinel控制台响应该用户选择网关名称的指令,确定需制定网关流控规则的网关的网关名称为“core.graphql

gateway.uat”,sentinel控制台响应该用户触发(如可通过点击的方式触发)“流控规则”这一按键的指令,新增该网关对应的网关流控规则。
32.a2、sentinel控制台响应用户在配置流控规则的界面中所输入或选择的用于定义网关流控规则的信息,完成网关流控规则的定义。如图2示出的配置流控规则的界面中的内容,用户在该界面中输入api类型为“routeid”,所输入的api名称为“api

market

backend”,阈值类型勾选“请求个数”,阈值则按需复制哪些原始请求的要求填写,由于图2中的网关流控规则为需要全部复制原始请求,故图2中的阈值填写“0”,间隔填写“1”(单位为秒),流控方式选择“流量复制”,eureka服务名列表填写“core.api

market

backend

dgs.uat”(也就是下文中复制请求的转发目的地,即待测试服务的服务名),勾选“响应对比”,并响应点击“保存”按键的指令。
33.需要说明的是,上述所提及的阈值即为复制流量的请求基准值,所包含的请求的数量高于该请求基准值的流量则被复制,请求基准值(也就是阈值)处填写“0”则表示所有流量都会被复制,间隔表示请求基准值的统计周期。
34.a3、sentinel控制台根据预设的程序编码,将配置好并保存后的网关流控规则转换为json格式。sentinel控制台通过apollo配置中心的开放api,将json格式的网关流控规则持久化到apollo配置中心。该apollo配置中心以键“core.graphql

gateway.uat

flow

rules”对该网关流控规则进行存储。
35.sentinel控制台将网关流控规则发送至apollo配置中心进行存储之后,如图3示出的网关与apollo配置中心的交互示意图,apollo配置中心通过长连接,将用于指示网关流控规则发生变更的配置变更信息推送给对应的网关中的apollo客户端,使该网关获取发生变更的网关流控规则,例如:如图2,sentinel控制台为网关“core.graphql

gateway.uat”配置对应的网关流控规则并将其发送至apollo配置中心存储之后,apollo配置中心将配置变更信息发送给网关“core.graphql

gateway.uat”。
36.需要说明的是,上述图2中所示出的控制台的类型及配置流控规则的界面中各参数的具体值,图2仅仅用于举例说明,并不用于做具体限定。可以理解的是,控制台的类型不同,配置流控规则的界面的具体内容也不同,在本发明实施例中,对于控制台的类型不做具体限定。
37.结合上述内容可知,在一些具体实施例中,网关获取网关流控规则的过程为:网关接收apollo配置中心发送的json格式的网关流控规则后,网关对该json格式的网关流控规则进行解析,得到预设形式(如类gatewayflowrule形式)的网关流控规则并将其进行存储。
38.在具体实现步骤s102的过程中,网关获取原始流量后,该原始流量中的原始请求到达网关中的第一过滤器(如sentinelzuulprefilter过滤器)并进入网关的处理器槽链中进行处理。
39.需要说明的是,网关中的处理器槽链的具体内容可参见图4示出的详情示意图,处理器槽链中包含:nodeselectorslot(节点选择器槽)、clusterbuilderslot(集群构建者槽)、logslot(日志槽)、statisticslot(统计槽)、authroityslot(授权槽)、systemslot(系统槽)、gatewayflowslot(网关流控槽)、gatewayflowcustomizedslot(网关流控定制槽)、
paramslot(参数槽)、flowslot(流控槽)和degradeslot(降级槽)。
40.在具体实现中,网关将原始流量的原始请求输入第一过滤器和处理器槽链,网关调用处理器槽链中的网关流控槽(gatewayflowslot)获取预先保存的网关流控规则,网关调用该网关流控槽确定原始流量是否满足网关流控规则,具体确定原始流量是否满足网关流控规则的方式为:确定原始请求的数量是否大于等于网关流控规则中的请求基准值,及确定原始请求是否满足网关流控规则中的api类型和api名称;若原始请求的数量大于等于请求基准值,且若原始请求满足api类型和api名称,确定原始流量满足网关流控规则。
41.在一些具体实施例中,网关调用网关流控槽确定原始流量满足网关流控规则后,调用该网关流控槽在当前线程本地环境进行埋点,以触发处理器槽链中的网关流控定制槽的进一步处理。
42.需要说明的是,埋点具体是指:向线程本地上下文中写入相关信息,以便后续使用;也就是说,埋点是传递信息的一种方式。
43.若网关调用网关流控槽确定原始流量满足网关流控规则,网关调用处理器槽链中的网关流控定制槽(gatewayflowcustomizedslot),获取网关流控规则中待测试服务的服务名,具体实现方式为:网关调用网关流控定制槽从当前线程本地环境中获取埋点信息,即可获取得到网关流控规则中待测试服务的服务名(也就是复制请求的转发目的地)。
44.网关调用网关流控定制槽,将待测试服务的服务名及网关流控规则写入原始请求的请求上下文,需要说明的是,网关流控规则以预设的对象表现形式写入请求上下文中,该请求上下文主要包括:复制服务id列表(copyserviceidlist)和复制流量响应对比标识(copyserviceidcompare)。
45.网关调用第二过滤器(如copyserviceidribbonroutingfilter过滤器),根据原始请求的请求上下文,对原始请求进行复制,得到包含复制请求的复制流量,该复制流量与原始流量对应,该复制流量中的复制请求为对原始流量的原始请求进行复制得到,即一复制请求存在与之对应的一原始请求。需要说明的是,第二过滤器采用单独隔离的复制线程池对原始请求进行复制,避免对负责处理原始请求的主线程池造成影响。
46.步骤s103:网关将原始流量中的原始请求转发至目标服务,以及将复制流量中的复制请求转发至待测试服务。
47.在具体实现步骤s103的过程中,网关调用第三过滤器,将原始流量中的原始请求转发至目标服务,使该目标服务器处理原始流量中的原始请求;网关调用第二过滤器,将复制流量中的复制请求转发至待测试服务,使待测试服务处理复制流量中的复制请求。
48.步骤s104:网关获取目标服务反馈的处理原始请求后得到的响应数据,及获取待测试服务反馈的处理复制请求后得到的响应数据。
49.可以理解的是,目标服务在处理原始流量的原始请求后可得到相应的响应数据,待测试在处理复制流量的复制请求后也可得到相应的响应数据。
50.在具体实现步骤s104的过程中,网关获取目标服务反馈的处理原始请求后得到的响应数据,及获取待测试服务反馈的处理复制请求后得到的响应数据。
51.步骤s105:网关将原始请求的响应数据及复制请求的响应数据发送至流量对比系统。
52.在具体实现步骤s105的过程中,网关调用第四过滤器(如
copyserviceidribbonpostfilter过滤器),提取每一对具有对应关系的原始请求和复制请求的请求信息,并将每一对具有对应关系的原始请求和复制请求的请求信息进行封装得到相应的映射对象。网关将所得到的映射对象发送至流量对比系统,例如:网关将所得到的映射对象通过消息中间件(如rocketmq消息中间件)发送至流量对比系统,具体而言,网关将所得到的映射对象发送至消息中间件的指定topic中,流量对比系统消费该消息中间件的指定topic中的原始请求和复制请求的请求信息。可以理解的是,网关也可通过其它方式将所得到的映射对象发送至流量对比系统,在本发明实施例中所提及的通过消息中间件发送映射对象仅用于举例,在此对于发送映射对象的方式不做具体限定。
53.需要说明的是,原始请求和复制请求的请求信息至少包含:原始请求和复制请求的url,原始请求和复制请求的请求消息体(原始请求和复制请求通用的信息),目标服务的服务名,原始请求的响应代码,原始请求的响应数据,待测试服务的服务名,复制请求的响应代码,复制请求的响应数据。
54.步骤s106:流量对比系统比对具有对应关系的原始请求与复制请求的响应数据,得到响应比对信息。
55.需要说明的是,响应比对信息至少包括:原始请求的数量、同与其对应的原始请求的响应数据一致的复制请求的数量、同与其对应的原始请求的响应数据不一致的复制请求的数量。也就是说,针对每一对具有对应关系的原始请求和复制请求,比对该原始请求和该复制请求的响应数据,通过比对结果确定两者的响应数据是否一致。统计所有比对结果,确定比对结果为“响应数据一致”的复制请求的数量,以及确定比对结果为“响应数据不一致”的复制请求的数量。
56.可以理解的是,原始流量和复制流量中均包含多个请求,在具体实现步骤s106的过程中,流量对比系统比对具有对应关系的原始请求与复制请求的响应数据,得到响应比对信息,该响应比对信息可用于指示原始流量和复制流量的响应数据之间的差异。
57.在一些具体实施例中,流量对比系统中存在多组具有对应关系的原始流量和复制流量的响应数据,例如:一目标服务对应多待测试服务,针对不同待测试服务对该目标服务的原始流量进行复制,并分别将复制流量转发至对应的待测试服务,此时每一组具有对应关系的原始流量和复制流量的响应数据为:该目标服务处理原始流量得到的响应数据,及任一待测试服务处理转发至自身的复制流量得到的响应数据。又例如:一目标服务对应一待测试服务,当存在多个目标服务和多个对应的待测试服务时,一组具有对应关系的原始流量和复制流量的响应数据为:目标服务处理原始流量得到的响应数据,及与该目标服务对应的待测试服务处理转发至自身的复制流量得到的响应数据。
58.流量对比系统可响应用户的指令,确定需比对哪一组具有对应关系的原始流量和复制流量的响应数据,如图5示出的添加对比内容的界面示意图,图5中存在两组具有对应关系的原始流量和复制流量的响应数据,其一为:原始服务名称(也就是目标服务的服务名)为“core.api

market

backend.uat”与复制服务名称(也就是待测试服务的服务名)为“core.api

market

backend

dgs

hotkey.uat”的响应数据,其二为:原始服务名称为“core.api

market

backend.uat”与复制服务名称为“core.api

market

backend

dgs.uat”的响应数据。流量对比系统可响应用户点击图5示出的界面中操作一栏的“添加”按键,确定需比对哪一组具有对应关系的原始流量和复制流量的响应数据。需要说明的是,
图5所示出的内容仅用于举例说明。
59.在一些具体实施例中,流量对比系统在确定比对哪一组具有对应关系的原始流量和复制流量的响应数据之后,还可以进一步筛选需比对哪一json路径的原始请求和复制请求的响应数据。具体实现方式为:流量对比系统获取用户在界面中所输入的第一json路径和第二josn路径,流量对比系统筛选属于第一json路径且不属于第二json路径的原始请求与复制请求,流量对比系统比对筛选结果(属于第一json路径且不属于第二json路径的请求)中具有对应关系的原始请求与复制请求的响应数据,得到响应比对信息。如图6所示出的配置json路径的界面示意图,当流量对比系统确定需比对原始服务名称为“core.api

market

backend.uat”与复制服务名称为“core.api

market

backend

dgs.uat”的响应数据后,流量对比系统获取用户在“对比json path”一栏所输入的“$.data”(也就是第一json路径),及获取用户在“排除json path”一栏所输入的“$..count”(也就是第二json路径),流量对比系统响应用户点击“开始比对”这一按键的指令,开始比对具有对应关系的原始请求与复制请求的响应数据。
60.需要说明的是,流量对比系统在每次确定需比对哪一组具有对应关系的原始流量和复制流量的响应数据时,都需要设置相应的第一json路径和第二json路径,例如:结合图5所示出的内容,当用户点击图5示出的界面中操作一栏的任意“添加”按键后,都需配置如图6所示出的“对比json path”和“排除json path”一栏的内容。图6仅用于举例说明。
61.流量对比系统响应用户指示开始比对原始请求和复制请求的响应数据的指令,筛选属于第一json路径且不属于第二json路径的原始请求与复制请求,比对筛选结果中具有对应关系的原始请求与复制请求的响应数据,得到响应比对信息。在一些具体实施例中,流量对比系统在比对原始请求和复制请求的响应数据的过程中,可对响应数据的比对过程进行诸如暂停、停止和取消等控制,如图7示出的比对响应数据的界面示意图,在比对过程中,若流量对比系统获取到用户点击“暂停”按键的指令,则暂停比对原始请求与复制请求的响应数据;若流量对比系统获取到用户点击“停止”按键的指令,则结束比对原始请求与复制请求的响应数据,并显示最终的响应比对信息;若流量对比系统获取到用户点击“取消”按键的指令,结束比对原始请求与复制请求的响应数据,并丢弃响应比对信息。可以理解的是,若用户未触发上述所提及的“暂停”、“停止”和“取消”按键,则继续响应数据的比对过程直至完成比对过程,显示最终的响应比对信息。需要说明的是,图7所示出的内容仅用于举例。
62.在一些具体实施例中,流量对比系统在可视化界面中,展示响应比对信息,具体可在该可视化界面中展示原始请求的数量、同与其对应的原始请求的响应数据一致的复制请求的数量(也可称之为匹配数量)、同与其对应的原始请求的响应数据不一致的复制请求的数量(也可称之为不匹配数量)。
63.在一些具体实施例中,流量对比系统可展示多组具有对应关系的原始流量和复制流量的响应数据的响应比对信息,如图8所示出的展示响应比对信息的可视化界面示意图。图8中展示了多组具有对应关系的原始流量和复制流量的响应数据的响应比对信息,图8中所展示的信息分别为:原始服务名称、复制服务名称、开始时间、结束时间、对比json path、排除json path、请求数量(也就是原始请求的数量)、匹配数量、不匹配数量、状态码不匹配数量和响应体不匹配数量等。
64.在一些具体实施例中,流量对比系统可响应用户查看任一组具有对应关系的原始流量和复制流量的响应数据的响应比对信息中的不匹配详情,例如:结合图8,流量对比系统响应用户点击“操作”一栏中的任一“不匹配详情”按键,以图9所示出的展示不匹配详情的可视化界面示意图,展示用户点击的“不匹配详情”按键所对应的响应比对信息中的不匹配详情。用户通过图9所示出的不匹配详情,可直观查看原始请求和复制请求的响应数据之间的具体差异内容,及原始请求和复制请求的响应数据的完整内容。需要说明的是,图8和图9仅用于举例。
65.在本发明实施例中,在生产环境下,复制满足网关流控规则的原始流量,将原始流量转发至目标服务及将复制流量转发至待测试服务,并获取目标服务处理原始流量得到的响应数据和待测试服务处理复制流量得到的响应数据。将原始流量和复制流量的响应数据发送至流量对比系统进行比对。通过真实流量对服务应用进行测试,提高测试准确性。
66.与上述本发明实施例提供的一种流量处理方法相对应,参见图10,本发明实施例还提供了一种网关的结构框图,该网关包括:第一获取单元101、处理单元102、转发单元103、第二获取单元104和发送单元105;第一获取单元101,用于获取待转发至目标服务的原始流量,原始流量包含原始请求。
67.处理单元102,用于若确定原始流量满足预设的网关流控规则,复制原始流量中的原始请求,得到包含复制请求的复制流量,每个原始请求对应一个复制请求,网关流控规则由控制台配置并转发至网关存储,网关流控规则至少包含api类型、api名称、请求基准值和待测试服务的服务名。
68.在具体实现中,用于确定原始流量满足预设的网关流控规则的处理单元102,具体用于:将原始流量的原始请求输入第一过滤器和处理器槽链;调用处理器槽链中的网关流控槽,确定原始请求的数量是否大于等于网关流控规则中的请求基准值,及确定原始请求是否满足网关流控规则中的api类型和api名称;若原始请求的数量大于等于请求基准值,且若原始请求满足api类型和api名称,确定原始流量满足网关流控规则。
69.在具体实现中,用于复制原始流量中的原始请求的处理单元102,具体用于:若确定原始流量满足预设的网关流控规则,调用处理器槽链中的网关流控定制槽,获取网关流控规则中待测试服务的服务名;调用网关流控定制槽,将待测试服务的服务名及网关流控规则写入原始请求的请求上下文;调用第二过滤器,根据原始请求的请求上下文,对原始请求进行复制,得到包含复制请求的复制流量。
70.在具体实现中,用于获取网关流控规则的处理单元102,具体用于:接收apollo配置中心发送的json格式的网关流控规则,json格式的网关流控规则由控制台配置并发送至apollo配置中心;对json格式的网关流控规则进行解析,得到预设形式的网关流控规则并将其进行存储。
71.转发单元103,用于将原始流量中的原始请求转发至目标服务,以及将复制流量中的复制请求转发至待测试服务。
72.在具体实现中,转发单元103具体用于:调用第三过滤器,将原始流量中的原始请求转发至目标服务;调用所述第二过滤器,将复制流量中的复制请求转发至待测试服务。
73.第二获取单元104,用于获取目标服务反馈的处理所述原始请求后得到的响应数
据,及获取所述待测试服务反馈的处理复制请求后得到的响应数据。
74.发送单元105,用于将原始请求的响应数据及复制请求的响应数据发送至流量对比系统,使流量对比系统比对具有对应关系的原始请求与复制请求的响应数据,得到响应比对信息,响应比对信息至少包括:原始请求的数量、同与其对应的原始请求的响应数据一致的复制请求的数量、同与其对应的原始请求的响应数据不一致的复制请求的数量。
75.在具体实现中,发送单元105具体用于:调用第四过滤器,将每一对具有对应关系的原始请求和复制请求的请求信息进行封装得到相应的映射对象,将映射对象发送至流量对比系统,请求信息至少包含原始请求和复制请求的响应数据。
76.在本发明实施例中,在生产环境下,复制满足网关流控规则的原始流量,将原始流量转发至目标服务及将复制流量转发至待测试服务,并获取目标服务处理原始流量得到的响应数据和待测试服务处理复制流量得到的响应数据。将原始流量和复制流量的响应数据发送至流量对比系统进行比对。通过真实流量对服务应用进行测试,提高测试准确性。
77.与上述本发明实施例提供的一种流量处理方法相对应,参见图11,本发明实施例还提供了一种流量对比系统的结构框图,该流量对比系统包括:接收单元111和比对单元112;接收单元111,用于接收网关发送的原始请求的响应数据及复制请求的响应数据,原始请求的响应数据由网关将所述原始请求转发至目标服务处理得到,复制请求由网关根据预设的网关流控规则复制原始请求得到,网关流控规则由控制台配置并转发至网关存储,网关流控规则至少包含api类型、api名称、请求基准值和待测试服务的服务名,复制请求的响应数据由网关将复制请求转发至待测试服务处理得到。
78.比对单元112,用于比对具有对应关系的原始请求与复制请求的响应数据,得到响应比对信息,响应比对信息至少包括:原始请求的数量、同与其对应的原始请求的响应数据一致的复制请求的数量、同与其对应的原始请求的响应数据不一致的复制请求的数量。
79.在具体实现中,比对单元112具体用于:筛选属于第一json路径且不属于第二json路径的原始请求与复制请求;比对筛选结果中具有对应关系的原始请求与复制请求的响应数据,得到响应比对信息。
80.优选的,比对单元112还用于:在可视化界面中,展示响应比对信息。
81.在本发明实施例中,流量对比系统获取网关发送的原始流量和复制流量的响应数据,流量对比系统对原始流量和复制流量的响应数据进行比对,该复制流量为对生产环境下的原始流量进行复制得到,以真实流量对服务应用进行测试,提高测试准确性。
82.与上述本发明实施例提供的一种流量处理方法相对应,参见图12,本发明实施例还提供了一种流量处理装置的结构框图,该流量处理装置包括:控制台121、网关122和流量对比系统123;控制台121,用于配置网关流控规则并将其转发至网关122存储,网关流控规则至少包含api类型、api名称、请求基准值和待测试服务的服务名。
83.网关122,用于获取待转发至目标服务的原始流量,原始流量包含原始请求;若确定原始流量满足网关流控规则,复制原始流量中的原始请求,得到包含复制请求的复制流量;将原始流量中的原始请求转发至目标服务,以及将复制流量中的复制请求转发至待测试服务;获取目标服务反馈的处理原始请求后得到的响应数据,及获取待测试服务反馈的
处理复制请求后得到的响应数据;将原始请求的响应数据及复制请求的响应数据发送至流量对比系统123。
84.流量对比系统123,用于比对具有对应关系的原始请求与复制请求的响应数据,得到响应比对信息,响应比对信息至少包括:原始请求的数量、同与其对应的原始请求的响应数据一致的复制请求的数量、同与其对应的原始请求的响应数据不一致的复制请求的数量。
85.综上所述,本发明实施例提供一种流量处理方法、网关、流量对比系统及装置,在生产环境下,复制满足网关流控规则的原始流量,将原始流量转发至目标服务及将复制流量转发至待测试服务,并获取目标服务处理原始流量得到的响应数据和待测试服务处理复制流量得到的响应数据。将原始流量和复制流量的响应数据发送至流量对比系统进行比对。通过真实流量对服务应用进行测试,提高测试准确性。
86.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
87.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
88.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1