微服务架构的变更检测方法、装置、服务器及存储介质制造方法及图纸

技术编号:27006137 阅读:24 留言:0更新日期:2021-01-08 17:09
本发明专利技术实施例公开了一种微服务架构的变更检测方法、装置、服务器及存储介质。该方法包括:确定各组件的版本变更前后出现差异的目标代码行,获取包含目标代码行的目标组件的组件标识;根据目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息,其中,对应关系用于表示组件、服务和代码行之间的包含关系;确定标识信息对应的服务变更对目标组件的调用链路的影响状态。本发明专利技术实施例通过对比版本变化前后的代码差异,确定发生变化的代码行,基于组件、服务和代码行的对应关系,确定服务的变更以及服务变更对目标组件的调用链路的影响状态,实现了精准识别新版本的变更服务,以及从全局视角分析该变更服务的影响。

【技术实现步骤摘要】
微服务架构的变更检测方法、装置、服务器及存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种微服务架构的变更检测方法、装置、服务器及存储介质。
技术介绍
随着微服务和敏捷研发模式的盛行,各个互联网公司、商业银行等头部IT企业基本都转向了多项目组协同开发的分布式、频繁迭代的研发模式。这种研发模式有很多优点,比如可以更快速灵活的响应外部市场环境的变化,更早的交付客户价值,微服务松耦合的开发部署方式使得每一个组件可以由不同的团队、不同的编程语言独立进行开发和部署、降低了单个组件的复杂度等等。在传统瀑布研发模式下,变更控制流程由变更申请、变更方案审核、变更实施、变更影响分析、变更验证等环节严格的控制来保证变更后的系统行为可控且符合设计者预期的行为,尽可能的消除变更给系统带来的不确定性和风险。但是,在微服务架构下客户视角下一个完整的业务功能和流程,会调用由很多团队开发的不同服务,没有人可以从全局视角分析单个服务的变更影响,任何一个微小的变更往往会给整体的系统的行为带来不可控的巨大风险。因此,如何识别变更服务以及从全局视角分析该变更服务的影响成为亟待解决的问题。
技术实现思路
本专利技术提供一种微服务架构的变更检测方法、装置、服务器及存储介质,以实现精准识别新版本的变更服务,以及从全局视角分析该变更服务的影响。第一方面,本专利技术实施例提供了一种微服务架构的变更检测方法,包括:确定各组件的版本变更前后出现差异的目标代码行,获取包含所述目标代码行的目标组件的组件标识;根据所述目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息,其中,所述对应关系用于表示组件、服务和代码行之间的包含关系;确定所述标识信息对应的服务变更对所述目标组件的调用链路的影响状态。第二方面,本专利技术实施例还提供了一种微服务架构的变更检测装置,包括:代码行确定模块,用于确定各组件的版本变更前后出现差异的目标代码行,获取包含所述目标代码行的目标组件的组件标识;服务标识确定模块,用于根据所述目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息,其中,所述对应关系用于表示组件、服务和代码行之间的包含关系;影响状态确定模块,用于确定所述标识信息对应的服务变更对所述目标组件的调用链路的影响状态。第三方面,本专利技术实施例还提供了一种服务器,所述服务器包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术任意实施例提供的微服务架构的变更检测方法。第四方面,本专利技术实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本专利技术任意实施例提供的微服务架构的变更检测方法。本专利技术实施例通过确定各组件的版本变更前后出现差异的目标代码行,获取包含目标代码行的目标组件的组件标识,根据目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息,确定该标识信息对应的服务变更对该目标组件的调用链路的影响状态。本专利技术实施例通过对比版本变化前后的代码差异,确定发生变化的代码行,并基于组件、服务和代码行的对应关系,根据代码行的变更确定其所属服务的变更,进而确定服务变更对目标组件的调用链路的影响状态,实现了精准识别新版本的变更服务,以及从全局视角分析该变更服务的影响。附图说明图1是本专利技术实施例一提供的一种微服务架构的变更检测方法的流程图;图2是本专利技术实施例二提供的另一种微服务架构的变更检测方法的流程图;图3是本专利技术实施例三提供的一种微服务架构的变更检测装置的结构示意图;图4为本专利技术实施例四提供的一种服务器的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1是本专利技术实施例一提供的一种微服务架构的变更检测方法的流程图,本实施例可适用于微服务架构下组件版本变更的情况,该方法可以由微服务架构的变更检测装置来执行,该装置可以采用软件和/或硬件的方式实现。该装置可配置于服务器中。如图1所示,该方法包括:步骤S101、确定各组件的版本变更前后出现差异的目标代码行,获取包含目标代码行的目标组件的组件标识。组件的版本变更可以是组件内部源代码发生改变,用于将旧版本的系统更新至新版本的系统,例如,可以是变更组件中某些代码行。一个完整的系统中可以包括多个组件,各个组件可以由不同的团队进行开发。组件是对数据和方法的封装,例如业务组件是对相关数据和方法的封装,可以提供多个业务功能。服务是组件暴露在外部的接口,用于和其他组件相互调用。一个组件可以有0个、1个或多个服务,不同的组件之间可以通过服务进行相互调用。当组件的版本变更时,内部源代码发生改变,组件内的服务也可能发生改变。目标代码行可以是变更后组件的源代码与变更前该组件的源代码相比,出现差异的代码行,用于确定组件的版本变更时的变更点。目标组件可以是包含目标代码行的组件,用于确定发生版本变更的组件。组件标识用于唯一标识目标组件,例如,可以是组件的名称或物理地址等。具体地,服务器比对各组件的版本变更前后的源代码,确定各组件的源代码中在版本变更前后出现差异的目标代码行,获取包含目标代码行的目标组件的组件标识。比对各组件的版本变更前后的源代码可以通过代码比较工具进行比对,例如,BeyondCompare、版本控制系统(subversion,SVN)或其他可以用于比对源代码的工具。步骤S102、根据目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息。其中,对应关系用于表示组件、服务和代码行之间的包含关系。代码行发生变更,可以导致该代码行所属的服务发生变更。服务发生变更,可以导致该服务所属的组件发生变更。发生变更的代码行与其所属的服务之间存在对应关系,该服务与其所属的组件之间存在对应关系,因此,组件、服务和代码行之间存在对应关系。服务的标识信息用于唯一标识服务,例如,可以是服务的名称或物理地址等。具体地,预先建立组件、服务和代码行的对应关系,服务器根据目标代码行和组件标识,在预先建立的对应关系中查询该目标代码行与其所属的服务和组件之间的对应关系,得到该目标代码行所属的服务的标识信息。也就是说,通过预先建立组件、服务和代码行之间的对应关系,根据代码行的变更确定代码行所属的服务的变更。步骤S103、确定标识信息对应的服务变更对目标组件的调用链路的影响状态。目标组件的调用链路用于确定目标组件内的各个服务与其他组件的服务之间的调用关系。若目标组件内的服务发生变更,且该服务在目标组件的调用链路中,该服务的变更本文档来自技高网...

【技术保护点】
1.一种微服务架构的变更检测方法,其特征在于,包括:/n确定各组件的版本变更前后出现差异的目标代码行,获取包含所述目标代码行的目标组件的组件标识;/n根据所述目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息,其中,所述对应关系用于表示组件、服务和代码行之间的包含关系;/n确定所述标识信息对应的服务变更对所述目标组件的调用链路的影响状态。/n

【技术特征摘要】
1.一种微服务架构的变更检测方法,其特征在于,包括:
确定各组件的版本变更前后出现差异的目标代码行,获取包含所述目标代码行的目标组件的组件标识;
根据所述目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息,其中,所述对应关系用于表示组件、服务和代码行之间的包含关系;
确定所述标识信息对应的服务变更对所述目标组件的调用链路的影响状态。


2.根据权利要求1所述的方法,其特征在于,所述确定各组件的版本变更前后出现差异的目标代码行,包括:
比对各组件的相邻版本的源代码,根据比对结果确定版本变更前后出现差异的目标代码行。


3.根据权利要求1所述的方法,其特征在于,所述根据所述目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息,包括:
根据组件、服务和代码行的对应关系,确定所述组件标识对应的目标组件包含的各服务,以及各服务对应的代码行的行号;
根据所述目标代码行的行号匹配各服务对应的代码行的行号,得到发生变更的服务的标识信息。


4.根据权利要求1所述的方法,其特征在于,所述确定所述标识信息对应的服务变更对所述目标组件的调用链路的影响状态,包括:
解析所述目标组件的源代码,得到属性信息和函数信息;
根据所述属性信息和函数信息构建所述目标组件的函数级调用链路,其中,所述函数级调用链路中的每个节点代表一个函数;
基于所述函数级调用链路确定所述目标组件的服务生产者和服务消费者的设计态调用关系;
当所述设计态调用关系中的服务生产者或服务消费者与所述标识信息相同的情况下,确定服务变更对所述目标组件的包含所述设计态调用关系的调用链路产生影响。


5.根据权利要求4所述的方法,其特征在于,所述基于所述函数级调用链路确定所述目标组件的服务生产者和服务消费者的设计态调用关系,包括:
采用各入口函数遍历所述函数级调用链路中的节点,得到所有可达的目标节点;
比对所述目标节点代表的函数与出口函数,得到与所述入口函数连通的出口函数;
根据具有连通关系的入口函数和出口函数确定所述目标组件的服务生产者和服务消费者,确定所述入口函数对应的所述服务生产者与所述出口函数对应的所述服务消费者之间具有调用关系。


6.根据权利要求5所述的方法,其特征在于,所述根据具有连通关系的入口函数和出口函数确定所述目标组件的服务生产者和服务消费者,包括:
解析所述入口函数得到第一服务标识,根据所述第一服务标识确定所述目标组件的服务生产者;
解析与所述入口函数具有连通关系的出口函数得到第二服务标识,根据所述第二服务标识确定所述目标组件的服务消费者。


7.根据权利要求4所述的方法,其特征在于,在基于所述函数级调用链路确定所述目标组件的服务生产者和服务消费者的设计态调用关系之后,还包括:
根据所述标识信息对应的服务生产者查询所述设计态调用关系,确定与所述标识信息对应的服务生产者具有调用关系的目标服务消费者;
基于所述目标服务消费者生成所述标识信息对应的服务生产者的服务消费者列表。


8.根据权利要求7所述的方法,其特征在于,所述当所述设计态调用关系中的服务生产者或服务消费者与所述标识信息相同的情况下,确定服务变更对所述目标组件的包含所述设计态调用关系的调用链路产生影响,包括:
匹配所述标识信息与所述设计态调用关系中的服务生产者;
当匹配结果是所述服务生产者与所述标识信息相同的情况下,基于所述服务生产者以及对应的服务消费者列表中的目标服务消费者确定第一调用关系;
确定服务变更对所述目标组件的包含所述第一调用关系的调用链路产生影响。


9.根据权利要求4所述的方法,其特征在于,在基于所述函数级调用链路确定所述目标组件的服务生产者和服务消费者的设计态调用关系之后,还包括:
根据所述标识信息对应的服务消费者查询所述设计态调用关系,确定与所述标识信息对应的服务消费者具有调用关系的目标服务生产者;
基于所述目标服务生产者生成所述标识信息对应...

【专利技术属性】
技术研发人员:尹盛
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:上海;31

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

1