微服务集群的调度方法、装置及介质与流程

文档序号:25957215发布日期:2021-07-20 17:16阅读:90来源:国知局
微服务集群的调度方法、装置及介质与流程

本申请涉及计算机技术领域,特别是涉及一种微服务集群的调度方法、微服务集群的调度装置及计算机存储介质。



背景技术:

微服务是目前互联网公司常用的架构,与传统单体架构相比,微服务架构更加适应互联网快速、灵活的特点。

微服务集群往往是由多个可灵活伸缩的微服务组成,多个微服务被部署在多台服务器上,通过多台服务器之间的相互通信和相互调用来执行任务。利用容器或插件式设计可以实现微服务集群的拆分、组装和部署等。

但在实际应用中,往往凭感觉或过往经验进行部署,如此不能有效利用资源,也无法达到微服务集群的最优性能。



技术实现要素:

本申请提供一种微服务集群的调度方法、微服务集群的调度装置及计算机存储介质,以解决相关技术中无法有效利用微服务集群资源的问题。

为解决上述技术问题,本申请提供一种微服务集群的调度方法。该方法包括:确定第一服务器中的第一微服务的第一资源的利用率大于第一阈值,获取第一微服务的扩展类型和第一资源的资源类型;若资源类型为不可释放资源,则迁移第一微服务到第二服务器;若资源类型为可释放资源,则基于第一微服务的扩展类型确定释放第一服务器中使用第一资源的第二微服务、扩展所述第一微服务到所述第二服务器或迁移第一微服务到第二服务器。

为解决上述技术问题,本申请提供一种微服务集群的调度装置。该装置包括处理器、存储器和通信电路,所述处理器耦接所述存储器、通信电路,在工作时执行指令,以配合所述存储器、通信电路实现上述的微服务集群的调度方法。

为解决上述技术问题,本申请提供一种计算机存储介质。所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述的微服务集群的调度方法的步骤。

本申请在第一服务器中的第一微服务的第一资源不足时,根据第一资源的资源类型确定是否直接迁移第一微服务到第二服务器。当第一资源为不可释放资源时,说明第一服务器无法提供更多第一资源,则迁移第一微服务到第二服务器;而当第一资源为可释放资源时,进一步根据第一微服务的扩展类型确定是利用本机服务器的第一资源,还是利用第二服务器中的第一资源,从而灵活地利用微服务集群的资源,优化微服务集群的性能。

附图说明

图1是本申请提供的微服务集群一实施例的结构示意图;

图2是本申请提供的微服务集群的调度方法一实施例的流程示意图;

图3是本申请提供的微服务集群的调度装置一实施例的结构示意图;

图4是本申请提供的计算机存储介质一实施例的结构示意图。

具体实施方式

为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本申请所提供的微服务集群的调度方法、微服务集群的调度装置及计算机存储介质做进一步详细描述。

请参阅图1,图1是本申请提供的微服务集群一实施例的结构示意图。

微服务集群10包括多个服务器11和至少一个迁移统筹中心12。

服务器11中部署有微服务。一个服务器11中可能运行有至少一个微服务,微服务之间相对独立。服务器11或微服务之间通过轻量级的协议进行交互,例如http、rpc等。

微服务的运行需要占用服务器11的核心资源,例如cpu、内存、网络和硬盘等。当某一微服务的业务负载较大的情况下,可能导致对一种或多种核心资源的需求或占用较大,而导致核心资源不足。

各服务器11之间以及各服务器11与迁移统筹中心12之间例如建立有心跳连接,通过心跳向迁移统筹中心12反馈各微服务的资源利用情况。

迁移统筹中心12存储有所有微服务的模板和配置,统一管理复制,迁移,初始配置等工作。便于统筹和管理,减少冲突。

当迁移统筹中心12检测到第一服务器11中的第一微服务对第一资源的利用率大于第一阈值时,说明第一服务器11中的第一资源相对不足,需要为第一微服务配置更多资源。

具体地,迁移统筹中心12获取所述第一微服务的扩展类型和所述第一资源的资源类型。当确定第一资源为不可释放资源时,迁移第一微服务到第二服务器11;而当第一资源为可释放资源时,进一步根据第一微服务的扩展类型确定是利用本机服务器11的第一资源,还是利用第二服务器11中的第一资源。从而灵活、充分地利用微服务集群的资源,优化微服务集群10的性能。

基于上述的微服务集群,实现如下实施例:

请参阅图2,图2是本申请提供的微服务集群的调度方法一实施例的流程示意图。本实施例包括如下步骤:

s210:确定第一服务器中的第一微服务的第一资源的利用率大于第一阈值,获取第一微服务的扩展类型和第一资源的资源类型。

微服务集群中的服务器定期向迁移统筹中心发送当前的运行的微服务的核心资源利用情况,迁移统筹中心监控各服务器中微服务对核心资源的利用率是否大于第一阈值。若确定第一服务器中的第一微服务所占用的第一资源的利用率大于第一阈值,确定第一微服务的第一资源不充足,则需要根据第一微服务的扩展类型和第一资源的资源类型执行相应的资源调度策略。

其中,资源类型可以包括可释放资源和不可释放资源。可释放资源是指在关闭微服务后,服务器可以将该资源释放出来的资源,例如cpu、网络带宽或内存空间等。不可释放资源是指在关闭微服务后,服务器的该资源仍然被占用,不能释放出来,例如磁盘空间等。

微服务划分有多种扩展类型,根据微服务的实例伸缩性能,微服务的扩展类型可以分为动态扩展服务和非动态扩展服务。

相较而言,动态扩展服务的实例数量可以更加灵活地伸缩,该类型的微服务在资源不足时,优先在微服务集群中增加实例数量。而非动态扩展服务,则优先从其所在的服务器获取资源,在所在的服务器资源不足时,才迁移或扩展到微服务集群中其他的服务器。

具体来讲,动态扩展服务的启动和关闭可以不与微服务集群的启动和关闭同步,因此动态扩展服务可根据资源的利用情况自动伸缩,其数量不固定。在资源不足时,动态扩展服务优先向其他服务器扩展(增加微服务实例);在资源充足,或与其他优先级更高的微服务存在资源冲突时,可以将动态扩展服务关闭,减少微服务实例。非动态扩展服务复制到其他服务器上的微服务,需要在微服务集群重启时方可启动,因此非动态扩展服务的数量相对固定,在资源不足时,为了降低微服务集群的重启次数,优先释放其所在的服务器的相关资源,在确定无法为其释放相关资源时,向其他服务器扩展或迁移(复制该微服务到其他服务器,并关闭资源不足的服务器上的微服务,微服务实例数量不变)。

非动态扩展服务进一步可分为静态扩展服务和非扩展服务。静态扩展服务的微服务实例数量可以增加、不变或减少,非扩展服务的微服务实例数量保持不变。

s220:若资源类型为不可释放资源,则迁移第一微服务到第二服务器。

若第一资源的资源类型为不可释放资源,说明第一服务器已经不能为第一微服务配置更多第一资源,即使继续开启也无法处理更多任务,此时需要迁移第一微服务到第二服务器,以降低第一微服务对其他资源的消耗。

本实施例中,迁移是指复制第一微服务到第二服务器,并且删除第一服务器中的第一微服务。扩展是指复制第一微服务到第二服务器,但并不删除第一服务器中的第一微服务,增加了微服务集群中第一位服务实例的数量。

s230:若资源类型为可释放资源,则基于第一微服务的扩展类型确定释放第一服务器中使用第一资源的第二微服务、扩展第一微服务到第二服务器或迁移第一微服务到第二服务器。

第一资源的资源类型为可释放资源的情况下,不同扩展类型的微服务对应的资源配置方法。

情况一,第一微服务的扩展类型为动态扩展服务。

动态扩展服务对应的微服务在核心资源不足时,首先尝试在微服务集群的其他服务器中扩展第一微服务实例。具体而言,先确定扩展第一微服务的目标服务器,即第二服务器,再在第二服务器上扩展第一微服务。

为了更好地缓解第一微服务对第一资源不足的情况,可以确定其他服务器中核心资源最大,且在该服务器上扩展第一微服务后不会造成核心资源冲突的服务器为第二服务器。

具体地,获取微服务集群中其他服务器的核心资源的剩余资源,核心资源至少包括第一资源。基于剩余资源,确定扩展第一微服务的第二服务器。将剩余资源按照从大到小排序,得到最大剩余资源。由于在服务器上扩展第一微服务不仅需要第一资源,还需要其他核心资源,为了降低第一微服务扩展后,造成扩展第一微服务的服务器上其他核心资源冲突,本实施例进一步比较最大剩余资源与配置第一微服务的需求资源。若最大剩余资源大于需求资源,则确定最大剩余资源对应的服务器为第二服务器。

若最大剩余资源不大于需求资源,即当微服务集群中不存在能够直接扩展第一微服务还不造成核心资源冲突的服务器时,则比较第一微服务的第一优先级与其他服务器中的第二微服务的第二优先级。其中,第二微服务与第一微服务存在核心资源的冲突。若第一优先级高于第二优先级,则确定第二微服务所在的服务器为第二服务器。关闭第二服务器上的第二微服务。

筛选确定第二服务器后,扩展第一微服务到第二服务器。

情况二,第一微服务的扩展类型为非动态扩展服务。

第一微服务的扩展类型为非动态扩展服务时,优先从第一服务器上为第一微服务调度第一资源。

具体地,检测第一服务器是否运行有占用第一资源的第三微服务。

当第一服务器中占用第一资源的其他微服务数量大于1时,可以将其他微服务对第一资源的占用情况进行排序,确定其中满足扩展类型为动态扩展服务、负载压力最小、对第一资源利用率未达到第一阈值等条件中的至少一种的微服务为第三微服务,以减小为第一微服务调度资源是对其他微服务的影响。

若存在第三微服务,则获取第一微服务的第一优先级,第三微服务的第三优先级。微服务的优先级可以是根据微服务的重要程度、服务性质等预设的。在微服务存在资源冲突时,优先保障第一服务器中优先级高的微服务的资源配置,关闭或迁移优先级低的微服务。比较第一优先级和第三优先级。若第一优先级大于第三优先级,则可将第一服务器上的第三微服务关闭,以释放第一微服务中的第一资源。

若第一服务器没有运行第三微服务,或第一优先级不高于第三优先级,则获取微服务集群中其他服务器的核心资源的剩余资源。基于剩余资源,确定扩展/迁移第一微服务的第二服务器。扩展/迁移第一微服务到第二服务器。

不同类型的非动态扩展服务确定第二服务器的方法不同。

当第一微服务的扩展类型为固定数量服务时,由于需要保持实例数量不变,迁移时需要整体复制到第二服务器上,因此要求第二服务器上的剩余资源大于第一服务器上的核心资源,如此第一微服务迁移到第二服务器后才能够缓解核心资源不足的问题。具体地,将其他服务器的剩余资源按照大小进行排序,选择其中剩余资源最大的服务器,并且进一步与第一服务器中的核心资源进行比较,确定其他服务器中剩余资源最大且剩余资源大于第一服务器中的核心资源的服务器为第二服务器。确定第二服务器后,迁移第一微服务到第二服务器。

当第一微服务的扩展类型为静态扩展微服务时,确定第二服务器的方法可以与动态扩展服务确定第二服务器的方法相同。静态扩展微服务的实例数量可以变化,因此筛选第二服务器时,可以不比较第一服务器的核心资源和其他服务器的核心资源之间的大小。然而确定第二服务器后,是迁移第一微服务到第二服务器还是扩展第一微服务到第二服务器,则需要根据迁移后微服务集群中第一微服务的负载情况进行判断。具体地,确定第二服务器后,复制第一微服务到第二服务器。判断微服务集群中第一微服务的负载是否大于负载阈值。若负载大于负载阈值,说明第一资源仍然紧张,则保留第一服务器中的第一微服务,即扩展第一微服务;若负载不大于负载阈值,说明第一资源不足的情况已得到缓解,则关闭第一服务器中的第一微服务,即迁移第一微服务。

根据上述方法无法确定第二服务器时,说明微服务集群中的第一资源不足,可以向用户告警,以提示用户增加微服务集群中的服务器或对微服务集群重新部署等。

本实施例中,通过将微服务划分为动态扩展服务、静态扩展服务和非扩展服务,并根据扩展类型不同为存在第一资源不足的第一微服务配置不同的资源调度策略,使得微服务集群的资源能够得到更合理的利用和调配。进一步地,根据微服务的优先级、第一微服务的负载等确定迁移/扩展第一微服务,能够降低对微服务集群中其他的微服务的影响,更合理地利用微服务集群的资源,优化微服务集群的性能。

请参阅图3,图3是本申请提供的微服务集群的调度装置一实施例的结构示意图。

本申请提供的一种微服务集群的调度装置300构成服务器集群的节点,微服务集群的调度装置包括处理器301、存储器302和通信电路303;处理器301耦接存储器302、通信电路303,在工作时执行指令,以配合存储器302、通信电路303实现上述的负载均衡方法。其中,存储器302用于存储第一微服务的第一资源的利用率、第一微服务的扩展类型和第一资源的资源类型。通信电路303用于接收微服务集群中各服务器中各资源的利用率。处理器302用于确定第一服务器中的第一微服务的第一资源的利用率大于第一阈值,获取第一微服务的扩展类型和第一资源的资源类型;确定资源类型为不可释放资源时,迁移第一微服务到第二服务器;确定资源类型为可释放资源时,基于第一微服务的扩展类型确定释放第一服务器中使用第一资源的第二微服务,或扩展/迁移第一微服务到第二服务器。

处理器301还可以称为cpu(centralprocessingunit,中央处理单元)。处理器301可能是一种集成电路芯片,具有信号的处理能力。处理器301还可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器301可以由集成电路芯片共同实现。

对于上述实施例的方法,其可以计算机程序的形式存在,因而本申请提出一种计算机存储介质,请参阅图4,图4是本申请提供的计算机存储介质一实施例的结构示意图。本实施例计算机存储介质400中存储有计算机程序401,其可被执行以实现上述实施例中的方法。

本实施例计算机存储介质400可以是u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等可以存储程序指令的介质,或者也可以为存储有该程序指令的服务器,该服务器可将存储的程序指令发送给其他设备运行,或者也可以自运行该存储的程序指令。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

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