当前位置: 首页 > 专利查询>北京大学专利>正文

一种基于耦合度的微服务在线分配方法与系统技术方案

技术编号:26890440 阅读:47 留言:0更新日期:2020-12-29 16:06
本发明专利技术公布了一种基于耦合度的微服务在线分配方法与系统,通过计算微服务之间的耦合度,对所有微服务进行分组,并将同一组内的微服务分配到同一个硬件节点上,降低网络通信开销,缩短请求响应时间,实现基于微服务架构的系统中微服务在线分配的优化;包括获取请求执行路径与资源监控数据、根据请求执行路径计算微服务之间的耦合度、基于耦合度将微服务划分为不同的微服务分组MicroServPod、基于微服务之间的资源竞争关系将微服务分组划分为微服务细分组SubMicroServPod、根据每个SubMicroServPod的资源消耗总量将SubMicroServPod在线分配到硬件节点上,实现基于微服务架构的系统中微服务在线分配的优化,缩短服务请求的响应时间,提高服务效率,提升系统运行性能。

【技术实现步骤摘要】
一种基于耦合度的微服务在线分配方法与系统
本专利技术涉及云计算技术,尤其涉及一种基于耦合度的微服务在线分配方法与系统,实现基于微服务架构的系统中微服务在线分配的优化,缩短服务请求的响应时间,提高服务效率,提升系统运行性能。
技术介绍
随着软件系统变得越来越庞大与复杂,微服务架构被广泛应用到软件系统中。在微服务架构中,软件系统由多个松耦合的可独立开发与部署的微服务组成,不同的微服务部署在不同的硬件节点上。用户发起服务请求,一个服务请求会经过多个不同的微服务的处理,不同的微服务完成不同的计算任务并通过轻量级的网络协议进行交互,进而共同协作响应系统中的服务请求。微服务架构降低了大型软件系统开发与维护的难度,使得持续开发和部署成为可能。但由于微服务之间存在复杂的依赖关系,使得微服务之间通过网络发生频繁且复杂的相互调用,增加了软件系统整体的网络通信成本,进而影响了软件系统的性能。随着微服务划分的粒度越来越细,微服务的数量越来越多,微服务之间的网络通信成本成为影响微服务架构软件系统性能的主要因素之一。为了解决微服务之间因巨大的网络通信成本导致的系统本文档来自技高网...

【技术保护点】
1.一种基于耦合度的微服务在线分配方法,通过计算微服务之间的耦合度,对所有微服务进行分组,并将同一组内的微服务分配到同一个硬件节点上,降低频繁的网络通信导致的系统开销,缩短请求响应时间,实现基于微服务架构的系统中微服务在线分配的优化;包括如下步骤:/n1)获取请求执行路径与资源监控数据:/n捕获由多个微服务组成的软件系统端到端处理服务请求的过程,即生成请求执行路径,请求执行路径为有向无环图,图中的每一个顶点表示与处理一个服务请求相关的事件,每一条边代表事件之间的因果关系;/n获取的资源监控数据包括每个微服务的资源使用数据与每个硬件节点上的剩余可用资源数据;每个微服务的资源使用数据包括单位时间每...

【技术特征摘要】
1.一种基于耦合度的微服务在线分配方法,通过计算微服务之间的耦合度,对所有微服务进行分组,并将同一组内的微服务分配到同一个硬件节点上,降低频繁的网络通信导致的系统开销,缩短请求响应时间,实现基于微服务架构的系统中微服务在线分配的优化;包括如下步骤:
1)获取请求执行路径与资源监控数据:
捕获由多个微服务组成的软件系统端到端处理服务请求的过程,即生成请求执行路径,请求执行路径为有向无环图,图中的每一个顶点表示与处理一个服务请求相关的事件,每一条边代表事件之间的因果关系;
获取的资源监控数据包括每个微服务的资源使用数据与每个硬件节点上的剩余可用资源数据;每个微服务的资源使用数据包括单位时间每个微服务的CPU使用量、内存使用量等;
2)根据请求执行路径计算得到微服务耦合度,用于量化微服务之间的依赖程度;
基于在一定的时间窗口内的目标系统中生成的所有请求执行路径,计算得到微服务之间的网络交互的频率与平均网络消息的大小并计算任意两个微服务之间的耦合度,从而生成所有微服务之间的依赖关系图;图中的每个顶点代表一个微服务;每条边为无向边,代表相互连通的两个微服务之间的耦合度;
3)基于微服务耦合度将所有微服务划分到互不相交的k个微服务分组MicroServPod;每个MicroServPod包括一组存在较强相互依赖关系的微服务;同一MicroServPod中的不同微服务之间的耦合度高,而不同MicroServPods中微服务之间的耦合度低;
4)基于微服务之间的资源竞争关系将MicroServPod划分为微服务细分组SubMicroServPod;包括如下过程:
根据步骤1)得到的每个微服务的资源使用数据,计算每个微服务的预期资源使用量,包括:CPU,内存,带宽,磁盘IO,并判断微服务间是否存在显著资源竞争关系;
将一个MicroServPod中具有显著资源竞争关系的微服务划分到不同的SubMicroServPod中,使得每个SubMicroServPod中不存在具有显著竞争关系的微服务,且每个SubMicroServPod的所有微服务的资源消耗总量不超过单个硬件节点的资源总量或指定的阈值;
5)根据每个SubMicroServPod的资源消耗总量,基于SubMicroServPod对微服务进行分配;包括如下过程:
以SubMicroServPod为最小单位进行微服务分配,将同一个SubMicroServPod中的所有微服务分配到同一个节点上运行,将属于同一MicroServPod的不同SubMicroServPod的微服务分配到不同的节点上;
根据一个节点上剩余的资源总量和一个SubMicroServPod中预期的资源使用总量确定一个SubMicroServPod中的所有微服务是否分配到该节点上;
通过上述步骤,将每一个SubMicroServPod中的所有微服务分配至硬件节点上运行,即实现基于耦合度的微服务的在线分配。


2.如权利要求1所述基于耦合度的微服务在线分配方法,其特征是,步骤1)具体利用分布式追踪技术,捕获由多个微服务组成的软件系统端到端处理服务请求;具体利用资源监控工具,获取资源监控数据;所述获取请求执行路径与资源监控数据包括从线上的系统、测试系统和预上线系统环境中获取。


3.如权利要求1所述基于耦合度的微服务在线分配方法,其特征是,步骤2)具体根据微服务之间的网络通信频率与网络消息的大小计算微服务之间的耦合度,步骤3)采用谱聚类算法将所有微服务划分到不同的MicroServPod,步骤4)根据一个MicroServPod中微服务之间的资源竞争关系将其进一步划分为不同的SubMicroServPod;包括如下过程:
耦合度计算子模块根据请求执行路径计算微服务之间的耦合度,从请求执行路径中提取网络通信相关的事件与因果关系,从而计算出在一定时间窗口内两个微服务之间的网络通信频率和网络消息的平均大小,并据此计算两个微服务之间的耦合度,生成微服务之间的依赖关系图;
MicroServPod划分子模块基于耦合度将所有微服务划分为不同的MicroServPods,使用谱聚类方法,在微服务之间的依赖关系图上将所有微服务划分为k个互不相交的子图,每个子图中的所有微服务组成一个MicroServPod;一个MicroServPod中微服务之间具有较高的耦合度,不同MicroServPod之间的微服务的耦合度较低;
SubMicroServPod划分子模块基于微服务之间的资源竞争关系将每个MicroServPod划分为...

【专利技术属性】
技术研发人员:李影杨勇王康瑾张齐勋
申请(专利权)人:北京大学
类型:发明
国别省市:北京;11

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

1