首页> 中国专利> 微服务的部署方法及其设备、计算机存储介质

微服务的部署方法及其设备、计算机存储介质

摘要

本发明提供一种微服务的部署方法及其设备、计算机存储介质,属于微服务技术领域,其可至少部分解决现有的微服务的部署方法的网络延迟的问题。本发明的一种微服务的部署方法,包括:接收微服务请求,所述微服务请求包含多个微服务数据;根据所述微服务请求的请求信息得到多个所述微服务数据的处理顺序,以形成第一微服务链条;获取多个可利用物理主机的可利用信息的数量;依据所述可利用物理主机的可利用信息的数量,将所述第一微服务链条中的所述微服务数据部署至所述可利用物理主机中。

著录项

  • 公开/公告号CN113268251A

    专利类型发明专利

  • 公开/公告日2021-08-17

    原文格式PDF

  • 申请/专利权人 中国联合网络通信集团有限公司;

    申请/专利号CN202110570730.5

  • 发明设计人 程筱彪;徐雷;贾宝军;

    申请日2021-05-25

  • 分类号G06F8/60(20180101);G06F9/50(20060101);

  • 代理机构11112 北京天昊联合知识产权代理有限公司;

  • 代理人彭瑞欣;柴亮

  • 地址 100033 北京市西城区金融大街21号

  • 入库时间 2023-06-19 12:16:29

说明书

技术领域

本发明属于微服务技术领域,具体涉及一种微服务的部署方法及其设备、计算机存储介质。

背景技术

微服务(或微服务架构)是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。微服务的主要思想是将应用分程序解成更小粒度的多项服务,每项服务由多个容器组成,这种架构的缺点之一就是增加了各微服务之间的通信,导致整个服务的网络延迟增加,尤其是跨主机封装和解封装的过程造成较高的网络延迟。

发明内容

本发明至少部分解决现有的微服务的部署方法的网络延迟的问题,提供一种能够大大减小网络延迟的微服务的部署方法。

解决本发明技术问题所采用的技术方案是一种微服务的部署方法,包括:

接收微服务请求,所述微服务请求包含多个微服务数据;

根据所述微服务请求的请求信息得到多个所述微服务数据的处理顺序,以形成第一微服务链条;

获取多个可利用物理主机的可利用信息的数量;

依据所述可利用物理主机的可利用信息的数量,将所述第一微服务链条中的所述微服务数据部署至所述可利用物理主机中。

进一步优选的是,所述第一微服务链条为{V1,V2,……,Vp},其中Vp表示第p个需要处理的微服务数据;所述依据所述可利用物理主机的可利用信息的数量,将所述第一微服务链条中的所述微服务数据部署至所述可利用物理主机中包括:根据可利用信息的数量的由多到少,对所述可利用物理主机进行编号,第n可利用物理主机为可利用信息的数量第n多的可利用物理主机;将所述第一微服务链条中的微服务数据按照处理顺序依次部署至所述可利用物理主机中,所述可利用物理主机的部署顺序与所述可利用物理主机的编号一致。

进一步优选的是,所述将所述第一微服务链条中的微服务数据按照处理顺序依次部署至所述可利用物理主机中,所述可利用物理主机的部署顺利与所述可利用物理主机的编号一致包括:将所述第一微服务链条中的微服务数据{V1,V2,……,Va}部署至第一可利用物理主机中,第一可利用物理主机的可利用信息的数量为a,a<p。

进一步优选的是,所述将所述第一微服务链条中的微服务数据{V1,V2,……,Va}部署至所述第一可利用物理主机中,第一可利用物理主机的可利用信息的数量为a,a<p之后还包括:将已经部署的微服务数据从所述第一微服务链条中剔除,形成第二微服务链条{Va+1,V a+2,……,Vp};将所述第二微服务链条中的{Va+1,V a+2,……,Vb}部署至第二可利用物理主机中,所述第二可利用物理主机的可利用信息的数量为b,b<p。

进一步优选的是,所述将所述第二微服务链条中的{Va+1,Va+2,……,Vb}部署至所述第二可利用物理主机中之后还包括:重复将已经部署的微服务数据从所述第一微服务链条中剔除的步骤,直至将所述微服务数据均部署至所述可利用物理主机中。

进一步优选的是,所述获取多个可利用物理主机的可利用信息的数量包括:根据所述微服务请求中的物理主机需求信息得到多个可利用的物理主机。

进一步优选的是,所述物理主机需求信息包括微服务所需端口占用情况、微服务所需资源的满足情况、微服务节点的属性。

解决本发明技术问题所采用的技术方案是一种微服务的部署设备,包括:

接收模块,用于接收微服务请求,所述微服务请求包含多个微服务数据;

第一处理模块,用于根据所述微服务请求的请求信息得到多个所述微服务数据的处理顺序,以形成第一微服务链条;

获取模块,用于获取多个可利用物理主机的可利用信息的数量;

第二处理模块,用于依据所述可利用物理主机的可利用信息的数量,将所述第一微服务链条中的所述微服务数据部署至所述可利用物理主机中。

进一步优选的是,所述第二处理模块包括:

第一处理子模块,用于根据可利用信息的数量的由多到少,对所述可利用物理主机进行编号,第n可利用物理主机为可利用信息的数量第n多的可利用物理主机;

第二处理子模块,用于将所述第一微服务链条中的微服务数据按照处理顺序依次部署至所述可利用物理主机中,所述可利用物理主机的部署顺利与所述可利用物理主机的编号一致。

解决本发明技术问题所采用的技术方案是一种计算机存储介质,存储有微服务的部署指令,用于引起微服务的部署设备执行时,实现上述的方法。

本公开实施例的微服务的部署方法中,微服务数据的部署需要以可利用物理主机的可利用信息的数量为条件部署,这样可根据实际情况,更加快捷的完成微服务数据的部署,从而尽可能将连续的微服务放置于同一主机,有效的降低了整个微服务的通信延迟,更好的发挥微服务的优势。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1为本发明的实施例的一种微服务的部署方法流程示意图;

图2为本发明的实施例的一种微服务的部署方法流程示意图;

图3为本发明的实施例的一种微服务的部署设备的组成示意框图。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。

在下文中描述了本发明的许多特定的细节,例如部件的结构、材料、尺寸、处理工艺和技术,以便更清楚地理解本发明。但正如本领域的技术人员能够理解的那样,可以不按照这些特定的细节来实现本发明。

微服务(或微服务架构)是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。微服务的主要思想是将应用分程序解成更小粒度的多项服务,每项服务由多个容器组成,这种架构的缺点之一就是增加了各微服务之间的通信,导致整个服务的网络延迟增加,尤其是跨主机封装和解封装的过程造成较高的网络延迟。

针对上述微服务的部署方法的网络延迟的问题,如图1至图3所示,本公开实施例提供了如下技术方案:

第一方面,如图1所示,本实施例提供一种微服务的部署方法,其包括步骤S11至步骤S14。

在步骤S11中,接收微服务请求,微服务请求包含多个微服务数据(微服务)。

其中,当有新的服务需要上线时,执行主体接收到该服务请求,执行主体中的微服务编排管理系统首先读取服务请求中的所需创建各微服务数据的yaml文件,提取出各微服务所需要的至少一个主要资源的设计需求和物理主机属性需求。其中,设计需求可包括资源需求字段spec.containers[].resources.request.cpu和spec.containers[].resources.request.memory;物理主机属性需求可包括节点选择利用亲和性字段nodeAffinity、podAnitAffinity等。

在步骤S12中,根据微服务请求的请求信息得到多个微服务数据的处理顺序,以形成第一微服务链条。

其中,也就是说提取出各微服务数据的yaml文件中的数据传递字段和业务流程图,得到各微服务之间的数据处理先后关系,形成微服务链条。

例如,第一微服务链条为{V1,V2,……,Vp},其中Vp表示第p个需要处理的微服务数据。

在步骤S13中,获取多个可利用物理主机的可利用信息的数量。

其中,可利用信息的数量也就是说是可利用物理主机的主要资源的剩余可用资源情况,例如内存、CPU资源剩余量等。

在步骤S14中,依据可利用物理主机的可利用信息的数量,将第一微服务链条中的微服务数据部署至可利用物理主机中。

其中,第一微服务链条中的微服务数据的部署需要以可利用物理主机的可利用信息的数量为条件部署,这样可根据实际情况,更加快捷的完成微服务数据的部署。

本公开实施例的微服务的部署方法中,微服务数据的部署需要以可利用物理主机的可利用信息的数量为条件部署,这样可根据实际情况,更加快捷的完成微服务数据的部署,从而尽可能将连续的微服务放置于同一主机,有效的降低了整个微服务的通信延迟,更好的发挥微服务的优势。

第二方面,如图2所示,本实施例提供一种微服务的部署方法,其包括步骤S21至步骤S24。

在步骤S21中,接收微服务请求,微服务请求包含多个微服务数据。

其中,当有新的服务需要上线时,执行主体接收到该服务请求,执行主体中的微服务编排管理系统首先读取服务请求中的所需创建各微服务数据的yaml文件,提取出各微服务所需要的至少一个主要资源的设计需求和物理主机属性需求。其中,设计需求可包括资源需求字段spec.containers[].resources.request.cpu和spec.containers[].resources.request.memory;物理主机属性需求可包括节点选择利用亲和性字段nodeAffinity、podAnitAffinity等。

在步骤S22中,根据微服务请求的请求信息得到多个微服务数据的处理顺序,以形成第一微服务链条。

其中,也就是说提取出各微服务数据的yaml文件中的数据传递字段和业务流程图,得到各微服务之间的数据处理先后关系,形成微服务链条。

具体的,第一微服务链条为{V1,V2,……,Vp},其中Vp表示第p个需要处理的微服务数据。

在步骤S23中,获取多个可利用物理主机的可利用信息的数量。

其中,可利用信息的数量也就是说是可利用物理主机的主要资源的剩余可用资源情况,例如内存、CPU资源剩余量等。

具体的,获取多个可利用物理主机的可利用信息的数量包括:根据微服务请求的信息中的物理主机需求信息得到多个可利用的物理主机。物理主机需求信息包括微服务所需端口占用情况、微服务所需资源的满足情况、微服务节点的属性。

其中,也就是说最初的物理主机包括多个不可利用物理主机和可利用物理主机,利用微服务请求的信息中的物理主机需求信息对多个物理主机进行筛选,从而得到多个可利用物理主机,即将不可利用物理主机排除掉。

即通过节点初筛模块剔除出不符合基本要求的物理主机,筛选基本要求包括但不限于:微服务所需端口是否被占用、微服务所需资源大小是否满足、微服务是否有指定的节点选择属性(包括计算机节点名称,硬盘类型,资源模板等物理机属性)。

在步骤S24中,依据可利用物理主机的可利用信息的数量,将第一微服务链条中的微服务数据部署至可利用物理主机中。

其中,第一微服务链条中的微服务数据的部署需要以可利用物理主机的可利用信息的数量为条件部署,这样可根据实际情况,更加快捷的完成微服务数据的部署。

具体的,依据可利用物理主机的可利用信息的数量,将第一微服务链条中的微服务数据部署至可利用物理主机中包括步骤S241至步骤S243。

在步骤S241中,根据可利用信息的数量的由多到少,对可利用物理主机进行编号,第n可利用物理主机为可利用信息的数量第n多的可利用物理主机。

其中,也就是说,若利用物理主机的数量为n个,则可利用信息的数量最多的为第一可利用物理主机,可利用信息的数量第二多的为第二可利用物理主机,……,可利用信息的数量最少的为第n可利用物理主机。

在步骤S242中,将第一微服务链条中的微服务数据按照处理顺序依次部署至可利用物理主机中,可利用物理主机的部署顺序与可利用物理主机的编号一致。

进一步的,步骤S242包括:

步骤S2421、将第一微服务链条中的微服务数据{V1,V2,……,Va}部署至第一可利用物理主机中,第一可利用物理主机的可利用信息的数量为a,a<p。

其中,也就是说由于第一可利用物理主机的可利用信息的数量为a,则只有a个微服务数据能够部署在第一可利用物理主机中,因此,第一微服务链条中前a个微服务数据首先部署至第一可利用物理主机中。

需要说明的是,若a大于p,即第一可利用物理主机的可利用信息的数量大于第一微服务链条中的微服务数据的数量,则直接将第一微服务链条中的所有微服务数据部署在第一可利用物理主机中,并不需要继续执行以下步骤。

步骤S2422、将已经部署的微服务数据从第一微服务链条中剔除,形成第二微服务链条{Va+1,V a+2,……,Vp}。

其中,也就是说将已经部署的微服务数据从第一微服务链条中剔除形成一个新的微服务链条。

步骤S2423、将第二微服务链条中的{Va+1,V a+2,……,Vb}部署至第二可利用物理主机中,第二可利用物理主机的可利用信息的数量为b,b<p。

其中,也就是说由于第二可利用物理主机的可利用信息的数量为b,则只有b个微服务数据能够部署在第一可利用物理主机中,因此,第二微服务链条中前b个微服务数据首先部署至第二可利用物理主机中。

需要说明的是,若b大于p,即第二可利用物理主机的可利用信息的数量大于第二微服务链条中的微服务数据的数量,则直接将第二微服务链条中的所有微服务数据部署在第二可利用物理主机中,并不需要继续执行以下步骤。

步骤S2424、重复将已经部署的微服务数据从第一微服务链条中剔除的步骤,直至将微服务数据均部署至可利用物理主机中。

其中,也就是说若仍有未部署的微服务数据,则重复步骤S2422和步骤S2423,直至将微服务数据均部署至可利用物理主机中。

本公开实施例的微服务的部署方法中,微服务数据的部署需要以可利用物理主机的可利用信息的数量为条件部署,这样可根据实际情况,更加快捷的完成微服务数据的部署,从而尽可能将连续的微服务放置于同一主机,有效的降低了整个微服务的通信延迟,更好的发挥微服务的优势。

第三方面,如图3所示,本实施例提供一种微服务的部署设备,包括:接收模块、第一处理模块、获取模块以及第二处理模块。

接收模块,用于接收微服务请求,微服务请求包含多个微服务数据;第一处理模块,用于根据微服务请求的请求信息得到多个微服务数据的处理顺序,以形成第一微服务链条;获取模块,用于获取多个可利用物理主机的可利用信息的数量;第二处理模块,用于依据可利用物理主机的可利用信息的数量,将第一微服务链条中的微服务数据部署至可利用物理主机中。

其中,第二处理模块包括:第一处理子模块和第二处理子模块。

第一处理子模块,用于根据可利用信息的数量由多到少,对可利用物理主机进行编号,第n可利用物理主机为可利用信息的数量第n多的可利用物理主机;第二处理子模块,用于将第一微服务链条中的微服务数据按照处理顺序依次部署至可利用物理主机中,可利用物理主机的部署顺利与可利用物理主机的编号一致。

第四方面,本实施例提供一种计算机存储介质,存储有微服务的部署指令,用于引起微服务的部署设备执行时,实现上述的微服务的部署方法。

应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号