微服务分配方法、电子设备及存储介质与流程

文档序号:33509818发布日期:2023-03-21 22:01阅读:52来源:国知局
微服务分配方法、电子设备及存储介质与流程

1.本技术涉及网络传输领域,尤其涉及一种微服务分配方法、电子设备及存储介质。


背景技术:

2.目前在微服务的架构下,用户所发出的功能请求都是由多个微服务彼此协作后达成。而微服务的容器化部署架构,则会将这些微服务分散安装至多台主机上,增加了网络传输所需的时间。


技术实现要素:

3.鉴于以上内容,有必要提供一种微服务分配方法、电子设备及存储介质,能减少网络传输所需的时间,提高网络传输的效率。
4.本技术提供一种微服务分配方法,所述方法包括:获取多个微服务之间的关联数据;根据所述关联数据对所述多个微服务进行分组;根据分组结果,对所述多个微服务进行资源的分配。
5.在一种可能的实现方式中,所述获取微服务之间的关联数据包括:利用分布式跟踪工具监控所述多个微服务的网络流向;根据所述网络流向生成网络拓扑图;通过所述网络拓扑图获取所述多个微服务之间的联机次数及传输数据量;将所述联机次数和所述传输数据量作为所述关联数据。
6.在一种可能的实现方式中,所述根据所述关联数据对所述多个微服务进行分组包括:根据所述联机次数和所述传输数据量计算得到所述多个微服务之间的距离;基于所述距离,通过分群算法对所述多个微服务进行分组。
7.在一种可能的实现方式中,所述根据所述联机次数和所述传输数据量计算得到所述多个微服务之间的距离包括:从所述联机次数中提取出最大联机次数;从所述传输数据量中提取出最大传输数据量;根据所述联机次数、所述最大联机次数、所述传输数据量及所述最大传输数据量计算得到对应的两个微服务之间的距离。
8.在一种可能的实现方式中,所述基于所述距离,通过分群算法对所述多个微服务进行分组包括:随机选取预设数量个聚类中心;计算任一微服务与各个所述聚类中心之间的距离,令所述任一微服务隶属于距离所述任一微服务最近的所述聚类中心的组别;对所述任一微服务隶属的聚类中心进行至少一次迭代更新,直至获得达到预设条件的多个目标聚类中心;及计算任一微服务与各个所述目标聚类中心之间的距离,令所述任一微服务隶属于距离所述任一微服务最近的所述目标聚类中心的组别,获得分组结果。
9.在一种可能的实现方式中,对所述任一微服务隶属的聚类中心进行至少一次迭代更新中的任意一次迭代更新包括:针对每个所述组别,重新计算所述组别的更新的聚类中心;计算所述任一微服务与各个所述更新的聚类中心之间的距离,令所述任一微服务隶属于距离所述任一微服务最近的所述更新的聚类中心的组别。在一种可能的实现方式中,所述根据分组结果,对所述多个微服务进行资源的分配包括:根据分组结果得到多个节点组;
将所述多个微服务分配至对应的节点组中;将每个所述节点组中的微服务分配至对应的计算节点。
10.在一种可能的实现方式中,所述方法还包括:部署依赖于所述微服务的微服务实例到对应的计算节点。
11.本技术还提供一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的微服务分配方法。
12.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的微服务分配方法。
13.本技术公开的微服务分配方法及相关设备,通过根据微服务之间的关联数据对所述多个微服务进行分组,并根据分组结果,对所述多个微服务进行资源的分配。通过将关联性强的微服务分为一组并分配到相同的计算节点上,最大限度的减少了部署应用程序的计算节点之间的通信开销,减少了网络传输所需的时间,提高了网络传输的效率。
附图说明
14.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
15.图1是本技术实施例提供的一种微服务分配方法的电子设备的结构示意图。
16.图2是本技术实施例提供的一种微服务分配方法的流程图。
17.图3是本技术实施例提供的一种示例性网络拓扑图。
18.图4是本技术实施例提供的一种示例性微服务分组结果。
19.如下具体实施方式将结合上述附图进一步说明本技术。
具体实施方式
20.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本技术进行详细描述。
21.请参阅图1,图1为本技术一实施例的电子设备的示意图。参阅图1所示,所述电子设备1包括,但不仅限于,存储器11和至少一个处理器12上述元件之间可以通过总线(例如图1所示的13)连接,也可以直接连接。
22.所述电子设备1可以是计算机、手机、平板电脑、个人数字助理(personal digital assistant,pda)等安装有应用程序的设备。本领域技术人员可以理解,所述示意图1仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备、总线等。
23.如图2所示,是本技术微服务分配方法的较佳实施例的流程图。所述微服务分配方法应用在所述电子设备1中。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。在本实施方式中,所述微服务分配方法包括:
24.s11、获取多个微服务之间的关联数据。
25.微服务是一种软件架构,主张把应用程序拆分成多个服务单元。应用程序开发人将微服务及微服务实例提交到数据中心。各种微服务被分配给数据中心中合适的物理节点以满足微服务的资源需求。在微服务的架构下,用户所发出的功能请求都是由多个微服务彼此协作后达成。而微服务的容器化部署架构,则会将这些微服务分散安装至多台主机上。
26.在本技术的一个实施例中,为了减少网络传输时间,需要根据微服务之间的关联数据,对所述多个微服务进行分配管理。
27.在本技术的一个实施例中,所述获取微服务之间的关联数据包括:利用分布式跟踪工具监控所述多个微服务的网络流向;根据所述网络流向生成网络拓扑图;通过所述网络拓扑图获取所述多个微服务之间的联机次数及传输数据量;将所述联机次数和所述传输数据量作为所述关联数据。
28.具体实施时,利用分布式跟踪工具去监控所有微服务的网络流向,然后获得各个节点之间的所述联机次数及所述传输数据量,例如,使用appdash、prometheus和grafana开源监控工具,通过收集日志和其他指标来支持基于微服务的系统的日志记录和监控。其中,appdash是微服务执行跟踪工具,用于提取微服务的运行时指标,prometheus用于收集微服务生命周期中的其他时间序列指标,grafana根据prometheus搜集的监测数据提供数据可视化能力。appdash的架构主要有三个部分:客户端、本地收集器和远程收集器,开发人员编写应用程序代码时需要把appdash的客户端添加进来,进而获取开发人员编写的应用的负载测试脚本并生成负载,并将所述负载发送到本地收集器,然后,本地收集器将数据发送到中心的appdash服务器从而监测微服务间的交互行为,生成网络拓扑图,例如,图3所示的网络拓扑图,其中,a、b、c、d、e和f代表不同的微服务。获取所述网络拓扑图各个节点之间的交互信息,从而得到所述联机次数及所述传输数据量。
29.s12、根据所述关联数据对所述多个微服务进行分组。
30.得到所述关联数据之后,需要根据所述关联数据将相互作用关系强的微服务进行分组管理。
31.在本技术的一个实施例中,所述根据所述关联数据对所述多个微服务进行分组包括:
32.(1)根据所述联机次数和所述传输数据量计算得到所述多个微服务之间的距离。具体实施时,从所述联机次数中提取出最大联机次数,从所述传输数据量中提取出最大传输数据量,根据所述联机次数、所述最大联机次数、所述传输数据量及所述最大传输数据量计算得到对应的两个微服务之间的距离。实际操作时,可以采用如下距离公式计算两个微服务之间的距离:d=1-[(所述联机次数/所述最大联机次数)*0.5+(所述传输数据量/所述最大传输数据量量)*0.5],其中,d表示两个微服务之间的距离。需要说明的是,通过距离公式可以看出,若两个微服务之间的联机次数越多,数据传输量越大,那么这两个微服务之间的距离越小。若两个微服务之间的联机次数越少,数据传输量越小,那么这两个微服务之间的距离越大。
[0033]
(2)基于所述距离,通过分群算法对所述多个微服务进行分组。具体实施时,可以采用k均值聚类算法(k-means clustering algorithm,k-means)进行分群处理。首先,随机选取预设数量个(例如,2个)聚类中心;然后计算任一微服务与各个所述聚类中心之间的距离,令所述任一微服务隶属于距离所述任一微服务最近的所述聚类中心的组别;之后对所
述任一微服务隶属的聚类中心进行至少一次迭代更新,直至获得达到预设条件(例如,迭代次数达到3次)的多个目标聚类中心;及计算任一微服务与各个所述目标聚类中心之间的距离,令所述任一微服务隶属于距离所述任一微服务最近的所述目标聚类中心的组别,获得分组结果。例如,图4所述的分组结果。
[0034]
对所述任一微服务隶属的聚类中心进行至少一次迭代更新中的任意一次迭代更新包括:针对每个所述组别,重新计算所述组别的更新的聚类中心;计算所述任一微服务与各个所述更新的聚类中心之间的距离,令所述任一微服务隶属于距离所述任一微服务最近的所述更新的聚类中心的组别。所述针对每个所述组别,重新计算所述组别的更新的聚类中心包括:将每个所述组别的聚类中心更新为隶属所述组别的所有所述微服务的均值(或称作质心),将所述均值作为所述更新的聚类中心。
[0035]
需要说明的是,实际对所述多个微服务进行分组可采用不同的聚类算法,并不限定于本技术实施例中所述的k均值聚类算法。
[0036]
依据分群算法,传输数据量较多的微服务会被分配至同一组,如此在后续传输数据时,具有较大的概率无需与其他节点进行数据传输,从而提高数据传输效能。
[0037]
利用聚类算法对所述多个微服务进行分组,算法思想简单,收敛速度快,同时在对大规模数据集进行聚类分析时,分组高效且聚类效果较好。
[0038]
s13、根据分组结果,对所述多个微服务进行资源的分配。
[0039]
其中,所述资源可以是计算节点。通过所述步骤s12的分组,将关联性强的微服务划分为一组,接着需要利用分组结果对所述多个微服务进行计算节点的分配,从而提升网络传输效率。
[0040]
在本技术的一个实施例中,所述根据分组结果,对所述多个微服务进行分配包括:根据分组结果得到多个节点组;将所述多个微服务分配至对应的节点组中;将每个所述节点组中的微服务分配至对应的计算节点。
[0041]
具体实施时,将属于同一组的微服务分配给同一计算节点下,当数据在当前计算节点进行计算时,无需远距离传输给其他计算节点的对应的微服务,提高了网络传输的效率。
[0042]
本技术通过将相互作用的微服务优先部署在相同的计算节点上,最大限度减少部署应用程序的物理节点之间的通信开销,同时减少网络传输所需的时间,提高网络传输的效率。
[0043]
作为一种可选地实施方式,所述方法还包括:部署依赖于所述多个微服务的微服务实例到对应的计算节点。
[0044]
在本技术的一个实施例中,所述微服务实例是提供基础服务功能的计算机程序。微服务实例具体可以是实现特定服务功能的服务程序。微服务实例具体可以是人脸识别微服务实例、语音合成微服务实例、图像识别微服务实例和文字识别微服务实例等。将微服务分解为多个不同的微服务实例,提高了微服务体系结构的模块性,使得服务实例更容易理解、开发和测试。
[0045]
请继续参阅图1,本实施例中,所述存储器11可以是电子设备1的内部存储器,即内置于所述电子设备1的存储器。在其他实施例中,所述存储器11也可以是电子设备1的外部存储器,即外接于所述电子设备1的存储器。
[0046]
在一些实施例中,所述存储器11用于存储程序代码和各种数据,并在电子设备1的运行过程中实现高速、自动地完成程序或数据的存取。
[0047]
所述存储器11可以包括随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0048]
在一实施例中,所述处理器12可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器也可以是其它任何常规的处理器等。
[0049]
所述存储器11中的程序代码和各种数据如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,例如微服务分配的方法中的步骤,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)等。
[0050]
可以理解的是,以上所描述的模块划分,为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本技术各个实施例中的各功能模块可以集成在相同处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在相同单元中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0051]
最后应说明的是,以上实施例仅用以说明本技术的技术方案而非限制,尽管参照较佳实施例对本技术进行了详细说明,本领域的普通技术人员应当理解,可以对本技术的技术方案进行修改或等同替换,而不脱离本技术技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1