一种延迟解决冲突的集群分布式调度方法及系统技术方案

技术编号:37156265 阅读:24 留言:0更新日期:2023-04-06 22:17
本发明专利技术公开了一种延迟解决冲突的集群分布式调度方法及系统,涉及计算机技术领域,本发明专利技术方法步骤包括:调度器通过分布式协同服务感知到新的请求;调度器决策调度;若调度冲突,则请求调度器会尝试再次调度一次,执行调度决策之前保留该请求的调度状态,等新的调度决策出来后再次确认之前的工作节点是否可以承载请求,如果依然不能承载请求则向分布式协同服务更新调度结果;系统包括:接口服务、分布式调度器、分布式协同服务、工作节点。本发明专利技术系统通过设置分布式协同服务,并通过延迟解决了调度冲突的问题,提高了调度冲突的解决效率。提高了调度冲突的解决效率。提高了调度冲突的解决效率。

【技术实现步骤摘要】
一种延迟解决冲突的集群分布式调度方法及系统


[0001]本专利技术涉及计算机
,更具体地说,涉及一种延迟解决冲突的集群分布式调度方法及系统。

技术介绍

[0002]随着数据处理规模的增长,传统的单机计算模式已经不能满足日益增长的信息服务需求。集群(cluster)是一组相互独立的、通过高速网络互联的计算机,它们构成了一个计算组,并可以统一的方式进行管理。集群可以实现很高的运算速度,完成大运算量的计算,具有较高的响应能力,能够降低整体运维成本,因此得到了越来越多的应用。
[0003]然而,随着大数据技术的发展和企业数据仓库中离线计算任务数据规模的膨胀,单独搭建计算集群带来的成本越来越高昂,越来越多的用户倾向于不再为离线的计算服务单独建立集群和机房,而是将在线业务与离线业务混布在同一个集群。混部后的集群规模越来越大,同时因为有在线业务的存在,对于调度系统的可用性要求非常高,如何实现一个可用性高、调度性能也搞的系统成为了问题。
[0004]现有的集群调度系统存在如下问题:
[0005]1)中心化调度器存在单点故障以及瓶颈:以Kubernetes为例,虽然通过竞选实现了高可用,但中心化调度设计在调度故障时,整个系统会有较长时间(10秒级不调度)的不可用。同时在大规模集群时,调度Pod的QPS达到个位数;
[0006]2)各种离线业务场景需要大规模、高性能集群调度能力,而现有调度系统性能无法满足业务需求;
[0007]3)高并发交互式业务场景下,每个请求处理时间都在亚秒级(百毫秒),请求并发量可达万/秒(甚至更高),极高的性能以极低的调度延迟需求现有调度系统很难满足;
[0008]在离线混部业务让集群规模更大,调度需求更加复杂。

技术实现思路

[0009]本专利技术要解决的技术问题是提供一种延迟解决冲突的集群分布式调度方法及系统,以解决
技术介绍
中提到的问题。
[0010]为了达到上述目的,本专利技术采取以下技术方案:
[0011]一种延迟解决冲突的集群分布式调度方法,包括如下步骤:
[0012]S1:客户端的调度请求提交到接口服务,接口服务对客户端做合法性校验和流量控制,如果客户端身份合法且未被限流则进入S2;
[0013]S2:接口服务通过分布式协同服务感知所有调度器,将所述客户端的请求转发到其中一个调度器;
[0014]S3:接口服务选择调度器后,在请求中标记调度器的名字,将请求记录在分布式协同服务中;
[0015]S4:调度器通过List/Watch机制感知到新的请求,并根据请求中调度器的名字是
否为自己决策是否调度该请求;若是,则调度该请求;
[0016]S5:被选择的调度器根据当前所有工作节点的负载状态决策请求被调度到哪个工作节点,工作节点的负载状态通过所有请求的调度结果统计出来;
[0017]S6:分布式调度器将调度结果记录在请求中并更新分布式协同服务中该请求的状态,分布式协同服务将更新后的请求通知到所有的调度器;
[0018]S7:调度器接收到分布式协同服务通知的更新结果后,统计此时请求被调度节点的负载状态,如果节点此时可以承载请求则通知工作节点执行该请求;如果此时节点无法承载请求,则为调度冲突;
[0019]S8:调度冲突的请求调度器会尝试再次调度一次,执行调度决策之前保留该请求的调度状态,等新的调度决策出来后再次确认之前的工作节点是否可以承载请求,如果依然不能承载请求则向分布式协同服务更新调度结果。
[0020]可选的,S8中解决冲突的方式还包括预估法:根据同类请求统计平均处理时间以估计该请求在工作节点估计需要等待多长时间,时间超过忍耐值则立刻重新调度。
[0021]可选的,S8中解决冲突的方式还包括驱逐法:如果冲突一直无法解决,则直接驱逐工作节点上优先级较低的请求以释放资源。
[0022]可选的,S8中解决冲突的方式还包括随机延迟法:随机延迟重新调度的时间以降低冲突发生概率。
[0023]优选的,S1中,若客户端不合法或者被限流则返回相应的错误代码。
[0024]本专利技术还公开了一种延迟解决冲突的集群分布式调度,所述系统包括接口服务、多个连接于接口服务的分布式调度器、连接于所述接口服务以及每个所述分布式调度器的分布式协同服务,以及多个工作节点;每个工作节点均与所述分布式协同服务以及每个所述分布式调度器连接。
[0025]优选的,每个所述分布式调度器均向所述分布式协同服务注册自己。
[0026]优选的,所述分布式调度器最终的调度结果记录在所述分布式协同服务中。
[0027]优选的,所述分布式协同服务可将存储的调度结果通知给所有的分布式调度器。
[0028]优选的,所述分布式调度器并发式向所述分布式协同服务提交调度结果,所述分布式协同服务根据调度结果按时间排序,并按照时间顺序通知到所有所述分布式调度器。
[0029]本专利技术相对于现有技术的优点在于:
[0030]1)极高的可用性:只要有一个调度器正常,整个系统就依然可用,无论是正常的升级/灰度,还是基础设施故障,调度系统都保持可用。
[0031]2)极高的调度性能:本方案采用分布式调度器设计,没有单点故障和瓶颈,多个调度器同时均分所有请求并执行调度,调度性能随着调度器增加而增加;调度冲突时,不会立刻解决冲突,而是采用多种策略延迟解决冲突,在资源负载率高的情况下会缓解冲突率,进而提高调度性能。
[0032]3)极小的故障影响面:一个调度故障只影响排队中归属该调度器的请求的调度延迟,其他调度请求没有任何影响。
附图说明
[0033]图1是本专利技术系统示意图;
[0034]图2是本专利技术分布式协同服务示意图。
具体实施方式
[0035]下面结合附图对本专利技术的具体实施方式作描述。
[0036]本专利技术系统如图1所示,由接口服务、多个分布式调度器(后文提到的调度器就是分布式调度器中的某一个)、分布式协同服务和多个工作节点组成。
[0037]其中,接口服务:
[0038]是分布式调度系统的接口,所有调度请求都需要通过接口服务提交。接口服务的主要功能为:
[0039]1)客户端合法性校验:只有合法的客户端才能提交调度请求;
[0040]2)负载均衡:将调度请求均匀的分散到多个调度器;
[0041]3)流量控制:避免异常客户端瞬间提交大量请求影响整个调度系统;
[0042]分布式协同服务:
[0043]分布式协同服务负责调度器之间的协同,辅助调度器发现并解决调度冲突。分布式协同服务的主要功能为:
[0044]1)注册调度器:调度器需要向协同服务注册自己,这样调度器才能知道有哪些调度器,如上图红色线;
[0045]2)注册工作节点:工作节点需要向分布式协同服务注册(如图1黑色线),这样调度器才能知道有哪些工作节点,以便将请求调度到工作节点;
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种延迟解决冲突的集群分布式调度方法,其特征在于,包括如下步骤:S1:客户端的调度请求提交到接口服务,接口服务对客户端做合法性校验和流量控制,如果客户端身份合法且未被限流则进入S2;S2:接口服务通过分布式协同服务感知所有调度器,将所述客户端的请求转发到其中一个调度器;S3:接口服务选择调度器后,在请求中标记调度器的名字,将请求记录在分布式协同服务中;S4:调度器通过List/Watch机制感知到新的请求,并根据请求中调度器的名字是否为自己决策是否调度该请求;若是,则调度该请求;S5:被选择的调度器根据当前所有工作节点的负载状态决策请求被调度到哪个工作节点,工作节点的负载状态通过所有请求的调度结果统计出来;S6:分布式调度器将调度结果记录在请求中并更新分布式协同服务中该请求的状态,分布式协同服务将更新后的请求通知到所有的调度器;S7:调度器接收到分布式协同服务通知的更新结果后,统计此时请求被调度节点的负载状态,如果节点此时可以承载请求则通知工作节点执行该请求;如果此时节点无法承载请求,则为调度冲突;S8:调度冲突的请求调度器会尝试再次调度一次,执行调度决策之前保留该请求的调度状态,等新的调度决策出来后再次确认之前的工作节点是否可以承载请求,如果依然不能承载请求则向分布式协同服务更新调度结果。2.根据权利要求1所述方法,其特征在于,S8中解决冲突的方式还包括预估法:根据同类请求统计平...

【专利技术属性】
技术研发人员:周光明韩辉马三魏亭李瑞山
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1