一种微服务的调度方法、装置、设备和存储介质与流程
未命名
08-29
阅读:105
评论:0

1.本技术涉及服务调度技术领域,具体涉及一种微服务的调度方法、装置、设备和存储介质。
背景技术:
2.在微服务调度技术领域的云原生环境中,一个服务集群会出现数以千计的微服务,那么需要对各个微服务的调用关系进行管理和存储,在服务部署期间,运维人员会针对不同的微服务预估资源使用情况对各个微服务进行相应的调度。
3.但是资源的使用情况会发生变化,若各个微服务的服务值,比如cpu、内存值等设置的不合理会影响整体集群的资源利用率,不利于服务集群的整体运行。
技术实现要素:
4.有鉴于此,本技术提供了一种微服务的调度方法、装置、设备和存储介质,用于解决资源的使用情况会发生变化,若各个微服务的服务值,比如cpu、内存值等设置的不合理会影响整体集群的资源利用率,不利于服务集群的整体运行。
5.为实现以上目的,现提出的方案如下:
6.第一方面,一种微服务的调度方法,包括:
7.响应于对服务集群中的各个微服务进行调度的请求指令,从所述服务集群中的各个计算节点中选取目标计算节点;
8.将预先获取的目标控制器部署在所述目标计算节点,得到独立计算节点;
9.将各个所述微服务发送至所述独立计算节点,以供所述独立计算节点确定各个微服务的类别、第一服务值以及第二服务值;
10.基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点,以完成对各个微服务的调度过程。
11.优选地,所述独立计算节点确定各个微服务的类别的过程,包括:
12.确定每两个微服务之间的调用信息,并组合为调用信息集合;
13.将所述调用信息集合进行降维,得到与所述调用关系集合对应的二维数据集;
14.将所述二维数据集进行聚类,得到各个所述微服务的类别。
15.优选地,所述独立计算节点确定各个微服务的第一服务值的过程,包括:
16.针对每一个微服务,获取该微服务在第一预设时间段内所对应的各个处理器值;
17.将各个所述处理器值的均值作为与该微服务对应的处理器最小值;
18.将所述处理器最小值作为该微服务的第一服务值。
19.优选地,所述独立计算节点确定各个微服务的第二服务值的过程,包括:
20.针对每一个微服务,获取该微服务在第一预设时间段内所对应的各个内存值;
21.将各个所述内存值的均值作为与该微服务对应的内存最小值;
22.将所述内存最小值作为该微服务的第二服务值。
23.优选地,所述基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点,包括:
24.针对每一种类别,将类别相同的各个微服务作为与该类别对应的各个软亲和服务;
25.将与该类别对应的各个软亲和服务组合为与该类别对应的微服务组;
26.基于所述微服务组中的各个软亲和服务的第一服务值和第二服务值,从除所述独立计算节点之外的各个计算节点确定所述微服务组所对应的响应节点;
27.将所述微服务组发送至所述响应节点。
28.优选地,所述确定每两个微服务之间的调用信息,并组合为调用信息集合,包括:
29.针对每一个微服务,判断所述独立计算节点中是否存在与该微服务对应的第一服务;
30.若所述独立计算节点中存在与该微服务对应的第一服务,则获取所述第一服务的第一调用信息;
31.基于所述第一调用信息,确定该微服务与其他各个微服务之间的相互调用关系;
32.将每一个微服务与其他各个微服务之间的相互调用关系进行整合,得到所述调用信息集合。
33.优选地,所述目标控制器为mutatingadmission webhooks准入控制器。
34.第二方面,一种微服务的调度装置,包括:
35.目标计算节点选取模块,用于响应于对服务集群中的各个微服务进行调度的请求指令,从所述服务集群中的各个计算节点中选取目标计算节点;
36.部署模块,用于将预先获取的目标控制器部署在所述目标计算节点,得到独立计算节点;
37.参数确定模块,用于将各个所述微服务发送至所述独立计算节点,以供所述独立计算节点确定各个微服务的类别、第一服务值以及第二服务值;
38.发送模块,用于基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点,以完成对各个微服务的调度过程。
39.第三方面,一种微服务的调度设备,包括存储器和处理器;
40.所述存储器,用于存储程序;
41.所述处理器,用于执行所述程序,实现如第一方面所述的微服务的调度方法的各个步骤。
42.第四方面,一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的微服务的调度方法的各个步骤。
43.从上述技术方案可以看出,本技术通过响应于对服务集群中的各个微服务进行调度的请求指令,从所述服务集群中的各个计算节点中选取目标计算节点;将预先获取的目标控制器部署在所述目标计算节点,得到独立计算节点;将各个所述微服务发送至所述独立计算节点,以供所述独立计算节点确定各个微服务的类别、第一服务值以及第二服务值;基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点,以完成对各个微服务的调度过程。该方案将目标控制器
部署在目标计算节点上,得到独立计算节点,然后将所有微服务都发送至该独立计算节点,以得到每一个微服务的参数,包括类别、第一服务值和第二服务值,然后根据这些参数将各个微服务进行调度,可以优化调度结果,确保服务集群的高效运行。
附图说明
44.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
45.图1为本技术实施例提供的一种微服务的调度方法的可选流程图;
46.图2~图5为本技术实施例提供的代码逻辑图;
47.图6为本技术实施例提供的一种微服务的调度装置的结构示意图;
48.图7为本技术实施例提供的一种微服务的调度设备的结构示意图。
具体实施方式
49.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
50.在微服务调度技术领域的云原生环境中,一个服务集群会出现数以千计的微服务,那么需要对各个微服务的调用关系进行管理和存储,在服务部署期间,运维人员会针对不同的微服务预估资源使用情况对各个微服务进行相应的调度。
51.但是资源的使用情况会发生变化,若各个微服务的服务值,比如cpu、内存值等设置的不合理,比如cpu、内存值等设置的过大,则会影响整体集群的资源利用率,或者设置的过小,则会影响服务稳定性,不利于服务集群的整体运行。
52.为了解决上述缺陷,本发明实施例提供一种微服务的调度方法,该方法可以应用在各种计算机终端或是智能终端中,其执行主体可以为计算机终端或是智能终端的处理器或服务器,所述方法的方法流程图如图1所示,具体包括:
53.s1:响应于对服务集群中的各个微服务进行调度的请求指令,从所述服务集群中的各个计算节点中选取目标计算节点。
54.具体地,可以将k8s集群作为本技术中的服务集群,该服务集群中包含多个计算节点,计算节点可以理解为服务器,每一个计算节点都是一个独立的服务器。每个计算节点中存在多个微服务,当各个微服务需要进行更新时,则响应于对服务集群中的各个微服务进行调度的请求指令,从所述服务集群中的各个计算节点中选取一个计算节点,作为目标计算节点。
55.选取方法可以是随机选取或基于服务集群的特征进行选取,本实施例对此不做限制。
56.s2:将预先获取的目标控制器部署在所述目标计算节点,得到独立计算节点。
57.为了不影响线上服务,可以将预先选取的目标控制器部署在该目标计算节点,从
而得到独立计算节点,该目标控制器在目标计算节点的部署方式可以是容器化部署。
58.s3:将各个所述微服务发送至所述独立计算节点,以供所述独立计算节点确定各个微服务的类别、第一服务值以及第二服务值。
59.可选的,在将各个微服务发送至独立计算节点之前,先获取各个微服务的majorization标签,判断各个微服务的majorization标签为false还是true,可以理解的是,微服务的majorization标签是预先设置好的,是为了表明各个微服务是否要进行自适应优化。针对每一个微服务,若该微服务的majorization标签为false,则不需要将该微服务发送至独立计算节点;若该微服务得majorization标签为true,则需要将该微服务发送至独立计算节点。
60.那么确定出需要进行自适应优化的各个微服务后,将各个微服务发送至独立计算节点,以供独立计算节点确定各个微服务的类别、第一服务值和第二服务值。
61.s4:基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点,以完成对各个微服务的调度过程。
62.那么根据得到的各个微服务的类别、第一服务值以及第二服务值,可以确定要怎么样对各个微服务进行调度,从而减少服务集群的运维成本。可选的,本步骤可以利用kube-apiserver(微服务响应组件)来实现。
63.本发明实施例提供的方法中,独立计算节点确定各个微服务的类别的过程,具体说明如下所述:
64.s31:确定每两个微服务之间的调用信息,并组合为调用信息集合。
65.具体地,本步骤可以包括:
66.针对每一个微服务,判断所述独立计算节点中是否存在与该微服务对应的第一服务;若所述独立计算节点中存在与该微服务对应的第一服务,则获取所述第一服务的第一调用信息;基于所述第一调用信息,确定该微服务与其他各个微服务之间的相互调用关系;将每一个微服务与其他各个微服务之间的相互调用关系进行整合,得到所述调用信息集合。
67.第一服务可以理解为与该微服务类型相同的服务,若独立计算节点中存在与该微服务类型相同的第一服务,则可以利用isito的datastore微服务治理能力,从isito组件dapper提取trace,和span数据,以得到第一服务的第一调用信息,然后根据第一调用信息确定该微服务与其他各个微服务之间的相互调用关系。若微服务a与微服务b之间有调用关系,则将微服务a与微服务b之间的调用信息表示为1,若微服务a与微服务b之间没有调用关系,则将微服务a与微服务b之间的调用信息表示为0。另外,微服务自身与自身之间的调用信息为1,那么在一个示例中,存在a、b、c、d四个微服务,这四个微服务之间的调用信息集合可以如下表1所示:
68.表1
69.服务abcda1010b1101c0110d1001
70.s32:将所述调用信息集合进行降维,得到与所述调用关系集合对应的二维数据集。
71.在本步骤中,沿用上述表1中的调用信息集合,将该调用信息集合进行pac降维,从而得到与该调用信息集合对应的二维数据集,具体如下表2所示:
72.表2
[0073] abcdxxaxbcxdxyyaybcydy
[0074]
s33:将所述二维数据集进行聚类,得到所述各个所述微服务的类别。
[0075]
具体地,沿用上述表2中的二维数据集,通过dbscan聚类将该二维数据集进行自适应聚类,可以得到各个微服务的类别,具体如下表3所示:
[0076]
表3
[0077] abcd类别label1label2label2label1
[0078]
由上表3可知,微服务a与微服务d的类别是相同的,为label1;微服务b与微服务c的类别是相同的,为label2。
[0079]
上述实施例对本技术中的独立计算节点确定各个微服务的类别的过程进行了说明,下面对本技术中的独立计算节点确定各个微服务的第一服务值和第二服务值的过程进行详细说明。
[0080]
第一服务值:针对每一个微服务,获取该微服务在第一预设时间段内所对应的各个处理器值;将各个所述处理器值的均值作为与该微服务对应的处理器最小值;将所述处理器最小值作为该微服务的第一服务值。
[0081]
第二服务值:针对每一个微服务,获取该微服务在第一预设时间段内所对应的各个内存值;将各个所述内存值的均值作为与该微服务对应的内存最小值;将所述内存最小值作为该微服务的第二服务值。
[0082]
可选的,目标控制器可以通过prometheus获取第一预设时间段内的各个处理器值(cpu值)和各个内存值,第一预设时间段可以为7天,那么7天内的各个cpu值和各个内存值也就是这7天内每一天的cpu值和内存值。计算得到各自的均值后,将均值作为微服务的最小值,即requests值,从而优化资源的使用。
[0083]
下面对本技术中的基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点的过程进行详细说明。
[0084]
针对每一种类别,将类别相同的各个微服务作为与该类别对应的各个软亲和服务;将与该类别对应的各个软亲和服务组合为与该类别对应的微服务组;基于所述微服务组中的各个软亲和服务的第一服务值和第二服务值,从除所述独立计算节点之外的各个计算节点确定所述微服务组所对应的响应节点;将所述微服务组发送至所述响应节点。
[0085]
具体地,为了提升微服务之间的相互访问效率,运维人员可以将具有高调用关系或者所属类别相同的微服务设置亲和性,微服务之间的亲和性设置比资源设置更复杂。当微服务上线时,运维人员根据微服务之间的调用关系,设置相应的pod亲和性(软、硬),pod反亲和性(软、硬),节点亲和性(软、硬),节点反亲和性(软、硬)等,其中,计算节点的调用关
系一般不会变化,微服务的调度关系会随着微服务的数量增加变得更复杂。
[0086]
可选的,在kubernetes apiserver中包含两个特殊的准入控制器:mutatingadmission webhooks、validatingadmission,这两个控制器将可以发送准入请求到外部的http回调服务,并将处理结果返回给kube-apiserver,以供kube-apiserver对微服务进行更新和调度。在本技术中,目标控制器可以选择mutatingadmission webhooks准入控制器,mutatingadmission webhooks准入控制器可以拦截对微服务进行更新或者调度的请求指令。另外,需要确保在在apiserver配置文件中启用mutatingadmission webhooks准入控制器,才能保证mutatingadmission webhooks准入控制器的顺利工作,该过程的逻辑代码图可以如图2所示。在此过程中,可以将mutatingadmission webhooks准入控制器的逻辑代码打包成docker镜像,并使用一个deployment来运行这个控制器。该mutatingadmission webhooks准入控制器的逻辑代码图可以如图3所示。接下来,将mutatingadmission webhooks准入控制器容器化部署在服务集群,比如kubernetes集群的过程可以利用deployment+service来实现,该过程的逻辑代码图可以如图4所示。
[0087]
在将mutatingadmission webhooks准入控制器容器化部署在kubernetes集群后,还并没有和mutate webhook对接起来,因此需要将我们上面实现的服务注册到mutate webhook中,该过程只需要创建一个类型为mutate webhookconfiguration的kubernetes资源对象即可,在这个对象中就可以来配置webhook这个服务没然后将webhook命名为
[0088]
io.ydzs.admission-registry,且需要保证该命名在集群中是唯一的。然后在rules属性下面就是来指定在什么条件下使用该webhook的配置,这里只需要在创建pod的时候才调用这个webhook。此外在clientconfig属性下还需要指定kubernetes apiserver如何来找到webhook服务,可以通过一个在default命名空间下面的名为admission-registry的service服务在/validate路径下面提供服务,此外还指定了一个cabundle的属性,这个属性通过指定一个pem格式的ca bundle来表示apiserver作为客户端可以使用它来验证webhook应用上的服务器证书,对应的注册webhook的资源清单如图5所示。
[0089]
与图1所述的方法相对应,本发明实施例还提供了微服务的调度装置,用于对图1中方法的具体实现,本发明实施例提供的微服务的调度装置可以在计算机终端或各种移动设备中,结合图6,对微服务的调度装置进行介绍,如图6所示,该装置可以包括:
[0090]
目标计算节点选取模块10,用于响应于对服务集群中的各个微服务进行调度的请求指令,从所述服务集群中的各个计算节点中选取目标计算节点;
[0091]
部署模块20,用于将预先获取的目标控制器部署在所述目标计算节点,得到独立计算节点;
[0092]
参数确定模块30,用于将各个所述微服务发送至所述独立计算节点,以供所述独立计算节点确定各个微服务的类别、第一服务值以及第二服务值;
[0093]
发送模块40,用于基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点,以完成对各个微服务的调度过程。
[0094]
从上述技术方案可以看出,本技术通过响应于对服务集群中的各个微服务进行调度的请求指令,从所述服务集群中的各个计算节点中选取目标计算节点;将预先获取的目标控制器部署在所述目标计算节点,得到独立计算节点;将各个所述微服务发送至所述独
立计算节点,以供所述独立计算节点确定各个微服务的类别、第一服务值以及第二服务值;基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点,以完成对各个微服务的调度过程。该方案将目标控制器部署在目标计算节点上,得到独立计算节点,然后将所有微服务都发送至该独立计算节点,以得到每一个微服务的参数,包括类别、第一服务值和第二服务值,然后根据这些参数将各个微服务进行调度,可以优化调度结果,确保服务集群的高效运行。
[0095]
在一个示例中,所述参数确定模块30可以包括:
[0096]
组合模块,用于确定每两个微服务之间的调用信息,并组合为调用信息集合;
[0097]
降维模块,用于将所述调用信息集合进行降维,得到与所述调用关系集合对应的二维数据集;
[0098]
聚类模块,用于将所述二维数据集进行聚类,得到所述各个所述微服务的类别。
[0099]
在一个示例中,所述参数确定模块30可以包括:
[0100]
第一获取模块,用于针对每一个微服务,获取该微服务在第一预设时间段内所对应的各个处理器值;
[0101]
第一均值计算模块,用于将各个所述处理器值的均值作为与该微服务对应的处理器最小值;
[0102]
第一赋值模块,用于将所述处理器最小值作为该微服务的第一服务值。
[0103]
在一个示例中,所述参数确定模块30还可以包括:
[0104]
第二获取模块,用于针对每一个微服务,获取该微服务在第一预设时间段内所对应的各个内存值;
[0105]
第二均值计算模块,用于将各个所述内存值的均值作为与该微服务对应的内存最小值;
[0106]
第二赋值模块,用于将所述内存最小值作为该微服务的第二服务值。
[0107]
在一个示例中,所述发送模块40可以包括:
[0108]
微服务组得到模块,用于将与该类别对应的各个软亲和服务组合为与该类别对应的微服务组;
[0109]
响应节点确定模块,用于基于所述微服务组中的各个软亲和服务的第一服务值和第二服务值,从除所述独立计算节点之外的各个计算节点确定所述微服务组所对应的响应节点;
[0110]
微服务组发送模块,用于将所述微服务组发送至所述响应节点。
[0111]
在一个示例中,所述组合模块可以包括:
[0112]
判断模块,用于针对每一个微服务,判断所述独立计算节点中是否存在与该微服务对应的第一服务;
[0113]
第一调用信息获取模块,用于若所述独立计算节点中存在与该微服务对应的第一服务,则获取所述第一服务的第一调用信息;
[0114]
相互调用关系确定模块,用于基于所述第一调用信息,确定该微服务与其他各个微服务之间的相互调用关系;
[0115]
整合模块,用于将每一个微服务与其他各个微服务之间的相互调用关系进行整合,得到所述调用信息集合。
[0116]
更进一步地,本技术实施例提供了一种微服务的调度设备。可选的,图7示出了微服务的调度设备的硬件结构框图,参照图7,微服务的调度设备的硬件结构可以包括:至少一个处理器01,至少一个通信接口02,至少一个存储器03和至少一个通信总线04。
[0117]
在本技术实施例中,处理器01、通信接口02、存储器03、通信总线04的数量为至少一个,且处理器01、通信接口02、存储器03通过通信总线04完成相互间的通信。
[0118]
处理器01可以是一个中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等。
[0119]
存储器03可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器。
[0120]
其中,存储器存储有程序,处理器可调用存储器存储的程序,程序用于执行下述微服务的调度方法,包括:
[0121]
响应于对服务集群中的各个微服务进行调度的请求指令,从所述服务集群中的各个计算节点中选取目标计算节点;
[0122]
将预先获取的目标控制器部署在所述目标计算节点,得到独立计算节点;
[0123]
将各个所述微服务发送至所述独立计算节点,以供所述独立计算节点确定各个微服务的类别、第一服务值以及第二服务值;
[0124]
基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点,以完成对各个微服务的调度过程。
[0125]
可选的,程序的细化功能和扩展功能可参照方法实施例中的微服务的调度方法的描述。
[0126]
本技术实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,在所述程序运行时控制所述存储介质所在的设备执行下述微服务的调度方法,包括:
[0127]
响应于对服务集群中的各个微服务进行调度的请求指令,从所述服务集群中的各个计算节点中选取目标计算节点;
[0128]
将预先获取的目标控制器部署在所述目标计算节点,得到独立计算节点;
[0129]
将各个所述微服务发送至所述独立计算节点,以供所述独立计算节点确定各个微服务的类别、第一服务值以及第二服务值;
[0130]
基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点,以完成对各个微服务的调度过程。
[0131]
具体地,该存储介质可以是一种计算机可读存储介质,计算机可读存储介质可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。
[0132]
可选的,程序的细化功能和扩展功能可参照方法实施例中的微服务的调度方法的描述。
[0133]
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出
贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,直播设备,或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。
[0134]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0135]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0136]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种微服务的调度方法,其特征在于,包括:响应于对服务集群中的各个微服务进行调度的请求指令,从所述服务集群中的各个计算节点中选取目标计算节点;将预先获取的目标控制器部署在所述目标计算节点,得到独立计算节点;将各个所述微服务发送至所述独立计算节点,以供所述独立计算节点确定各个微服务的类别、第一服务值以及第二服务值;基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点,以完成对各个微服务的调度过程。2.根据权利要求1所述的方法,其特征在于,所述独立计算节点确定各个微服务的类别的过程,包括:确定每两个微服务之间的调用信息,并组合为调用信息集合;将所述调用信息集合进行降维,得到与所述调用关系集合对应的二维数据集;将所述二维数据集进行聚类,得到各个所述微服务的类别。3.根据权利要求1所述的方法,其特征在于,所述独立计算节点确定各个微服务的第一服务值的过程,包括:针对每一个微服务,获取该微服务在第一预设时间段内所对应的各个处理器值;将各个所述处理器值的均值作为与该微服务对应的处理器最小值;将所述处理器最小值作为该微服务的第一服务值。4.根据权利要求1所述的方法,其特征在于,所述独立计算节点确定各个微服务的第二服务值的过程,包括:针对每一个微服务,获取该微服务在第一预设时间段内所对应的各个内存值;将各个所述内存值的均值作为与该微服务对应的内存最小值;将所述内存最小值作为该微服务的第二服务值。5.根据权利要求1所述的方法,其特征在于,所述基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点,包括:针对每一种类别,将类别相同的各个微服务作为与该类别对应的各个软亲和服务;将与该类别对应的各个软亲和服务组合为与该类别对应的微服务组;基于所述微服务组中的各个软亲和服务的第一服务值和第二服务值,从除所述独立计算节点之外的各个计算节点确定所述微服务组所对应的响应节点;将所述微服务组发送至所述响应节点。6.根据权利要求2所述的方法,其特征在于,所述确定每两个微服务之间的调用信息,并组合为调用信息集合,包括:针对每一个微服务,判断所述独立计算节点中是否存在与该微服务对应的第一服务;若所述独立计算节点中存在与该微服务对应的第一服务,则获取所述第一服务的第一调用信息;基于所述第一调用信息,确定该微服务与其他各个微服务之间的相互调用关系;将每一个微服务与其他各个微服务之间的相互调用关系进行整合,得到所述调用信息集合。
7.根据权利要求1所述的方法,其特征在于,所述目标控制器为mutatingadmission webhooks准入控制器。8.一种微服务的调度装置,其特征在于,包括:目标计算节点选取模块,用于响应于对服务集群中的各个微服务进行调度的请求指令,从所述服务集群中的各个计算节点中选取目标计算节点;部署模块,用于将预先获取的目标控制器部署在所述目标计算节点,得到独立计算节点;参数确定模块,用于将各个所述微服务发送至所述独立计算节点,以供所述独立计算节点确定各个微服务的类别、第一服务值以及第二服务值;发送模块,用于基于所述各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除所述独立计算节点之外的各个计算节点,以完成对各个微服务的调度过程。9.一种微服务的调度设备,其特征在于,包括存储器和处理器;所述存储器,用于存储程序;所述处理器,用于执行所述程序,实现如权利要求1-7任一项的微服务的调度方法的各个步骤。10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-7任一项的微服务的调度方法的各个步骤。
技术总结
本申请公开一种微服务的调度方法、装置、设备和存储介质,通过响应于对服务集群中的各个微服务进行调度的请求指令,从服务集群中的各个计算节点中选取目标计算节点;将预先获取的目标控制器部署在目标计算节点,得到独立计算节点;将各个微服务发送至独立计算节点,以供独立计算节点确定各个微服务的类别、第一服务值以及第二服务值;基于各个微服务的类别、第一服务值以及第二服务值,将各个微服务发送至除独立计算节点之外的各个计算节点,以完成对各个微服务的调度过程。该方案确定每一个微服务的参数,包括类别、第一服务值和第二服务值,然后根据这些参数将各个微服务进行调度,可以优化调度结果,确保服务集群的高效运行。确保服务集群的高效运行。确保服务集群的高效运行。
技术研发人员:黄于权 李佰典 高保庆
受保护的技术使用者:天翼数字生活科技有限公司
技术研发日:2023.05.26
技术公布日:2023/8/28
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/