首页> 中国专利> 一种基于微服务架构的物联网平台构建方法

一种基于微服务架构的物联网平台构建方法

摘要

本发明属于物联网平台构建技术领域,公开了一种基于微服务架构的物联网平台构建方法,所述物联网平台构建系统包括:微服务层级划分模块、kubernetes集群搭建模块、成镜像构建模块、扩容和缩容模块、模块添加模块、数据收集模块、监控方案选择模块、预测模型建立模块、仿真模块、精度检验模块、预测模块、调度模块。本发明能够对物联网平台的复杂功能解耦,将物联网应用建立在微服务集合之上,在实际部署中,微服务的多个实例可以增强应用程序的灵活性和健壮性;对kubernetes中的调度算法进行改进,通过区分多租户实现资源调度,尊重单个用户的调度决策和资源约束,提高默认整体调度机制的公平性。

著录项

  • 公开/公告号CN113110914A

    专利类型发明专利

  • 公开/公告日2021-07-13

    原文格式PDF

  • 申请/专利权人 西安电子科技大学;

    申请/专利号CN202110229566.1

  • 申请日2021-03-02

  • 分类号G06F9/455(20060101);G06F9/50(20060101);G06F11/30(20060101);G16Y30/00(20200101);

  • 代理机构61227 西安长和专利代理有限公司;

  • 代理人何畏

  • 地址 710071 陕西省西安市太白南路2号西安电子科技大学

  • 入库时间 2023-06-19 11:49:09

说明书

技术领域

本发明属于物联网平台构建技术领域,尤其涉及一种基于微服务架构的物联网平台构建方法。

背景技术

目前,现有物联网平台多为部署在虚拟机中的单体应用,随着物联网产业的不断发展,物联网平台的功能逐渐复杂化,冗余备份和水平扩展需要消耗更多的机器资源和时间成本来维护。同时,对于传统的单体物联网应用,模块之间耦合度高,功能集中运行在同一进程中,在面临愈加复杂的物联网环境时,只能将集群的整体进行伸缩,极大的浪费了资源。

微服务架构在近几年来得到广泛支持,因其能将应用服务进行解耦,降低服务之间的耦合性,提高系统的健壮性;Docker是一个开源的应用容器引擎,支持将容器部署到本地环境和多种主流云平台上。

云基础架构中任务调度和资源分配是一个众所周知的讨论问题,现有开源架构kubernetes,提供了容器的调度与负载均衡功能;但其调度算法属于非独占式,是通过一个调度组件来处理所有传入的任务请求,组件中也无法实现任务的优先级,所有任务都是依靠先来先服务的原则进行处理,同时,其默认调度算法并不支持抢占式策略,在面对复杂的物联网环境下,该调度算法无法更好的处理任务请求;kubernetes默认实现的调度器通过预选流程筛选掉不合适的节点,然后再通过优选策略计算各个节点得分,比较得分后,将pod运行在得分最高的节点上,但是调度器在调度同一资源控制器下的不同pod副本的时候,会针对相同的节点进行预选和优选操作,这样每次都会做一些重复的工作。

Kubernetes中可以实现服务的负载均衡,根据预先设置的规则对服务进行相应的扩容与缩容,但是这种自动缩放服务的功能需要应用程序提供商自定义一个参数集,这个参数集的确定是不可预知性的,只能根据经验获得,很可能存在资源浪费或者资源不足的情况。这些管理参数又是静态的,而传入的请求确要经常变化,在这种情况下,缩放决策的本质上是被动执行的,而不是积极主动的。

通过上述分析,现有技术存在的问题及缺陷为:

(1)随着物联网产业的不断发展,物联网平台的功能逐渐复杂化,冗余备份和水平扩展需要消耗更多的机器资源和时间成本来维护。同时,对于传统的单体物联网应用,模块之间耦合度高,功能集中运行在同一进程中,在面临愈加复杂的物联网环境时,只能将集群的整体进行伸缩,极大的浪费了资源。

(2)现有开源架构kubernetes的调度算法属于非独占式,组件中也无法实现任务的优先级,所有任务都是依靠先来先服务的原则进行处理;同时,其默认调度算法并不支持抢占式策略,在面对复杂的物联网环境下,该调度算法无法更好的处理任务请求。

(3)现有开源架构kubernetes的调度器在调度同一资源控制器下的不同pod副本的时候,会针对相同的节点进行预选和优选操作,每次都会做重复的工作。

(4)现有开源架构kubernetes的自动缩放服务的功能需要应用程序提供商自定义一个参数集,这个参数集的确定是不可预知性的,只能根据经验获得,很可能存在资源浪费或者资源不足的情况;这些管理参数又是静态的,而传入的请求确要经常变化,在这种情况下,缩放决策的本质上是被动执行的,而不是积极主动的。

解决以上问题及缺陷的难度为:与传统架构相比,微服务架构通过构建具有独立生命周期的服务,减少服务的粒度,缩短了开发周期,降低了大型服务固有的复杂性的同时提高了可伸缩性。但是代价是昂贵的性能开销和复杂的动态资源使用情况,通常部署在云中的应用程序需要满足一定的性能要求,例如响应时间,但同时也要尽可能降低云资源的成本。如何通过容器调度系统Kubernetes来对微服务程序进行合理的资源分配和负载均衡成为业界难点。

解决以上问题及缺陷的意义为:随着微服务业务架构日益严重,资源调度逐渐成为云平台中的关键技术。通过合理的资源调度。可以为应用程序提供充足的资源保障,降低服务的响应时间,从而提高服务质量。而对于微服务管理平台Kubernetes来说,资源调度机制同样有着非常重要的意义,是集群管理中不可或缺的重要组成部分。本发明在原有调度策略上,提出一种基于负载预测的资源调度策略,根据监测程序运行情况来对未来某一时刻应用的负载情况进行预测,然后根据预测结果对资源进行提前调度,从而减少服务的响应时间。

发明内容

针对现有技术存在的问题,本发明提供了一种基于微服务架构的物联网平台构建方法,具体涉及在Kubernetes架构上构建物联网平台技术。

本发明是这样实现的,一种基于微服务架构的物联网平台构建方法,所述基于微服务架构的物联网平台构建方法包括以下步骤:

步骤一,对物联网平台划分微服务层级;其中,所述微服务层级包括数据接入层、数据处理层、服务层和应用层,对平台进行功能上的解耦,降低耦合性,提高扩展性;

步骤二,搭建kubernetes集群,三主六从,实现集群的高可用性;

步骤三,将平台所有拆分的项目构建成Docker镜像文件,能够让服务的部署更加快捷、快速;

步骤四,微服务的部署模块使用容器集群管理工具kubernetes,在kubernetes集群上将第三步中制作的镜像文件进行相应的部署,能够对拆分后的微服务架构物联网平台进行更方便的管理;

步骤五,在实现集群服务的负载均衡时,通过监控状态、分级阶段、计划制定和执行操作实现智能的扩容和缩容;

步骤六,在kubernetes架构上添加监视模块,预测模块和资源动态调度模块,自动扩容缩容模块;

步骤七,通过监控模块收集节点上所有容器的资源使用情况;其中,所述监控模块是在每个节点运行的监控容器;

步骤八,选择Prometheus+Grafana作为监控方案,对应用程序的运行状态进行更加精确的监控;

步骤九,利用监控模块提供的历史资源使用情况数据,建立灰度预测模型,预测未来一段时间内的资源使用情况,对资源的调度进行提前调度,从而减少服务的响应时间;

步骤十,使用cAdvisor获取CPU的利用率和内存的利用率关于节点的前一瞬间的值,并使用GM(1,1)预测算法进行仿真;

步骤十一,对步骤七中的预测数据进行精度检验,使得预测结果更加精确;

步骤十二,通过收集在kubernetes平台上运行的应用程序的历史资源使用情况数据,使用灰色预测模型来预测未来一段时间内的资源使用情况,然后在分析阶段计算出缩放时间,工作负载预测;

步骤十三,集群抢占式调度的实现,能够对具有高优先级的任务进行;

步骤十四,通过调度算法考虑CPU使用率,同时将内存使用率、应用的网络状态在内的多个指标进行判断;

步骤十五,基于多租户进行资源具体的调度。

进一步,步骤八中,所述选择Prometheus+Grafana作为监控方案,包括:

(1)将Prometheus集成到已经部署好的kubernetes之上;

(2)对Prometheus的部署进行优化,实现配置信息热加载;

(3)配置Prometheus的收集信息规则,以实现对kubernetes集群内运行中容器的信息采集。

进一步,步骤十中,所述使用cAdvisor获取CPU的利用率和内存的利用率关于节点的前一瞬间的值,并使用GM(1,1)预测算法进行仿真,包括:

假设节点的CPU的利用率为Uc,内存的利用率是Um,首先使用cAdvisor获取Uc和Um关于节点的前一瞬间的,其中Uc={Uc(1),Uc(2),…,Uc(n)},Um={Um(1),Um(2),…,Um(n)}之后使用GM(1,1)预测算法对其进行仿真,然后预测在时间n+1处的Uc与Um的值,计算步骤如下:

(1)假设时间序列,x

根据灰色预测方法,可以获得GM(1,1)模型的相应白化微分方程:

其中,α称为常数,μ称为发展灰数,为内生控制灰数,是对系统的常定输入,且此方程满足初始条件,

当t=t

的解为

灰色模型的途径是一次累加序列(1)通过最小二乘法来估计常数α和μ。

(2)因为x

由于

另y=(x

(3)假设

(4)把估计值

当k=1,2,…,N-1时,由公式(8)得到的

进一步,步骤十一中,所述对预测数据进行精度检验,包括:

(1)残差检验,分别计算:

残差:

相对残差:

(2)后验差检验:分别计算:

x

x

残差的均值:

残差的方差:

后验差比值:

(3)构建预测精度等级对照表。

进一步,步骤(3)中,所述预测精度等级对照表中,P>0.95且C<0.35时,预测精度等级为好;P>0.80且C<0.45时,预测精度等级为合格;P>0.70且C<0.50时,预测精度等级为勉强;P≤0.70且C≥0.65时,预测精度等级为不合格。

进一步,步骤十三中,所述集群抢占式调度的实现,包括:

首先将Pod分为高优先级与低优先级,而且每个优先级中增加可以让用户能够自定义的次优先级;使得在调度过程中,kubernetes集群能够对优先级高的Pod进行先行调度,同时当集群资源不能够支撑容器运行的情况时,也能支持高优先级Pod抢占低优先级Pod的功能。

进一步,步骤十五中,所述基于多租户进行资源具体的调度,包括:

(1)在开始之前,第一步先是审核已删除、停止或异常崩溃的实例;

(2)内部循环:在优先级的排序中选择一个用户,在用户的队列中选择一个挂起的任务,然后确定是否有节点可以托管该任务;若没有节点可以承载该任务,则从列表中删除该用户,内部循环继续到列表中的下一个用户;

(3)外部循环:如果在任务的资源需求和节点的可用资源之间找到匹配,则将该用户从内部循环中删除;然后再次重新计算所有用户的调度优先级,生成新的列表,再通过内部循环进行另一轮调度。

本发明的另一目的在于提供一种应用所述的基于微服务架构的物联网平台构建方法的物联网平台构建系统,所述物联网平台构建系统包括:

微服务层级划分模块,用于对物联网平台划分微服务层级;其中,所述微服务层级包括数据接入层、数据处理层、服务层和应用层;

kubernetes集群搭建模块,用于搭建kubernetes集群,三主六从,实现集群的高可用性;

成镜像构建模块,用于将平台所有拆分的项目构建成镜像,并在集群上进行相应的部署,所述微服务的部署模块使用容器集群管理工具kubernetes;

扩容和缩容模块,用于在实现集群服务的负载均衡时,通过监控状态、分级阶段、计划制定和执行操作实现智能的扩容和缩容;

模块添加模块,用于在kubernetes架构上添加监视模块,预测模块和资源动态调度模块,自动扩容缩容模块;

数据收集模块,用于通过监控模块收集节点上所有容器的资源使用情况;其中,所述监控模块是在每个节点运行监控容器;

监控方案选择模块,用于选择Prometheus+Grafana作为监控方案;

预测模型建立模块,用于利用监控模块提供的历史资源使用情况数据,建立灰度预测模型,预测未来一段时间内的资源使用情况;

仿真模块,用于通过cAdvisor获取CPU的利用率和内存的利用率关于节点的前一瞬间的值,并使用GM(1,1)预测算法进行仿真;

精度检验模块,用于对预测数据进行精度检验;

预测模块,用于通过收集在kubernetes平台上运行的应用程序的历史资源使用情况数据,使用灰色预测模型来预测未来一段时间内的资源使用情况,然后在分析阶段计算出缩放时间,工作负载预测;

调度模块,用于进行集群抢占式调度的实现;通过调度算法考虑CPU使用率,同时将内存使用率、应用的网络状态在内的多个指标进行判断;同时基于多租户进行资源具体的调度。

本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施所述的基于微服务架构的物联网平台构建方法。

本发明的另一目的在于提供一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机执行所述的基于微服务架构的物联网平台构建方法。

结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的基于微服务架构的物联网平台构建方法,首先将现有物联网平台应用程序划分为了多个小的服务进行重构,服务之间的通信采用REST方法,最大保留了单体平台的接口调用方法。同时利用容器技术将拆分后的微服务都部署在Docker中,传统虚拟机是虚拟出一套完整的硬件,并在其上运行一个完整的操作系统,进而在该系统上再运行所需的应用程序;而容器的应用程序直接运行与宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,因此更容易移植,效率也高。

本发明的提出能够对物联网平台的复杂功能解耦,将物联网应用建立在微服务集合之上,在实际部署中,微服务的多个实例可以增强应用程序的灵活性和健壮性。容器调度框架kubernetes在资源调度方面存在着一些不足之处,在一些复杂的情况下不能很好的适用,因此本发明中对kubernetes中的调度算法也进行了相应的改进,通过区分多租户来实现资源的调度,对于一组不同的任务和不同的资源要求,kubernetes本身调度程序不适合多租户环境,因此本专利提出了两级调度,在kubernetes的整体调度程序上集成了另外一个调度层,可以尊重单个用户的调度决策和资源约束,提高了默认的整体调度机制的公平性;同时提出一个kubernetes伸缩引擎,在该引擎中,利用对Prometheus收集kubernetes集群内荣容器的运行情况,使用灰度预测模型,对收集的数据进行预测分析,使得kubernetes中负载均衡更加快速且准确,提高kubernetes调度器调度效率以及增强群集负载均衡能力,以更加快速准确的对以满足在复杂多变的物联网环境下的需求。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的基于微服务架构的物联网平台构建方法流程图。

图2是本发明实施例提供的物联网平台构建系统结构框图;

图中:1、微服务层级划分模块;2、kubernetes集群搭建模块;3、成镜像构建模块;4、扩容和缩容模块;5、模块添加模块;6、数据收集模块;7、监控方案选择模块;8、预测模型建立模块;9、仿真模块;10、精度检验模块;11、预测模块;12、调度模块。

图3是本发明实施例提供的物联网平台分层架构图。

图4是本发明实施例提供的微服务编排架构图(Kubernetes架构图)。

图5是本发明实施例提供的调度总体架构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

针对现有技术存在的问题,本发明提供了一种基于微服务架构的物联网平台构建方法,下面结合附图对本发明作详细的描述。

如图1所示,本发明实施例提供的基于微服务架构的物联网平台构建方法包括以下步骤:

S101,对物联网平台划分微服务层级;其中,所述微服务层级包括数据接入层、数据处理层、服务层和应用层;

S102,搭建kubernetes集群,三主六从,实现集群的高可用性;

S103,将平台所有拆分的项目构建成镜像,并在集群上进行相应的部署;

S104,微服务的部署模块使用容器集群管理工具kubernetes;

S105,在实现集群服务的负载均衡时,通过监控状态、分级阶段、计划制定和执行操作实现智能的扩容和缩容;

S106,在kubernetes架构上添加监视模块,预测模块和资源动态调度模块,自动扩容缩容模块;

S107,通过监控模块收集节点上所有容器的资源使用情况;其中,所述监控模块是在每个节点运行监控容器;

S108,选择Prometheus+Grafana作为监控方案;

S109,利用监控模块提供的历史资源使用情况数据,建立灰度预测模型,预测未来一段时间内的资源使用情况;

S110,使用cAdvisor获取CPU的利用率和内存的利用率关于节点的前一瞬间的值,并使用GM(1,1)预测算法进行仿真;

S111,对S107中的预测数据进行精度检验;

S112,通过收集在kubernetes平台上运行的应用程序的历史资源使用情况数据,使用灰色预测模型来预测未来一段时间内的资源使用情况,然后在分析阶段计算出缩放时间,工作负载预测;

S113,集群抢占式调度的实现;

S114,通过调度算法考虑CPU使用率,同时将内存使用率、应用的网络状态在内的多个指标进行判断;

S115,基于多租户进行资源具体的调度。

本发明提供的基于微服务架构的物联网平台构建方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的基于微服务架构的物联网平台构建方法仅仅是一个具体实施例而已。

如图2所示,本发明实施例提供的物联网平台构建系统包括:

微服务层级划分模块1,用于对物联网平台划分微服务层级;其中,所述微服务层级包括数据接入层、数据处理层、服务层和应用层;

kubernetes集群搭建模块2,用于搭建kubernetes集群,三主六从,实现集群的高可用性;

成镜像构建模块3,用于将平台所有拆分的项目构建成镜像,并在集群上进行相应的部署,所述微服务的部署模块使用容器集群管理工具kubernetes;

扩容和缩容模块4,用于在实现集群服务的负载均衡时,通过监控状态、分级阶段、计划制定和执行操作实现智能的扩容和缩容;

模块添加模块5,用于在kubernetes架构上添加监视模块,预测模块和资源动态调度模块,自动扩容缩容模块;

数据收集模块6,用于通过监控模块收集节点上所有容器的资源使用情况;其中,所述监控模块是在每个节点运行监控容器;

监控方案选择模块7,用于选择Prometheus+Grafana作为监控方案;

预测模型建立模块8,用于利用监控模块提供的历史资源使用情况数据,建立灰度预测模型,预测未来一段时间内的资源使用情况;

仿真模块9,用于通过cAdvisor获取CPU的利用率和内存的利用率关于节点的前一瞬间的值,并使用GM(1,1)预测算法进行仿真;

精度检验模块10,用于对预测数据进行精度检验;

预测模块11,用于通过收集在kubernetes平台上运行的应用程序的历史资源使用情况数据,使用灰色预测模型来预测未来一段时间内的资源使用情况,然后在分析阶段计算出缩放时间,工作负载预测;

调度模块12,用于进行集群抢占式调度的实现;通过调度算法考虑CPU使用率,同时将内存使用率、应用的网络状态在内的多个指标进行判断;同时基于多租户进行资源具体的调度。

下面结合实施例对本发明的技术方案作进一步的描述。

1、本发明首先将现有物联网平台应用程序划分为了多个小的服务进行重构,服务之间的通信采用REST方法,最大保留了单体平台的接口调用方法。同时利用容器技术将拆分后的微服务都部署在Docker中,传统虚拟机是虚拟出一套完整的硬件,并在其上运行一个完整的操作系统,进而在该系统上再运行所需的应用程序;而容器的应用程序直接运行与宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,因此更容易移植,效率也高。

本发明的提出能够对物联网平台的复杂功能解耦,将物联网应用建立在微服务集合之上,在实际部署中,微服务的多个实例可以增强应用程序的灵活性和健壮性。容器调度框架kubernetes在资源调度方面存在着一些不足之处,在一些复杂的情况下不能很好的适用,因此本发明中对kubernetes中的调度算法也进行了相应的改进,通过区分多租户来实现资源的调度,对于一组不同的任务和不同的资源要求,kubernetes本身调度程序不适合多租户环境,因此本专利提出了两级调度,在kubernetes的整体调度程序上集成了另外一个调度层,可以尊重单个用户的调度决策和资源约束,提高了默认的整体调度机制的公平性;同时提出一个kubernetes伸缩引擎,在该引擎中,利用对Prometheus收集kubernetes集群内荣容器的运行情况,使用灰度预测模型,对收集的数据进行预测分析,使得kubernetes中负载均衡更加快速且准确,提高kubernetes调度器调度效率以及增强群集负载均衡能力,以更加快速准确的对以满足在复杂多变的物联网环境下的需求。

2、针对现有技术存在的问题,本发明提出了基于微服务架构的物联网平台构建方法。本发明是这样实现的,基于微服务架构的物联网平台的构建方法如下:

(1)对物联网平台划分微服务层级,分别为数据接入层、数据处理层、服务层、应用层。

(2)搭建kubernetes集群,三主六从,实现集群的高可用性;

(3)将平台所有拆分的项目构建成镜像,并在集群上进行相应的部署;

(4)微服务的部署模块使用容器集群管理工具kubernetes;

(5)在实现集群服务的负载均衡时,为了能够更加智能的扩容和缩容,需要实现的过程大概有:监控状态,分级阶段,计划制定,执行操作;

(6)在kubernetes架构上添加监视模块,预测模块和资源动态调度模块,自动扩容缩容模块;

(7)监控模块是在每个节点运行监控容器,以收集节点上所有容器的资源使用情况;

(8)监控方案选择Prometheus+Grafana,具体的实现步骤如下:

步骤一:将Prometheus集成到已经部署好的kubernetes之上,由于kubernetes的特性可以保证Prometheus的高可用性

步骤二:对Prometheus的部署进行优化,实现配置信息热加载

步骤三:配置Prometheus的收集信息规则,以实现对kubernetes集群内运行中容器的信息采集;

(9)在每个工作节点上,资源的使用情况都随着时间而变化。因此研究被监控节点的变化趋势与时间之间的关系,并利用监控模块提供的历史资源使用情况数据,建立预测模型,以预测未来一段时间内的资源使用情况。本专利中选择使用灰度预测模型,因为其可以适用于小数据建模,不用考虑其内部因素。

(10)因为kubernetes的原始调度策略仅计算CPU和内存的资源,因此,假设节点的CPU的利用率为Uc,内存的利用率是Um,首先使用cAdvisor获取Uc和Um关于节点的前一瞬间的,其中Uc={Uc(1),Uc(2),…,Uc(n)},Um={Um(1),Um(2),…,Um(n)}之后使用GM(1,1)预测算法对其进行仿真,然后预测在时间n+1处的Uc与Um的值,主要计算步骤如下:

步骤一:假设时间序列,x

根据灰色预测方法,可以获得GM(1,1)模型的相应白化微分方程:

其中,α称为常数,μ称为发展灰数,为内生控制灰数,是对系统的常定输入,且此方程满足初始条件,

当t=t

的解为

灰色模型的途径是一次累加序列(1)通过最小二乘法来估计常数α和μ。

步骤二:因为x

由于

另y=(x

步骤三:假设

步骤四:把估计值

当k=1,2,…,N-1时,由公式(8)得到的

(11)对(7)中的预测数据进行精度检验,实现方式如下:

步骤一:残差检验,分别计算:

残差:

相对残差:

步骤二:后验差检验:分别计算:

x

x

残差的均值:

残差的方差:

后验差比值:

步骤三:预测精度等级对照表(见表1)

表1预测精度等级对照表

(12)通过收集在kubernetes平台上运行的应用程序的历史资源使用情况数据,使用灰色预测模型来预测未来一段时间内的资源使用情况,然后在分析阶段计算出缩放时间,工作负载预测;

(13)集群抢占式调度的实现:首先将Pod分为高优先级与低优先级,而且每个优先级中增加可以让用户能够自定义的次优先级;使得在调度过程中,kubernetes集群能够对优先级高的Pod进行先行调度,同时当集群资源不能够支撑容器运行的情况时,也能支持高优先级Pod抢占低优先级Pod的功能。

(14)调度算法中,不仅考虑CPU使用率这一个指标,同时将内存使用率、应用的网络状态等多个指标进行判断,从而为任务的调度提供更好的依据。

(15)资源具体的调度基于多租户来进行,整个调度过程如下:

1.在开始之前,第一步先是审核已删除、停止或异常崩溃的实例;

2.内部循环:在优先级的排序中选择一个用户,在用户的队列中选择一个挂起的任务,然后确定是否有节点可以托管该任务;若没有节点可以承载该任务,则从列表中删除该用户,内部循环继续到列表中的下一个用户;

3.外部循环:如果在任务的资源需求和节点的可用资源之间找到匹配,则将该用户从内部循环中删除。然后再次重新计算所有用户的调度优先级,生成新的列表,然后再通过内部循环进行另一轮调度。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号