一种对微服务变更的正确性对比方法及系统技术方案

技术编号:38092341 阅读:13 留言:0更新日期:2023-07-06 09:04
本发明专利技术提供了一种对微服务变更的正确性对比方法及系统,方法包括:配置微服务系统新模块与旧模块的方法切面,导入对比组件并配置该对比组件的输入层切面以及配置流量开关;基于流量开关与新模块实时输入流量确定对比组件的执行阶段,并根据执行阶段配置新模块和旧模块的输入流量比例;新模块和旧模块基于配置的输入流量比例执行对应的阶段,并收集执行过程中各个方法切面的输出参数、新模块与旧模块的执行结果;通过异步执行方式对比新模块与对模块的输出参数与执行结果,输出比对结果集。本发明专利技术基于切面编程进行服务变更的正确性比对,降低了代码侵入性风险,降低了比对成本,提高了微服务系统灵活性,保证了微服务系统重构的正确性。的正确性。的正确性。

【技术实现步骤摘要】
一种对微服务变更的正确性对比方法及系统


[0001]本专利技术涉及微服务变更
,具体涉及一种对微服务变更的正确性对比方法及系统。

技术介绍

[0002]微服务是一种软件开发技术

面向服务的体系结构(SOA)架构样式的一种变体,将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。在重构一个微服务系统后,重构后的新模块上线后普遍会采用新旧并行的方式来降低风险。而在并行过程中,就需要对新模块进行流量重放、输出动作拦截,以及正确性比对。
[0003]为实现并行,目前大多在新旧代码中采用硬编码的方式来实现上述的场景,同时对输出结果的收集都是以日志的方式进行输出。现有技术存在如下问题:代码侵入性高,对于旧模块硬编码的会带来一些风险;灵活性较低,全量切换以后需要对新模块的拦截代码进行下线;通过收集日志进行最终结果比对的方式需要额外的成本。

技术实现思路

[0004]因此,本专利技术要解决的技术问题在于克服现有技术中微服务变更的缺陷,从而提供一种对微服务变更的正确性对比方法及系统,能够基于切面编程进行服务变更的正确性比对,降低了代码侵入性风险,降低了比对成本,提高了微服务系统灵活性,保证了微服务系统重构的正确性。
[0005]本专利技术解决上述技术问题的技术方案如下:
[0006]第一方面,本专利技术提供了一种对微服务变更的正确性对比方法,包括以下步骤:
[0007]配置微服务系统重构后的新模块与重构前的旧模块的方法切面,导入对比组件并配置该对比组件的输入层切面来收集总输入流量以及配置流量开关;
[0008]基于所述流量开关与新模块实时输入流量确定对比组件的执行阶段,并根据所述执行阶段配置新模块和旧模块的输入流量比例;
[0009]新模块和旧模块基于配置的输入流量比例执行对应的阶段,并收集执行过程中各个方法切面的输出参数、新模块的执行结果及旧模块的执行结果;
[0010]通过异步执行方式对比新模块与对模块的输出参数与执行结果,输出比对结果集。
[0011]本专利技术实施例提供的对微服务变更的正确性对比方法,通过导入对比组件依赖包,配置新模块与旧模块的方法切面,同时配置流量开关来确定对比组件的执行阶段,根据执行阶段配置新模块与旧模块的输入流量比例,输入对应模块并执行对应的阶段,执行过程中收集各切面的输入参数和输出参数,拦截输出动作,并通过异步执行方式完成正确性比对,输出对比结果集,本专利技术基于切面编程进行服务变更的正确性比对,且不依赖日志输出,并将微服务变更的上线过程拆分为多个执行阶段,降低了代码侵入性风险,降低了比对成本,提高了微服务系统灵活性,保证了微服务系统重构的正确性。
[0012]可选地,所述流量开关,包括:第一开关,表征新模块的输入流量区间小于0,对比组件完全执行旧模块;第二开关,表征新模块的输入流量区间等于0,对比组件执行新旧并行;第三开关,表征新模块的输入流量区间大于0且小于100,对比组件执行部分放量;第四开关,表征新模块的输入流量区间为大于或等于100,对比组件完全执行新模块。
[0013]本专利技术通过配置流量开关来转换对比组件的执行状态,能够通过多种执行方式验证新模块的功能,完成微服务变更的正确性比对,提高了微服务系统的灵活性。
[0014]可选地,所述基于所述流量开关与新模块实时输入流量确定对比组件的执行阶段的过程,包括:统计新模块的实时输入流量,对比实时输入流量与所述流量开关对应的流量区间,判定当前对比组件的执行阶段;若新模块实时输入流量占总输入流量的比例等于0%,则流量开关转换为第二开关,使对比组件处于并行阶段;若新模块实时输入流量占总输入流量的比例大于0%且小于100%,则流量开关转换为第三开关,使对比组件处于比例放量阶段;若新模块实时输入流量占总输入流量的比例等于100%,则流量开关转换为第四开关,使对比组件处于全量阶段。
[0015]本专利技术通过流量开关的转换将微服务变更的上线过程拆分为三个执行阶段,每个执行阶段新模块与旧模块的输入流量均不同,通过新模块逐步上线的过程验证新模块的功能,完成微服务变更的正确性比对,保证了变更结束后微服务系统的稳定性与可靠性。
[0016]可选地,所述并行阶段,包括:通过对输入层的切面配置,比对组件收集微服务系统的总输入流量;对比组件将总输入流量输入旧模块并同步执行旧模块,同时将总输入流量输入新模块中进行异步执行,完成流量回放。
[0017]本专利技术通过设置并行阶段,在并行阶段同步执行旧模块,总输入流量输入到旧模块中执行相应操作,在旧模块执行完成后,将总输入参数重新输入到新模块中,完成流量的回放。此阶段新模块并不真正执行输出,而是在真正输出前进行结果的拦截,这样能够在新模块正式上线前验证新模块的功能,进而保证变更后微服务系统的稳定性。
[0018]可选地,所述比例放量阶段,包括:根据所述流量开关配置流量比例;按照该比例分配新模块的输入流量并同步执行新模块,剩余的流量输入旧模块并执行并行阶段。
[0019]本专利技术通过设置比例放量阶段,在此阶段一部分流量执行旧模块拦截并直接输入新模块进行新模块单独执行验证,剩余流量会执行并行阶段的功能,这样能够在旧模块未下线状态下真正执行新模块,从而验证新模块的整个执行流程,通过比对新模块与旧模块的执行结果进行正确性比对。
[0020]可选地,所述全量阶段,包括:配置新模块的流量比例为100%,总输入流量全部输入新模块,同步执行新模块。
[0021]本专利技术通过设置全量阶段,在此阶段下线旧模块,全部执行新模块。经过并行阶段与比例放量阶段,已充分验证新模块的功能,微服务变更的正确性比对基本也完成。此时将旧模块下线,正式上线新模块,能够在保证微服务系统运行稳定性基础上完成微服务变更,通过最后的全量执行也能够进一步验证新模块功能是否完整实现,进而保证微服务系统的稳定新与可靠性。
[0022]可选地,所述将各个所述输入流量输入对应模块并按照所述执行阶段进行执行,并收集执行过程中各个方法切面的输出参数、新模块的执行结果及旧模块的执行结果的过程,包括:并行阶段执行过程中,对比组件同步执行旧模块并收集旧模块的方法切面所对应
输出参数与执行结果,异步执行新模块流量回放并收集新模块的方法切面所对应输出参数,拦截新模块输出并收集新模块的执行结果;比例放量阶段执行过程中,对比组件按新模块的流量比例同步执行新模块并收集新模块的方法切面所对应输出参数与执行结果,剩余流量执行并行阶段功能;全量阶段执行过程中,对比组件同步执行新模块并收集新模块的方法切面所对应输出参数与执行结果;通过异步执行方式对比新模块和旧模块所对应的输出参数与执行结果,输出比对结果集。
[0023]本专利技术通过设置三种执行阶段,并在每个执行阶段以不同方式收集方法切面的输出参数和模块的执行结果,最后通过异步执行方式对比新模块和旧模块所对应的输出参数与执行结果,最终输出比对结果集。本专利技术经历输出参数与执行结果的多次比对,充分验证了新本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对微服务变更的正确性对比方法,其特征在于,包括如下步骤:配置微服务系统重构后的新模块与重构前的旧模块的方法切面,导入对比组件并配置该对比组件的输入层切面来收集总输入流量以及配置流量开关;基于所述流量开关与新模块实时输入流量确定对比组件的执行阶段,并根据所述执行阶段配置新模块和旧模块的输入流量比例;新模块和旧模块基于配置的输入流量比例执行对应的阶段,并收集执行过程中各个方法切面的输出参数、新模块的执行结果及旧模块的执行结果;通过异步执行方式对比新模块与对模块的输出参数与执行结果,输出比对结果集。2.根据权利要求1所述的对微服务变更的正确性对比方法,其特征在于,所述流量开关,包括:第一开关,表征新模块的输入流量区间小于0,对比组件未生效,微服务系统执行旧模块;第二开关,表征新模块的输入流量区间等于0,对比组件生效且执行新旧并行;第三开关,表征新模块的输入流量区间大于0且小于100,对比组件生效且部分流量执行新旧并行,部分流量执行新模块;第四开关,表征新模块的输入流量区间为大于或等于100,对比组件生效且完全执行新模块。3.根据权利要求2所述的对微服务变更的正确性对比方法,其特征在于,所述基于所述流量开关与新模块实时输入流量确定对比组件的执行阶段的过程,包括:统计新模块的实时输入流量,对比实时输入流量与所述流量开关对应的流量区间,判定当前对比组件的执行阶段;若新模块实时输入流量占总输入流量的比例等于0%,则流量开关转换为第二开关,使对比组件处于并行阶段;若新模块实时输入流量占总输入流量的比例大于0%且小于100%,则流量开关转换为第三开关,使对比组件处于比例放量阶段;若新模块实时输入流量占总输入流量的比例等于100%,则流量开关转换为第四开关,使对比组件处于全量阶段。4.根据权利要求3所述的对微服务变更的正确性对比方法,其特征在于,所述并行阶段,包括:通过对输入层的切面配置,比对组件收集微服务系统的总输入流量;对比组件将总输入流量输入旧模块并同步执行旧模块,同时将总输入流量输入新模块中进行异步执行,完成流量回放。5.根据权利要求4所述的对微服务变更的正确性对比方法,其特征在于,所述比例放量阶段,包括:根据所述流量开关配置流量比例;按照该比例分配新模块的输入...

【专利技术属性】
技术研发人员:于志杰
申请(专利权)人:北京白驹易行科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1