【技术实现步骤摘要】
微服务架构的变更检测方法、装置、服务器及存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种微服务架构的变更检测方法、装置、服务器及存储介质。
技术介绍
随着微服务和敏捷研发模式的盛行,各个互联网公司、商业银行等头部IT企业基本都转向了多项目组协同开发的分布式、频繁迭代的研发模式。这种研发模式有很多优点,比如可以更快速灵活的响应外部市场环境的变化,更早的交付客户价值,微服务松耦合的开发部署方式使得每一个组件可以由不同的团队、不同的编程语言独立进行开发和部署、降低了单个组件的复杂度等等。在传统瀑布研发模式下,变更控制流程由变更申请、变更方案审核、变更实施、变更影响分析、变更验证等环节严格的控制来保证变更后的系统行为可控且符合设计者预期的行为,尽可能的消除变更给系统带来的不确定性和风险。但是,在微服务架构下客户视角下一个完整的业务功能和流程,会调用由很多团队开发的不同服务,没有人可以从全局视角分析单个服务的变更影响,任何一个微小的变更往往会给整体的系统的行为带来不可控的巨大风险。因此,如何识别变更服务以及从全局视角分析该变更服务的影响成为亟待解决的问题。
技术实现思路
本专利技术提供一种微服务架构的变更检测方法、装置、服务器及存储介质,以实现精准识别新版本的变更服务,以及从全局视角分析该变更服务的影响。第一方面,本专利技术实施例提供了一种微服务架构的变更检测方法,包括:确定各组件的版本变更前后出现差异的目标代码行,获取包含所述目标代码行的目标组件的组件标识;根据所述目 ...
【技术保护点】
1.一种微服务架构的变更检测方法,其特征在于,包括:/n确定各组件的版本变更前后出现差异的目标代码行,获取包含所述目标代码行的目标组件的组件标识;/n根据所述目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息,其中,所述对应关系用于表示组件、服务和代码行之间的包含关系;/n确定所述标识信息对应的服务变更对所述目标组件的调用链路的影响状态。/n
【技术特征摘要】
1.一种微服务架构的变更检测方法,其特征在于,包括:
确定各组件的版本变更前后出现差异的目标代码行,获取包含所述目标代码行的目标组件的组件标识;
根据所述目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息,其中,所述对应关系用于表示组件、服务和代码行之间的包含关系;
确定所述标识信息对应的服务变更对所述目标组件的调用链路的影响状态。
2.根据权利要求1所述的方法,其特征在于,所述确定各组件的版本变更前后出现差异的目标代码行,包括:
比对各组件的相邻版本的源代码,根据比对结果确定版本变更前后出现差异的目标代码行。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息,包括:
根据组件、服务和代码行的对应关系,确定所述组件标识对应的目标组件包含的各服务,以及各服务对应的代码行的行号;
根据所述目标代码行的行号匹配各服务对应的代码行的行号,得到发生变更的服务的标识信息。
4.根据权利要求1所述的方法,其特征在于,所述确定所述标识信息对应的服务变更对所述目标组件的调用链路的影响状态,包括:
解析所述目标组件的源代码,得到属性信息和函数信息;
根据所述属性信息和函数信息构建所述目标组件的函数级调用链路,其中,所述函数级调用链路中的每个节点代表一个函数;
基于所述函数级调用链路确定所述目标组件的服务生产者和服务消费者的设计态调用关系;
当所述设计态调用关系中的服务生产者或服务消费者与所述标识信息相同的情况下,确定服务变更对所述目标组件的包含所述设计态调用关系的调用链路产生影响。
5.根据权利要求4所述的方法,其特征在于,所述基于所述函数级调用链路确定所述目标组件的服务生产者和服务消费者的设计态调用关系,包括:
采用各入口函数遍历所述函数级调用链路中的节点,得到所有可达的目标节点;
比对所述目标节点代表的函数与出口函数,得到与所述入口函数连通的出口函数;
根据具有连通关系的入口函数和出口函数确定所述目标组件的服务生产者和服务消费者,确定所述入口函数对应的所述服务生产者与所述出口函数对应的所述服务消费者之间具有调用关系。
6.根据权利要求5所述的方法,其特征在于,所述根据具有连通关系的入口函数和出口函数确定所述目标组件的服务生产者和服务消费者,包括:
解析所述入口函数得到第一服务标识,根据所述第一服务标识确定所述目标组件的服务生产者;
解析与所述入口函数具有连通关系的出口函数得到第二服务标识,根据所述第二服务标识确定所述目标组件的服务消费者。
7.根据权利要求4所述的方法,其特征在于,在基于所述函数级调用链路确定所述目标组件的服务生产者和服务消费者的设计态调用关系之后,还包括:
根据所述标识信息对应的服务生产者查询所述设计态调用关系,确定与所述标识信息对应的服务生产者具有调用关系的目标服务消费者;
基于所述目标服务消费者生成所述标识信息对应的服务生产者的服务消费者列表。
8.根据权利要求7所述的方法,其特征在于,所述当所述设计态调用关系中的服务生产者或服务消费者与所述标识信息相同的情况下,确定服务变更对所述目标组件的包含所述设计态调用关系的调用链路产生影响,包括:
匹配所述标识信息与所述设计态调用关系中的服务生产者;
当匹配结果是所述服务生产者与所述标识信息相同的情况下,基于所述服务生产者以及对应的服务消费者列表中的目标服务消费者确定第一调用关系;
确定服务变更对所述目标组件的包含所述第一调用关系的调用链路产生影响。
9.根据权利要求4所述的方法,其特征在于,在基于所述函数级调用链路确定所述目标组件的服务生产者和服务消费者的设计态调用关系之后,还包括:
根据所述标识信息对应的服务消费者查询所述设计态调用关系,确定与所述标识信息对应的服务消费者具有调用关系的目标服务生产者;
基于所述目标服务生产者生成所述标识信息对应...
【专利技术属性】
技术研发人员:尹盛,
申请(专利权)人:建信金融科技有限责任公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。