CN116360846A - 一种对微服务变更的正确性对比方法及系统 - Google Patents

一种对微服务变更的正确性对比方法及系统 Download PDF

Info

Publication number
CN116360846A
CN116360846A CN202211548102.8A CN202211548102A CN116360846A CN 116360846 A CN116360846 A CN 116360846A CN 202211548102 A CN202211548102 A CN 202211548102A CN 116360846 A CN116360846 A CN 116360846A
Authority
CN
China
Prior art keywords
module
new module
flow
execution
old
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211548102.8A
Other languages
English (en)
Other versions
CN116360846B (zh
Inventor
于志杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baiju Yixing Technology Co ltd
Original Assignee
Beijing Baiju Yixing Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baiju Yixing Technology Co ltd filed Critical Beijing Baiju Yixing Technology Co ltd
Priority to CN202211548102.8A priority Critical patent/CN116360846B/zh
Publication of CN116360846A publication Critical patent/CN116360846A/zh
Application granted granted Critical
Publication of CN116360846B publication Critical patent/CN116360846B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)

Abstract

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

Description

一种对微服务变更的正确性对比方法及系统
技术领域
本发明涉及微服务变更技术领域,具体涉及一种对微服务变更的正确性对比方法及系统。
背景技术
微服务是一种软件开发技术-面向服务的体系结构(SOA)架构样式的一种变体,将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。在重构一个微服务系统后,重构后的新模块上线后普遍会采用新旧并行的方式来降低风险。而在并行过程中,就需要对新模块进行流量重放、输出动作拦截,以及正确性比对。
为实现并行,目前大多在新旧代码中采用硬编码的方式来实现上述的场景,同时对输出结果的收集都是以日志的方式进行输出。现有技术存在如下问题:代码侵入性高,对于旧模块硬编码的会带来一些风险;灵活性较低,全量切换以后需要对新模块的拦截代码进行下线;通过收集日志进行最终结果比对的方式需要额外的成本。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中微服务变更的缺陷,从而提供一种对微服务变更的正确性对比方法及系统,能够基于切面编程进行服务变更的正确性比对,降低了代码侵入性风险,降低了比对成本,提高了微服务系统灵活性,保证了微服务系统重构的正确性。
本发明解决上述技术问题的技术方案如下:
第一方面,本发明提供了一种对微服务变更的正确性对比方法,包括以下步骤:
配置微服务系统重构后的新模块与重构前的旧模块的方法切面,导入对比组件并配置该对比组件的输入层切面来收集总输入流量以及配置流量开关;
基于所述流量开关与新模块实时输入流量确定对比组件的执行阶段,并根据所述执行阶段配置新模块和旧模块的输入流量比例;
新模块和旧模块基于配置的输入流量比例执行对应的阶段,并收集执行过程中各个方法切面的输出参数、新模块的执行结果及旧模块的执行结果;
通过异步执行方式对比新模块与对模块的输出参数与执行结果,输出比对结果集。
本发明实施例提供的对微服务变更的正确性对比方法,通过导入对比组件依赖包,配置新模块与旧模块的方法切面,同时配置流量开关来确定对比组件的执行阶段,根据执行阶段配置新模块与旧模块的输入流量比例,输入对应模块并执行对应的阶段,执行过程中收集各切面的输入参数和输出参数,拦截输出动作,并通过异步执行方式完成正确性比对,输出对比结果集,本发明基于切面编程进行服务变更的正确性比对,且不依赖日志输出,并将微服务变更的上线过程拆分为多个执行阶段,降低了代码侵入性风险,降低了比对成本,提高了微服务系统灵活性,保证了微服务系统重构的正确性。
可选地,所述流量开关,包括:第一开关,表征新模块的输入流量区间小于0,对比组件完全执行旧模块;第二开关,表征新模块的输入流量区间等于0,对比组件执行新旧并行;第三开关,表征新模块的输入流量区间大于0且小于100,对比组件执行部分放量;第四开关,表征新模块的输入流量区间为大于或等于100,对比组件完全执行新模块。
本发明通过配置流量开关来转换对比组件的执行状态,能够通过多种执行方式验证新模块的功能,完成微服务变更的正确性比对,提高了微服务系统的灵活性。
可选地,所述基于所述流量开关与新模块实时输入流量确定对比组件的执行阶段的过程,包括:统计新模块的实时输入流量,对比实时输入流量与所述流量开关对应的流量区间,判定当前对比组件的执行阶段;若新模块实时输入流量占总输入流量的比例等于0%,则流量开关转换为第二开关,使对比组件处于并行阶段;若新模块实时输入流量占总输入流量的比例大于0%且小于100%,则流量开关转换为第三开关,使对比组件处于比例放量阶段;若新模块实时输入流量占总输入流量的比例等于100%,则流量开关转换为第四开关,使对比组件处于全量阶段。
本发明通过流量开关的转换将微服务变更的上线过程拆分为三个执行阶段,每个执行阶段新模块与旧模块的输入流量均不同,通过新模块逐步上线的过程验证新模块的功能,完成微服务变更的正确性比对,保证了变更结束后微服务系统的稳定性与可靠性。
可选地,所述并行阶段,包括:通过对输入层的切面配置,比对组件收集微服务系统的总输入流量;对比组件将总输入流量输入旧模块并同步执行旧模块,同时将总输入流量输入新模块中进行异步执行,完成流量回放。
本发明通过设置并行阶段,在并行阶段同步执行旧模块,总输入流量输入到旧模块中执行相应操作,在旧模块执行完成后,将总输入参数重新输入到新模块中,完成流量的回放。此阶段新模块并不真正执行输出,而是在真正输出前进行结果的拦截,这样能够在新模块正式上线前验证新模块的功能,进而保证变更后微服务系统的稳定性。
可选地,所述比例放量阶段,包括:根据所述流量开关配置流量比例;按照该比例分配新模块的输入流量并同步执行新模块,剩余的流量输入旧模块并执行并行阶段。
本发明通过设置比例放量阶段,在此阶段一部分流量执行旧模块拦截并直接输入新模块进行新模块单独执行验证,剩余流量会执行并行阶段的功能,这样能够在旧模块未下线状态下真正执行新模块,从而验证新模块的整个执行流程,通过比对新模块与旧模块的执行结果进行正确性比对。
可选地,所述全量阶段,包括:配置新模块的流量比例为100%,总输入流量全部输入新模块,同步执行新模块。
本发明通过设置全量阶段,在此阶段下线旧模块,全部执行新模块。经过并行阶段与比例放量阶段,已充分验证新模块的功能,微服务变更的正确性比对基本也完成。此时将旧模块下线,正式上线新模块,能够在保证微服务系统运行稳定性基础上完成微服务变更,通过最后的全量执行也能够进一步验证新模块功能是否完整实现,进而保证微服务系统的稳定新与可靠性。
可选地,所述将各个所述输入流量输入对应模块并按照所述执行阶段进行执行,并收集执行过程中各个方法切面的输出参数、新模块的执行结果及旧模块的执行结果的过程,包括:并行阶段执行过程中,对比组件同步执行旧模块并收集旧模块的方法切面所对应输出参数与执行结果,异步执行新模块流量回放并收集新模块的方法切面所对应输出参数,拦截新模块输出并收集新模块的执行结果;比例放量阶段执行过程中,对比组件按新模块的流量比例同步执行新模块并收集新模块的方法切面所对应输出参数与执行结果,剩余流量执行并行阶段功能;全量阶段执行过程中,对比组件同步执行新模块并收集新模块的方法切面所对应输出参数与执行结果;通过异步执行方式对比新模块和旧模块所对应的输出参数与执行结果,输出比对结果集。
本发明通过设置三种执行阶段,并在每个执行阶段以不同方式收集方法切面的输出参数和模块的执行结果,最后通过异步执行方式对比新模块和旧模块所对应的输出参数与执行结果,最终输出比对结果集。本发明经历输出参数与执行结果的多次比对,充分验证了新模块的功能,对代码重构进行正确性保证。
第二方面,本发明实施例提供了一种对微服务变更的正确性对比系统,所述系统包括:
组件配置模块,用于配置微服务系统重构后的新模块与重构前的旧模块的方法切面,导入对比组件并配置该对比组件的输入层切面来收集总输入流量以及配置流量开关;
流量分配模块,用于基于所述流量开关与新模块实时输入流量确定对比组件的执行阶段,并根据所述执行阶段配置新模块和旧模块的输入流量比例;
参数收集模块,用于新模块和旧模块基于配置的输入流量比例执行对应的阶段,并收集执行过程中各个方法切面的输出参数、新模块的执行结果及旧模块的执行结果;
参数比对模块,用于通过异步执行方式对比新模块与旧模块的输出参数,输出比对结果集。
本发明实施例提供的对微服务变更的正确性对比系统,通过导入对比组件依赖包,配置新模块与旧模块的方法切面,同时配置流量开关来确定对比组件的执行阶段,根据执行阶段配置新模块与旧模块的输入流量比例,输入对应模块并执行对应的阶段,执行过程中收集各切面的输入参数和输出参数,拦截输出动作,并通过异步执行方式完成正确性比对,输出对比结果集,本发明基于切面编程进行服务变更的正确性比对,且不依赖日志输出,并将微服务变更的上线过程拆分为多个执行阶段,降低了代码侵入性风险,降低了比对成本,提高了微服务系统灵活性,保证了微服务系统重构的正确性。
第三方面,本发明实施例提供了一种计算机设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种对微服务变更的正确性对比方法的流程示意图;
图2为本发明实施例提供的一种对微服务变更的正确性对比方法的对比组件执行过程示意图;
图3为本发明实施例提供的一种对微服务变更的正确性对比系统的结构示意图;
图4为本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明实施例提供了一种对微服务变更的正确性对比方法,如图1所示,该方法具体包括如下步骤:
步骤S1:配置微服务系统重构后的新模块与重构前的旧模块的方法切面,导入对比组件并配置该对比组件的输入层切面来收集总输入流量以及配置流量开关。
具体地,在本发明实施例中,首先在微服务系统重构后基于切面编程方式配置新模块(重构后退款流程)与旧模块(重构前退款流程)的方法切面,在新模块与旧模块的各个方法层均配置切面,每个切面都对应不同的输出参数。其次导入对比组件依赖包,用来进行正确性的比对。配置对比组件的输入层切面进行输入流量的收集,以方便后续新旧模块输入流量的分配。最后配置流量开关,流量开关表征不同的新模块输入流量区间,对应对比组件不同预设执行状态,具体如下表所述:
流量开关 新模块的输入流量区间 预设执行状态
第一开关 <0 旧模块
第二开关 =0 新旧并行
第三开关 (0,100) 新旧并行、新模块
第四开关 ≥100 新模块
步骤S2:基于所述流量开关与新模块实时输入流量确定对比组件的执行阶段,并根据所述执行阶段配置新模块和旧模块的输入流量比例。
具体地,在本发明实施例中,对比组件会统计新模块的实时输入流量,通过对比此输入流量与新模块的输入流量区间转换流量开关,使对比组件处于不同的执行状态并根据对比组件的执行状态判定当前的执行阶段。
本发明实施例将微服务变更的上线过程拆分为三个阶段:并行阶段、比例放量阶段及全量阶段,本发明实施例以退款流程为例,微服务系统的输入层数据包括HTTP调用、RPC调用、队列消息消费及任务调度等,构成总输入流量,输出层数据包括HTTP调用(其他系统)、RPC调用(其他系统)、队列消息生产及数据库等。各执行阶段的执行过程如图2所示,具体描述如下:
1)并行阶段:通过对输入层的切面配置,比对组件收集微服务系统的总输入流量;对比组件将总输入流量输入旧模块并同步执行旧模块,同时将总输入流量输入新模块中进行异步执行,完成流量回放。通过对请求流量进行重放,以验证新模块的功能,该阶段新模块不会真正执行输出,但需要输出结果与旧模块进行比对。
2)比例放量阶段:按照新模块的流量比例切出一定比例的流量,执行新模块。比如配置新模块流量比例为1%,因此1%的输入流量会执行旧模块拦截,进行新模块单独执行验证,99%的输入流量会执行并行阶段的功能。
3)全量阶段:配置流量比例100%,组件在该阶段中,所有的流量都会执行直接新模块,旧模块下线。
本发明通过将微服务变更的上线过程拆分为三个阶段,能够在保证微服务系统运行稳定基础上逐步验证新模块的功能,新模块按比例逐步上线直至全量执行新模块,旧模块下线。如此操作能够提高微服务系统的灵活性,避免新模块全量切换以后就下线对新模块的拦截代码,存在出现执行异常的情况。
步骤S3:新模块和旧模块基于配置的输入流量比例执行对应的阶段,并收集执行过程中各个方法切面的输出参数、新模块的执行结果及旧模块的执行结果。
具体地,在本发明实施例中,在确定对比组件执行过程并确定新模块与旧模块的输入流量比例后,按照比例分配新模块与旧模块的输入流量并执行对应的阶段,执行过程中通过同步或异步方式收集各个方法切面的输出参数、新模块的执行结果与旧模块的执行结果,各个执行阶段的收集过程如下所述:
1)并行阶段执行过程中,对比组件同步执行旧模块并收集旧模块的方法切面所对应输出参数与执行结果,异步执行新模块流量回放并收集新模块的方法切面所对应输出参数,拦截新模块输出并收集新模块的执行结果。
2)比例放量阶段执行过程中,对比组件按新模块的流量比例同步执行新模块并收集新模块的方法切面所对应输出参数与执行结果,剩余流量执行并行阶段功能。
3)全量阶段执行过程中,对比组件同步执行新模块并收集新模块的方法切面所对应输出参数与执行结果。
步骤S4:通过异步执行方式对比新模块与对模块的输出参数与执行结果,输出比对结果集。
具体的,在本发明实施例中,通过异步执行方式对比各执行阶段中新模块和旧模块所对应的输出参数与执行结果,输出比对结果集,完成微服务变更的正确性比对。本发明实施例经历输出参数与执行结果的多次比对,对代码重构进行正确性保证。
本发明实施例提供的对微服务变更的正确性对比方法,通过导入对比组件依赖包,配置新模块与旧模块的方法切面,同时配置流量开关来确定对比组件的执行阶段,根据执行阶段配置新模块与旧模块的输入流量比例,输入对应模块并执行对应的阶段,执行过程中收集各切面的输入参数和输出参数,拦截输出动作,并通过异步执行方式完成正确性比对,输出对比结果集,本发明基于切面编程进行服务变更的正确性比对,且不依赖日志输出,并将微服务变更的上线过程拆分为多个执行阶段,降低了代码侵入性风险,降低了比对成本,提高了微服务系统灵活性,保证了微服务系统重构的正确性。
本发明实施例提供了一种对微服务变更的正确性对比系统,如图3所示,系统包括:
组件配置模块1,用于配置微服务系统重构后的新模块与重构前的旧模块的方法切面,导入对比组件并配置该对比组件的输入层切面来收集总输入流量以及配置流量开关。详细内容参见上述方法实施例中步骤S1的相关描述,在此不再进行赘述。
流量分配模块2,用于基于所述流量开关与新模块实时输入流量确定对比组件的执行阶段,并根据所述执行阶段配置新模块和旧模块的输入流量比例。详细内容参见上述方法实施例中步骤S2的相关描述,在此不再进行赘述。
参数收集模块3,用于新模块和旧模块基于配置的输入流量比例执行对应的阶段,并收集执行过程中各个方法切面的输出参数、新模块的执行结果及旧模块的执行结果。详细内容参见上述方法实施例中步骤S3的相关描述,在此不再进行赘述。
参数比对模块4,用于通过异步执行方式对比新模块与旧模块的输出参数,输出比对结果集。详细内容参见上述方法实施例中步骤S4的相关描述,在此不再进行赘述。
本发明实施例提供的对微服务变更的正确性对比系统,通过导入对比组件依赖包,配置新模块与旧模块的方法切面,同时配置流量开关来确定对比组件的执行阶段,根据执行阶段配置新模块与旧模块的输入流量比例,输入对应模块并执行对应的阶段,执行过程中收集各切面的输入参数和输出参数,拦截输出动作,并通过异步执行方式完成正确性比对,输出对比结果集,本发明基于切面编程进行服务变更的正确性比对,且不依赖日志输出,并将微服务变更的上线过程拆分为多个执行阶段,降低了代码侵入性风险,降低了比对成本,提高了微服务系统灵活性,保证了微服务系统重构的正确性。
图4示出了本发明实施例中计算机设备的结构示意图,包括:处理器901和存储器902,其中,处理器901和存储器902可以通过总线或者其他方式连接,图4中以通过总线连接为例。
处理器901可以为中央处理器(Central Processing Unit,CPU)。处理器901还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态服务器程序、非暂态计算机可执行程序以及模块,如上述方法实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态服务器程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
上述计算机设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,实现的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种对微服务变更的正确性对比方法,其特征在于,包括如下步骤:
配置微服务系统重构后的新模块与重构前的旧模块的方法切面,导入对比组件并配置该对比组件的输入层切面来收集总输入流量以及配置流量开关;
基于所述流量开关与新模块实时输入流量确定对比组件的执行阶段,并根据所述执行阶段配置新模块和旧模块的输入流量比例;
新模块和旧模块基于配置的输入流量比例执行对应的阶段,并收集执行过程中各个方法切面的输出参数、新模块的执行结果及旧模块的执行结果;
通过异步执行方式对比新模块与对模块的输出参数与执行结果,输出比对结果集。
2.根据权利要求1所述的对微服务变更的正确性对比方法,其特征在于,所述流量开关,包括:
第一开关,表征新模块的输入流量区间小于0,对比组件未生效,微服务系统执行旧模块;
第二开关,表征新模块的输入流量区间等于0,对比组件生效且执行新旧并行;
第三开关,表征新模块的输入流量区间大于0且小于100,对比组件生效且部分流量执行新旧并行,部分流量执行新模块;
第四开关,表征新模块的输入流量区间为大于或等于100,对比组件生效且完全执行新模块。
3.根据权利要求2所述的对微服务变更的正确性对比方法,其特征在于,所述基于所述流量开关与新模块实时输入流量确定对比组件的执行阶段的过程,包括:统计新模块的实时输入流量,对比实时输入流量与所述流量开关对应的流量区间,判定当前对比组件的执行阶段;
若新模块实时输入流量占总输入流量的比例等于0%,则流量开关转换为第二开关,使对比组件处于并行阶段;
若新模块实时输入流量占总输入流量的比例大于0%且小于100%,则流量开关转换为第三开关,使对比组件处于比例放量阶段;
若新模块实时输入流量占总输入流量的比例等于100%,则流量开关转换为第四开关,使对比组件处于全量阶段。
4.根据权利要求3所述的对微服务变更的正确性对比方法,其特征在于,所述并行阶段,包括:
通过对输入层的切面配置,比对组件收集微服务系统的总输入流量;
对比组件将总输入流量输入旧模块并同步执行旧模块,同时将总输入流量输入新模块中进行异步执行,完成流量回放。
5.根据权利要求4所述的对微服务变更的正确性对比方法,其特征在于,所述比例放量阶段,包括:
根据所述流量开关配置流量比例;
按照该比例分配新模块的输入流量并同步执行新模块,剩余的流量输入旧模块并执行并行阶段。
6.根据权利要求3所述的对微服务变更的正确性对比方法,其特征在于,所述全量阶段,包括:配置新模块的流量比例为100%,总输入流量全部输入新模块,同步执行新模块。
7.根据权利要求3所述的对微服务变更的正确性对比方法,其特征在于,所述将各个所述输入流量输入对应模块并按照所述执行阶段进行执行,并收集执行过程中各个方法切面的输出参数、新模块的执行结果及旧模块的执行结果的过程,包括:
并行阶段执行过程中,对比组件同步执行旧模块并收集旧模块的方法切面所对应输出参数与执行结果,异步执行新模块流量回放并收集新模块的方法切面所对应输出参数,拦截新模块输出并收集新模块的执行结果;
比例放量阶段执行过程中,对比组件按新模块的流量比例同步执行新模块并收集新模块的方法切面所对应输出参数与执行结果,剩余流量执行并行阶段功能;
全量阶段执行过程中,对比组件同步执行新模块并收集新模块的方法切面所对应输出参数与执行结果。
8.一种对微服务变更的正确性对比系统,其特征在于,包括:
组件配置模块,用于配置微服务系统重构后的新模块与重构前的旧模块的方法切面,导入对比组件并配置该对比组件的输入层切面来收集总输入流量以及配置流量开关;
流量分配模块,用于基于所述流量开关与新模块实时输入流量确定对比组件的执行阶段,并根据所述执行阶段配置新模块和旧模块的输入流量比例;
参数收集模块,用于新模块和旧模块基于配置的输入流量比例执行对应的阶段,并收集执行过程中各个方法切面的输出参数、新模块的执行结果及旧模块的执行结果;
参数比对模块,用于通过异步执行方式对比新模块与旧模块的输出参数,输出比对结果集。
9.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7中任一项所述的对微服务变更的正确性对比方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的对微服务变更的正确性对比方法。
CN202211548102.8A 2022-12-05 2022-12-05 一种对微服务变更的正确性对比方法及系统 Active CN116360846B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211548102.8A CN116360846B (zh) 2022-12-05 2022-12-05 一种对微服务变更的正确性对比方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211548102.8A CN116360846B (zh) 2022-12-05 2022-12-05 一种对微服务变更的正确性对比方法及系统

Publications (2)

Publication Number Publication Date
CN116360846A true CN116360846A (zh) 2023-06-30
CN116360846B CN116360846B (zh) 2023-11-17

Family

ID=86925875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211548102.8A Active CN116360846B (zh) 2022-12-05 2022-12-05 一种对微服务变更的正确性对比方法及系统

Country Status (1)

Country Link
CN (1) CN116360846B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344045A (zh) * 2018-07-27 2019-02-15 阿里巴巴集团控股有限公司 业务系统切换方法、装置、电子设备及存储介质
CN110058865A (zh) * 2019-03-07 2019-07-26 埃斯倍风电科技(青岛)有限公司 一种单片机的程序烧写及运行方法
CN110620697A (zh) * 2018-06-19 2019-12-27 北京嘀嘀无限科技发展有限公司 一种基于流量控制的测试方法及系统
US10721791B1 (en) * 2019-04-17 2020-07-21 EMC IP Holding Company LLC Recommending the refactoring of microservices
CN112015469A (zh) * 2020-07-14 2020-12-01 北京淇瑀信息科技有限公司 一种系统重构方法、装置和电子设备
CN113014457A (zh) * 2021-03-19 2021-06-22 福建天晴在线互动科技有限公司 一种基于直连式存储的测试流量管理和编辑方案及系统
CN114640503A (zh) * 2022-02-22 2022-06-17 中国建设银行股份有限公司 应用系统的验证方法、装置、计算机设备和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110620697A (zh) * 2018-06-19 2019-12-27 北京嘀嘀无限科技发展有限公司 一种基于流量控制的测试方法及系统
CN109344045A (zh) * 2018-07-27 2019-02-15 阿里巴巴集团控股有限公司 业务系统切换方法、装置、电子设备及存储介质
CN110058865A (zh) * 2019-03-07 2019-07-26 埃斯倍风电科技(青岛)有限公司 一种单片机的程序烧写及运行方法
US10721791B1 (en) * 2019-04-17 2020-07-21 EMC IP Holding Company LLC Recommending the refactoring of microservices
CN112015469A (zh) * 2020-07-14 2020-12-01 北京淇瑀信息科技有限公司 一种系统重构方法、装置和电子设备
CN113014457A (zh) * 2021-03-19 2021-06-22 福建天晴在线互动科技有限公司 一种基于直连式存储的测试流量管理和编辑方案及系统
CN114640503A (zh) * 2022-02-22 2022-06-17 中国建设银行股份有限公司 应用系统的验证方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN116360846B (zh) 2023-11-17

Similar Documents

Publication Publication Date Title
CN109412829B (zh) 一种资源配置的预测方法及设备
CN106708719B (zh) 业务功能的测试方法和装置
CN113055759B (zh) 带宽分配方法、装置及系统
CN113656503A (zh) 数据同步方法、装置、系统及计算机可读存储介质
CN107203464B (zh) 业务问题的定位方法以及装置
CN111160793A (zh) 一种服务网点自助设备数量的配置方法、装置及设备
CN110532021B (zh) 分布式控制系统的组态文件的处理方法、客户端及服务装置
CN114466227B (zh) 一种视频分析方法、装置、电子设备及存储介质
CN116187268A (zh) 芯片仿真验证方法、装置、设备及存储介质
CN116360846B (zh) 一种对微服务变更的正确性对比方法及系统
CN110888800A (zh) 服务交互功能的测试方法、装置、存储介质及测试系统
CN114676205A (zh) 事件信息的处理方法及装置
CN113486118A (zh) 共识节点选取方法及装置
CN112631754A (zh) 数据处理方法、装置、存储介质及电子装置
CN112132544B (zh) 业务系统的巡检方法及装置
CN115604164A (zh) 一种分布式定时消息系统测试方法、装置以及设备
CN106776597B (zh) 结构化数据的下载方法和装置
CN110727475B (zh) 基于配置化智能服务调用方法
CN113254332A (zh) 一种存储系统多场景测试方法、系统、终端及存储介质
CN113377652A (zh) 测试数据生成方法及装置
Zhang et al. An efficient Bayesian diagnosis for QoS management in service-oriented architecture
CN111711537B (zh) 备用主节点列表更新方法、装置及设备
CN113778976A (zh) 数据处理方法及装置、电子设备、存储介质
CN112463570B (zh) 一种日志统计方法、装置及系统
CN117997698A (zh) 一种区块链系统中的共识方法、装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant