一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于rpc的泛化路由mock方法及装置与流程

2022-07-06 06:14:29 来源:中国专利 TAG:


1.本技术属于大数据技术领域,具体地讲,涉及一种基于rpc的泛化路由mock方法及装置。


背景技术:

2.目前对于使用路由方式编排服务节点的rpc服务集群(rpc,remote procedure call,远程过程调用),路由管理是由契约包及路由算法提供的。典型的路由管理是通过客户端,在请求发送前,对rpc请求的入参或者请求端ip地址进行算法映射,从而得到目标服务端。通常必须使用服务端的契约包才能完成路由,但是在不能得到契约包的场景下,业界也有其他的调用方案:
3.在没有契约包时,用原生的rpc包随机请求。这种方式的缺陷在于在测试时,访问到的服务节点未知,结果不准确。在这种完全使用原生rpc的情况下,如果本身的路由功能是在原生rpc框架中进行的,则会直接抛出错误,无法测试。如果是经过修改,可以完成随机请求,但请求会随机请求到一个服务节点,此时如果需要测试特定的服务节点或服务节点集群只能依靠大量请求。
4.通过契约包请求。这种方案的缺陷在于依赖于契约包,可以满足基本的功能业务需求,但是在目标节点是一个特定节点,而算法只能得到的是某几个节点组成的服务群的情况下,会退化到方案一;同时此方案依赖契约包,对于自动化压测平台等无法维护和得到所有业务契约包的平台,测试无法开展,没有自动化压测的基础。
5.关闭其他服务节点。但是每次测试前、测试后都需要做大量的手工操作,对大批量多应用的自动化测试非常不友好,对基本功能测试也造成大量工作成本。


技术实现要素:

6.本技术提供了一种基于rpc的泛化路由mock方法及装置,以至少解决当前完成路由依赖于服务端的契约包,在没有契约包的场景下无法顺利开展测试的问题。
7.根据本技术的第一个方面,提供了一种基于rpc的泛化路由mock方法,包括:
8.从获取的请求任务中提取服务特征配置;
9.根据服务特征配置进行拼接获得请求链路,并利用泛化调用请求链路执行请求;
10.接收请求的执行结果获取目标效果。
11.在一实施例中,从获取的请求任务中提取服务特征配置,包括:
12.针对获取的请求任务执行自动化请求回放的场景;
13.在回放场景中增加采集域,并获取请求实际访问的服务节点的注册信息;
14.根据注册信息获取服务特征配置清单。
15.在一实施例中,根据服务特征配置进行拼接获得请求链路,包括:
16.从服务特征配置中获取拼接业务请求参数和请求配置;
17.根据拼接业务请求参数和请求配置进行请求拼接。
18.在一实施例中,利用泛化调用请求链路执行请求,包括:
19.根据服务特征配置和获取的服务注册信息获取目标服务节点;
20.截取请求链路并发送至目标服务节点以使目标服务节点执行请求。
21.在一实施例中,根据服务特征配置和获取的服务注册信息获取目标服务节点,包括:
22.对获取的服务注册信息进行清洗;
23.将服务特征配置清单与服务注册信息进行比对获得目标节点清单;
24.从目标节点清单中获取目标服务节点。
25.在一实施例中,将服务特征配置清单与服务注册信息进行比对获得目标节点清单,包括:
26.将服务特征配置清单与服务注册信息进行比对得到在服务特征配置清单已配置并且在服务注册信息中存在的配置值相同的目标节点清单;
27.在一实施例中,从目标节点清单中获取目标服务节点,包括:
28.根据预存的负载均衡算法,从目标节点清单中获取一个目标服务节点。
29.根据本技术的另一个方面,还提供了一种基于rpc的泛化路由mock装置,包括:
30.提取单元,用于从获取的请求任务中提取服务特征配置;
31.请求拼接调用单元,用于根据服务特征配置进行拼接获得请求链路,并利用泛化调用请求链路执行请求;
32.接收单元,用于接收请求的执行结果获取目标效果。
33.在一实施例中,提取单元包括:
34.请求回放模块,用于针对获取的请求任务执行自动化请求回放的场景;
35.采集域增加模块,用于在回放场景中增加采集域,并获取请求实际访问的服务节点的注册信息;
36.服务特征配置清单生成模块,用于根据注册信息获取服务特征配置清单。
37.在一实施例中,请求拼接调用单元包括:
38.获取模块,用于从服务特征配置中获取拼接业务请求参数和请求配置;
39.拼接模块,用于根据拼接业务请求参数和请求配置进行请求拼接。
40.在一实施例中,请求拼接调用单元还包括:
41.目标服务节点确定模块,用于根据服务特征配置和获取的服务注册信息获取目标服务节点;
42.截取模块,用于截取请求链路并发送至目标服务节点以使目标服务节点执行请求。
43.在一实施例中,目标服务节点确定模块包括:
44.清洗模块,用于对获取的服务注册信息进行清洗;
45.比对模块,用于将服务特征配置清单与服务注册信息进行比对获得目标节点清单;
46.确定模块,用于从目标节点清单中获取目标服务节点。
47.在一实施例中,比对模块包括:
48.将服务特征配置清单与服务注册信息进行比对得到在服务特征配置清单已配置
并且在服务注册信息中存在的配置值相同的目标节点清单;
49.在一实施例中,确定模块包括:
50.根据预存的负载均衡算法,从目标节点清单中获取一个目标服务节点。
51.本技术通过结合rpc请求的链路流程,参考dubbo(一个分布式服务框架)等rpc实现框架,将请求进行拼接并拦截后直接发送至目标节点进行执行,克服了在没有契约包的情况下无法进行测试的问题。针对现实的测试场景和发展方向,实现了一套针对rpc请求的路由mock方案,解决了rpc测试调用中无法做到的精准测试,在疲劳、性能测试中有效请求低的问题,提高了测试效率,为devops场景中的testops的自动化测试提供了工具和理论基石。
附图说明
52.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
53.图1为本技术提供的一种基于rpc的泛化路由mock方法流程图。
54.图2为本技术实施例中从获取的请求任务中提取服务特征配置的方法流程图。
55.图3为本技术实施例中根据服务特征配置进行拼接获得请求链路的方法流程图。
56.图4为本技术实施例中利用泛化调用请求链路执行请求的方法流程图。
57.图5为本技术实施例中获取目标服务节点的方法流程图。
58.图6为本技术实施例中基于rpc的泛化路由mock系统示意图。
59.图7为本技术提供的一种基于rpc的泛化路由mock装置的结构框图。
60.图8为本技术实施例中提取单元的结构框图。
61.图9为本技术实施例中请求拼接调用单元的结构框图。
62.图10为本技术实施例中请求拼接调用单元的另一功能结构框图。
63.图11为本技术实施例中目标服务节点确定模块的结构框图。
64.图12为本技术实施例中一种电子设备的具体实施方式。
具体实施方式
65.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
66.对于使用路由方式编排服务节点的rpc服务集群,路由管理是由契约包及路由算法提供的。通常必须使用服务端的契约包才能完成路由,但是在不能得到契约包的场景下,大量的请求测试会加重测试负担,并且效率低下。
67.为了解决背景技术中存在的问题,本技术提供了一种基于rpc的泛化路由mock方法,如图1所示,包括:
68.s101:从获取的请求任务中提取服务特征配置。
69.s102:根据服务特征配置进行拼接获得请求链路,并利用泛化调用请求链路执行请求。
70.s103:接收请求的执行结果获取目标效果。
71.在一具体实施例中,如图6所示,在执行请求任务前,从用户人员配置的或者是自动获取的请求中提取服务特征配置,然后由此拼接成请求链路,请求发起模块执行请求链路发起,然后请求链路被截取模块截取,跳过正常逻辑,直接发送到链路服务模块和注册中心,最后经由服务提供者执行该请求并将执行结果返回。
72.图1所示的方法的执行主体可以为pc、终端等,通过图1所示的方法实现了分布式调用中在没有契约包或者不能获得契约包的情况下依然可以实现分布式调用的功能。
73.在一实施例中,从获取的请求任务中提取服务特征配置,如图2所示,包括:
74.s201:针对获取的请求任务执行自动化请求回放的场景。
75.s202:在回放场景中增加采集域,并获取请求实际访问的服务节点的注册信息。
76.s203:根据注册信息获取服务特征配置清单。
77.在一具体实施例中,根据不同的请求来源,特征可以分为人工配置的特征和自动提取的特征。针对人工配置的特征而言,测试人员发送请求需要指定目标节点的场景,提供人工填写的配置参数key和参数值的服务特征配置清单。针对自动提取的特征而言,从生产/测试环境利用采集工具采集的请求流量,执行自动化请求回放的场景,要求增加采集域,在请求返回中获取请求实际访问的服务节点的注册信息,并且在流量回流时,自动的将信息生成服务特征配置清单。
78.在一实施例中,根据服务特征配置进行拼接获得请求链路,如图3所示,包括:
79.s301:从服务特征配置中获取拼接业务请求参数和请求配置。
80.s302:根据拼接业务请求参数和请求配置进行请求拼接。
81.在一具体实施例中,利用请求发起模块,拼接业务请求参数和请求配置,利用泛化调用执行请求。
82.在一实施例中,利用泛化调用请求链路执行请求,如图4所示,包括:
83.s401:根据服务特征配置和获取的服务注册信息获取目标服务节点。
84.s402:截取请求链路并发送至目标服务节点以使目标服务节点执行请求。
85.在一具体实施例中,请求链路被截取模块截取,跳过正常逻辑,然后从注册服务中心拉取所有被请求接口的服务提供方信息(服务注册信息),服务注册信息是根据服务提供方的服务特征配置而预先进行注册的信息;遍历注册中心拉取的提供方服务,执行信息比对,和节点清洗,将所有满足特征的服务提供者信息筛选进入备选目标服务队列。从备选目标服务队列中确定最终的目标服务节点,然后请求链路被截取模块截取,跳过正常逻辑直接发送至目标服务节点以使目标服务节点执行请求。注册服务信息拉取在实际请求前,获取在注册中心注册的目标集群的所有服务节点的注册信息,包括探寻注册中心的心跳,拿取注册中心服务注册列表,获取目标服务的提供方节点,拉取提供方节点的数据。截取模块截取请求链路是指在实际路由发生前,利用插桩的方式改变原有的路由规则,直接执行路由比对模块。向路由对比模块得出的服务提供方invoker发起调用。
86.在一实施例中,根据服务特征配置和获取的服务注册信息获取目标服务节点,如图5所示,包括:
87.s501:对获取的服务注册信息进行清洗。
88.s502:将服务特征配置清单与服务注册信息进行比对获得目标节点清单。
89.s503:从目标节点清单中获取目标服务节点。
90.在一具体实施例中,服务注册信息中存在较多的无效配置,首先会对仅对注册中心中使用的节点信息进行清洗,配置单信息和节点信息进行比对,得到在配置单中配置了的并且在节点信息中存在且配置值相同的节点。如果配置单中写明了目标节点地址,则直接指定此节点作为服务提供方也即目标服务节点,如果没有写明,则按照本地的负载均衡算法,获取一个目标服务节点。
91.在一实施例中,将服务特征配置清单与服务注册信息进行比对获得目标节点清单,包括:
92.将服务特征配置清单与服务注册信息进行比对得到在服务特征配置清单已配置并且在服务注册信息中存在的配置值相同的目标节点清单;
93.在一实施例中,从目标节点清单中获取目标服务节点,包括:
94.根据预存的负载均衡算法,从目标节点清单中获取一个目标服务节点。
95.本技术通过结合rpc请求的链路流程,参考dubbo等rpc实现框架,将请求进行拼接并拦截后直接发送至目标节点进行执行,克服了在没有契约包的情况下无法进行测试的问题。针对现实的测试场景和发展方向,实现了一套针对rpc请求的路由mock方案,解决了rpc测试调用中无法做到的精准测试,在疲劳、性能测试中有效请求低的问题,提高了测试效率,为devops场景中的testops的自动化测试提供了工具和理论基石。
96.基于同一发明构思,本技术实施例还提供了一种基于rpc的泛化路由mock装置,可以用于实现上述实施例中所描述的方法,如下面实施例所述。由于该基于rpc的泛化路由mock装置解决问题的原理与基于rpc的泛化路由mock方法相似。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
97.根据本技术的另一个方面,还提供了一种基于rpc的泛化路由mock装置,如图7所示,包括:
98.提取单元601,用于从获取的请求任务中提取服务特征配置;
99.请求拼接调用单元602,用于根据服务特征配置进行拼接获得请求链路,并利用泛化调用请求链路执行请求;
100.接收单元603,用于接收请求的执行结果获取目标效果。
101.在一具体实施例中,如图6所示,在执行请求任务前,从用户人员配置的或者是自动获取的请求中提取服务特征配置,然后由此拼接成请求链路,请求发起模块执行请求链路发起,然后请求链路被截取模块截取,跳过正常逻辑,直接发送到链路服务模块和注册中心,最后经由服务提供者执行该请求并将执行结果返回。
102.在一实施例中,如图8所示,提取单元包括:
103.请求回放模块701,用于针对获取的请求任务执行自动化请求回放的场景;
104.采集域增加模块702,用于在回放场景中增加采集域,并获取请求实际访问的服务节点的注册信息;
105.服务特征配置清单生成模块703,用于根据注册信息获取服务特征配置清单。
106.在一具体实施例中,根据不同的请求来源,特征可以分为人工配置的特征和自动提取的特征。针对人工配置的特征而言,测试人员发送请求需要指定目标节点的场景,提供人工填写的配置参数key和参数值的服务特征配置清单。针对自动提取的特征而言,从生产/测试环境利用采集工具采集的请求流量,执行自动化请求回放的场景,要求增加采集域,在请求返回中获取请求实际访问的服务节点的注册信息,并且在流量回流时,自动的将信息生成服务特征配置清单。
107.在一实施例中,如图9所示,请求拼接调用单元602包括:
108.获取模块801,用于从服务特征配置中获取拼接业务请求参数和请求配置;
109.拼接模块802,用于根据拼接业务请求参数和请求配置进行请求拼接。
110.在一具体实施例中,利用请求发起模块,拼接业务请求参数和请求配置,利用泛化调用执行请求。
111.在一实施例中,如图10所示,请求拼接调用单元602还包括:
112.目标服务节点确定模块901,用于根据服务特征配置和获取的服务注册信息获取目标服务节点;
113.截取模块902,用于截取请求链路并发送至目标服务节点以使目标服务节点执行请求。
114.在一具体实施例中,请求链路被截取模块截取,跳过正常逻辑,然后从注册服务中心拉取所有被请求接口的服务提供放信息;遍历注册中心拉取的提供方服务,执行信息比对,和节点清洗,将所有满足特征的服务提供者信息筛选进入备选目标服务队列。从备选目标服务队列中确定最终的目标服务节点,然后请求链路被截取模块截取,跳过正常逻辑直接发送至目标服务节点以使目标服务节点执行请求。注册服务信息拉取在实际请求前,获取在注册中心注册的目标集群的所有服务节点的注册信息,包括探寻注册中心的心跳,拿取注册中心服务注册列表,获取目标服务的提供方节点,拉取提供方节点的数据。截取模块截取请求链路是指在实际路由发生前,利用插桩的方式改变原有的路由规则,直接执行路由比对模块。向路由对比模块得出的服务提供方invoker发起调用。
115.在一实施例中,如图11所示,目标服务节点确定模块901包括:
116.清洗模块1001,用于对获取的服务注册信息进行清洗;
117.比对模块1002,用于将服务特征配置清单与服务注册信息进行比对获得目标节点清单;
118.确定模块1003,用于从目标节点清单中获取目标服务节点。
119.在一具体实施例中,服务注册信息中存在较多的无效配置,首先会对仅对注册中心中使用的节点信息进行清洗,配置单信息和节点信息进行比对,得到在配置单中配置了的并且在节点信息中存在且配置值相同的节点。如果配置单中写明了目标节点地址,则直接指定此节点作为服务提供方也即目标服务节点,如果没有写明,则按照本地的负载均衡算法,获取一个目标服务节点。
120.在一实施例中,比对模块包括:
121.将服务特征配置清单与服务注册信息进行比对得到在服务特征配置清单已配置并且在服务注册信息中存在的配置值相同的目标节点清单;
122.在一实施例中,确定模块包括:
123.根据预存的负载均衡算法,从目标节点清单中获取一个目标服务节点。
124.本技术通过结合rpc请求的链路流程,参考dubbo等rpc实现框架,将请求进行拼接并拦截后直接发送至目标节点进行执行,克服了在没有契约包的情况下无法进行测试的问题。针对现实的测试场景和发展方向,实现了一套针对rpc请求的路由mock方案,解决了rpc测试调用中无法做到的精准测试,在疲劳、性能测试中有效请求低的问题,提高了测试效率,为devops场景中的testops的自动化测试提供了工具和理论基石。
125.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
126.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
127.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
128.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
129.本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
130.本技术的实施例还提供能够实现上述实施例中的方法中全部步骤的一种电子设备的具体实施方式,参见图12,所述电子设备具体包括如下内容:
131.处理器(processor)1101、内存1102、通信接口(communications interface)1103、总线1104和非易失性存储器1105;
132.其中,所述处理器1101、内存1102、通信接口1103通过所述总线1104完成相互间的通信;
133.所述处理器1101用于调用所述内存1102和非易失性存储器1105中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
134.s101:从获取的请求任务中提取服务特征配置。
rom、光学存储器等)上实施的计算机程序产品的形式。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献