基于调用流量分析预测的微服务动态聚合拆分系统的制作方法

文档序号:20676856发布日期:2020-05-08 17:56阅读:278来源:国知局
基于调用流量分析预测的微服务动态聚合拆分系统的制作方法

本发明涉及微服务聚合拆分技术领域,特别是涉及一种基于调用流量分析预测的微服务动态聚合拆分系统。



背景技术:

现有技术中,基于容器的弹性资源供给方法是:根据容器的资源利用率,对容器内的服务动态的启停,以在不同的场景下实现系统资源的合理分配,避免在流量峰值时造成宕机。基于微服务响应时间的系统资源优化方案是:通过统计不同微服务的响应时间变化,预估系统当前资源压力和网络压力,同时再次对系统资源进行分配,在现有资源下达到期望的响应时间。

公开号为cn105631196b,名称为一种面向微服务架构的容器级弹性资源供给系统及方法的专利申请中,公开了服务架构的容器级弹性资源供给系统及方法。但是,该专利中的方法并不是基于场景的调用链统计,而是将微服务割裂开来,只对各个独立的微服务调用量做出统计,因此并不能实现微服务之间的拓扑分析,为微服务聚合和拆分提供数据基础。

另外,该方法中的预测模型不能将实时的流量数据作为输入为决策提供修正条件,动态生成新的规划和决策。



技术实现要素:

本发明的目的在于提供一种基于调用流量分析预测的微服务动态聚合拆分系统,可以解决在整个微服务系统的流量变化过程中资源分配不均导致系统资源被浪费,微服务实例配比分布不合理的问题。

为实现上述目的,本发明提供了一种基于调用流量分析预测的微服务动态聚合拆分系统,包括:调用链流量分析统计模块,该模块根据整个微服务系统的调用链统计信息,并分析得出每个服务的调用量随时序的变化和每个微服务之间的调用拓扑关系进而提供数据支持;流量趋势智能预测模块,该模块基于数据支持采用趋势预测模型提前做出流量趋势变化的实时决策;微服务自动部署扩缩容模块,该模块基于实时决策,对不同的微服务实例进行动态的扩容或缩容;以及微服务路径扫描和聚合拆分模块,该模块通过扫描微服务的路径,对微服务进行动态的拆分或聚合。

当前微服务大潮下,越来越多的团队开始采用微服务的架构。微服务带来的好处很多,但而从单体应用拆分成微服务的过程却一直是难点。并且对很多项目来说,拆分后因为业务的变动拆分时候的局限性,拆分粒度并不能完全符合拆分的目的,后期可能要对已经拆分的服务进行重新的聚合或二次拆分。这个过程通常需要人工干预手动完成。并且因为一些临时的场景,不同的微服务服务调用量会出现非常大的波动。而目前尚没有一个根据整个系统的流量状况从而做出智能决策,从而使整个系统的资源能得到最大化利用的技术。本方案所提出的技术基于调用链的统计信息,通过智能决策模型,可以解决在整个微服务系统的流量变化过程中资源分配不均导致系统资源被浪费,微服务实例配比分布不合理的问题。

可选的或优选的,调用链统计信息包括每个服务被调用的次数,以及上游调用方和下游的被调用方的信息。

可选的或优选的,分析每个服务的调用量随时序的变化时,得出日变化、周变化数据。

可选的或优选的,流量趋势智能预测模块做出流量趋势变化的实时决策时,根据实时流量的变化趋势,作为预测模型的实时输入,对流量趋势做出实时纠正和曲线纠正。

可选的或优选的,微服务自动部署扩缩容模块根据实时获取的实时策略对不同的服务进行优雅启停,提前对业务场景的变化和需求做出响应。

可选的或优选的,对微服务进行动态的拆分或聚合时:对于多个场景下均处于同一连续调用链的微服务,聚合为一个新的微服务;对于在一个微服务内,用来将该微服务二次拆分,并在新拆分后的微服务后部署不同实例数量。

可选的或优选的,微服务路径扫描和聚合拆分模块根据后期业务场景变化重新调整微服务间的调用关系,并重新规划微服务的粒度。

可选的或优选的,微服务路径扫描和聚合拆分模块用来直接对已经重新规划好的微服务进行灰度发布。

本发明提供的技术方案带来的有益效果是:

1.与以往的动态扩缩容不同,可以根据实时流量趋势分析,基于预测模型,提前对系统资源进行分配和实例伸缩。

2.可以根据业务端到端的调用链统计信息分析模块,得出微服务间的聚合和拆分建议,聚合使服务间调用的网络成本降低,响应更快,而拆分使业务更加灵活,扩缩容的系统资源利用率更高。

3.基于调用链的统计分析,可以更准确的得到不同业务场景下的流量特征信息并纳入预测模型,在相似场景出现时,预测模型可以更准确的得到流量的趋势变化,更早的做出更精准的响应。

附图说明

图1是本发明实施例提供的基于调用流量分析预测的微服务动态聚合拆分系统的架构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。显然,所描述的实施例实际上仅仅是说明性的或者示例性的,决不作为对本发明及其应用或使用的任何限制。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的全部细节均已了解的情况下实施。下面对实施例的描述仅仅是为了通过展示本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

如图1所示,本实施例提供一种基于调用流量分析预测的微服务动态聚合拆分系统,包括调用链流量分析统计模块101、流量趋势智能预测模块102、微服务自动部署扩缩容模块103和微服务路径扫描和聚合拆分模块104。

下文以一种优选的实施方式,对该四个模块进行详细介绍:

1.调用链流量分析统计模块

本模块根据整个微服务系统的调用链统计信息,分析出每个服务被调用的次数,上游调用方和下游的被调用方的信息,在该模块统计后得到两个信息:1.得到每个服务的调用量随时序的变化,统计出日变化,周变化等,为之后的流量趋势分析和预测做数据准备;2.得到微服务之间的调用拓扑关系,哪些微服务在大部分场景中在同一条调用链上被重复调用,哪些微服务只是内部某个方法被频繁调用,其他的调用量很少,可以考虑到将这些微服务做聚合或拆分。得到这些统计数据之后做微服务聚合分析提供数据支持。

2.流量趋势智能预测模块

该模块的实现和运行基于调用链流量统计分析模块的数据支持。流量趋势智能预测模块可以根据已有的调用链历史统计数据,不同场景时的服务调用变化和趋势,并采用趋势预测模型,结合当前的调用链数据变化趋势,提前做出流量趋势的变化预测,并将决策发送给自动扩缩容模块,实现系统的提前预警和资源准备。并且该系统还能根据实时流量的变化趋势,作为预测模型的实时输入,对流量趋势做出实时纠正和曲线纠正,更新决策并动态规划。

3.微服务自动部署扩缩容模块

该模块基于流量趋势智能预测模块的实时决策,对不同的微服务实例进行动态的扩容或缩容,以适应当前场景下的流量分配需求,实现系统资源利用最大化。该模块实现的实时获取策略,对不同的服务进行优雅启停,在不影响在途业务的情况下,提前对业务场景的变化和需求做出响应,在已有系统资源不变的前提下,完成微服务实例的动态规划以应对场景对应的需求。

4.微服务路径扫描和聚合拆分模块

该模块为系统的二次优化提供支持。根据调用链流量分析统计模块的分析结果,得到整个微服务调用链的拓扑关系和聚合度分析。在多个场景下均处于同一连续调用链的微服务,可以聚合为一个新的微服务,减少服务间调用的网络开销和监控成本。而在一个为服务内,如果不同的方法调用量相差很大,可以考虑将微服务二次拆分,并在新拆分后的微服务后部署不同实例数量。该模块解决了微服务拆分初期规划不合理的问题,后期随着业务场景变化,要重新对微服务间的调用关系做出梳理,并重新规划微服务的粒度。

通过扫描微服务的路径,动态的对这些微服务拆分或聚合。并可以直接对已经重新规划好的微服务进行灰度发布,观测系统的运行状态。

综上,本实施例的基于调用流量分析预测的微服务动态聚合拆分系统,与以往的动态扩缩容不同,可以根据实时流量趋势分析,基于预测模型,提前对系统资源进行分配和实例伸缩。可以根据业务端到端的调用链统计信息分析模块,得出微服务间的聚合和拆分建议,聚合使服务间调用的网络成本降低,响应更快,而拆分使业务更加灵活,扩缩容的系统资源利用率更高。基于调用链的统计分析,可以更准确的得到不同业务场景下的流量特征信息并纳入预测模型,在相似场景出现时,预测模型可以更准确的得到流量的趋势变化,更早的做出更精准的响应。

除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利发明说明书以及权利要求书中使用的″第一″、″第二″以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,″一个″或者″一″等类似词语也不表示数量限制,而是表示存在至少一个。

以上所述仅为本发明的示例实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1