CN103810045B - 资源分配方法、资源管理器、资源服务器及系统 - Google Patents
资源分配方法、资源管理器、资源服务器及系统 Download PDFInfo
- Publication number
- CN103810045B CN103810045B CN201210449230.7A CN201210449230A CN103810045B CN 103810045 B CN103810045 B CN 103810045B CN 201210449230 A CN201210449230 A CN 201210449230A CN 103810045 B CN103810045 B CN 103810045B
- Authority
- CN
- China
- Prior art keywords
- resource
- version number
- resources
- resource group
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种资源分配方法、资源管理器、资源服务器及系统,所述方法包括:管理器接收资源组中的资源发送的注册信息,所述注册信息中携带有资源的版本号和资源标识;根据所述注册信息,判断所述资源组中是否有资源变更;如果所述资源组中有资源变更,则生成新版本号,并发送所述新版本号到所述资源组中的资源,用以所述资源将版本号更新为所述新版本号;判断接收到的所述注册信息中是否存在与所述新版本号不相同的版本号,如果否,则将该与所述新版本号相同的资源作为可用资源。本申请能够将任务在资源组内的进行合理的动态分配,不需要依赖数据库,避免出现任务处理延迟的情况。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种资源分配方法、资源管理器、资源服务器及系统。
背景技术
本申请中的资源是指能够提供某种特定业务处理能力的设备或程序,例如一台应用服务器或者一个线程等。在处理大数据量的业务场景中,单个线程甚至单台服务器的处理能力都是有限的,无法满足数据处理速度的要求,因此在这种场景中,往往需要引入多台服务器,共同处理同一个任务。
资源组是具备同一个业务处理功能的一组资源集合,同一资源集合内的资源具有相同或不同的业务处理能力,并可以分布式的部署方式构成分布式系统。分布式系统以全局方式管理系统资源,可以为用户任意调度系统内的资源。当用户提交一个作业时,分布式系统能够根据需要选择合适的执行资源数及用于执行任务的资源,将用户的作业提交到该些资源,在处理器完成作业后,将结果传给用户。资源版本是用于分布式系统协调资源组内各个资源之间就绪状态的标志位,只有资源组内所有的资源版本一致时,资源组变更才结束,此时才能重新分配任务,否则仍需按资源组变化前的分配情况进行执行。
现有的分布式资源分配方法是通过将任务按一定维度切割成更细粒度的子任务,并存储于数据库的任务配置表中,然后由资源组中每个资源服务器通过对数据库中子任务记录进行抢占式读取,若读取成功则该子任务属于本资源处理,否则为其它资源处理,并每隔一定时常更新自己负责的子任务的记录的状态,确保该子任务不被其它资源读取,若超过一定时长记录未被更新,则认为原先负责处理该子任务的资源出现异常或者已经推出资源组,该子任务可以被其它资源组内的资源处理。
由于现有的分布式资源分配方法是基于数据库存储的进行的,出于性能的考虑,需要引入一个子任务持有时间超时的概念,以减少对数据库的访问频率,但也因此带来了任务调度延迟的问题,尤其是在新增资源或出现下线资源时,不能动态调整任务的分配,导致处理延时。例如原有资源组内由三个资源共同负责处理一个任务,每个资源负责其中的三分之一,在某个时刻,其中一个资源异常退出资源组,在这种情况下,该资源原先持有的子任务将不在资源组的处理范围内,直到其持有时间超时而被其它两个资源重新分配为止,因此会导致任务调度延迟的情况。
发明内容
本申请的目的是,提供一种资源分配方法、资源管理器、资源服务器及系统,将实际可用资源组信息推送至每个资源,确保每个资源均可获得整个资源组的信息,将任务在资源组内的进行合理的动态分配,不需要依赖数据库,避免出现任务处理延迟的情况。
为实现上述目的,本申请提供了一种资源分配方法,所述方法包括:
管理器接收资源组中的资源发送的注册信息,所述注册信息中携带有资源的版本号和资源标识;
根据所述注册信息,判断所述资源组中是否有资源变更;
如果所述资源组中有资源变更,则生成新版本号,并发送所述新版本号到所述资源组中的资源,用以所述资源将版本号更新为所述新版本号;
判断接收到的所述注册信息中是否存在与所述新版本号不相同的版本号,如果否,则将该与所述新版本号相同的资源作为可用资源。
又一方面,本申请还提供了一种资源分配方法,所述方法包括:
当前资源接收资源组的管理器发送的新版本号;
判断所述当前资源的版本号是否与所述新版本号相同,如果是,则将所述当前资源作为可用资源,否则,将所述当前资源的版本号更新为所述新版本号;
发送注册信息至所述管理器,所述注册信息中携带有所述当前资源的版本号和资源标识。
再一方面,本申请还提供了一种资源分配方法,所述方法包括:
接收资源组中的资源发送的注册信息,所述注册信息中携带有资源的版本号和资源标识;
根据所述注册信息,判断所述资源组中是否有资源变更,如果有,则更新所述资源组的资源列表,并将更新后的资源列表发送给所述资源组中各个资源,用以所述资源组中各个资源更新版本号;
判断所述资源组中各个资源的版本号是否一致,如果一致,则将所述资源组中的资源作为可用资源。
再一方面,本申请还提供了一种资源分配方法,所述方法包括:
发送注册信息至管理器,所述注册信息中携带有资源的版本号和资源标识,用以所述管理器更新所述资源组的资源列表;
接收所述管理器发送的资源列表;
判断所接收到的资源列表与上一次接收到的资源列表是否相同,如果不相同,则更新自身的版本号;
发送新的注册信息至所述管理器,所述新的注册信息中携带有更新后的版本号,用以所述管理器在判断到所述资源组中各个资源的版本号一致时,将所述资源组中的资源作为可用资源。
再一方面,本申请还提供了一种资源分配方法,所述方法包括:
管理器接收资源组中的资源发送的注册信息,所述注册信息中携带有资源的版本号和资源标识;
所述管理器根据所述注册信息,判断所述资源组中是否有资源变更,如果有,则更新所述资源组的资源列表,并将更新后的资源列表发送给所述资源组中各个资源;
所述资源组中各个资源判断所接收到的资源列表与上一次接收到的资源列表是否相同,如果不相同,则更新自身的版本号,并发送新的注册信息至所述管理器,所述新的注册信息中携带有更新后的版本号;
所述管理器判断所述资源组中各个资源的版本号是否一致,如果一致,则将所述资源组中的资源作为可用资源。
再一方面,本申请还提供了一种资源管理器,所述管理器包括:
第一接收单元,用于接收资源组中的资源发送的注册信息,所述注册信息中携带有资源的版本号和资源标识;
第一判断单元,用于根据所述注册信息,判断所述资源组中是否有资源变更,如果所述资源组中有资源变更,则触发第一更新单元;
第一更新单元,用于在受到所述第一判断单元的触发时,生成新版本号,并发送所述新版本号到所述资源组中的资源;
第二判断单元,用于判断所述第一接收单元接收到的所述注册信息中是否存在与所述新版本号不相同的版本号,如果否,则触发第一处理单元;
第一处理单元,用于在受到所述第二判断单元的触发时,将所述注册信息中与所述新版本号相同的资源作为可用资源。
再一方面,本申请还提供了一种资源服务器,所述服务器包括:
第一获取单元,用于接收资源组的管理器发送的新版本号;
版本控制单元,用于判断所述当前资源的版本号是否与所述新版本号相同,如果是,则标识为可用资源,否则,将所述当前资源的版本号更新为所述新版本号;
注册单元,用于发送注册信息至所述管理器,所述注册信息中携带有所述当前资源的版本号和资源标识。
再一方面,本申请还提供了一种资源管理器,所述管理器包括:
第二接收单元,用于接收资源组中的资源发送的注册信息,所述注册信息中携带有资源的版本号和资源标识;
第三判断单元,用于根据所述注册信息,判断所述资源组中是否有资源变更,如果有,则更新所述资源组的资源列表,并将更新后的资源列表发送给所述资源组中各个资源,用以所述资源组中各个资源更新版本号;
第四判断单元,用于判断所述资源组中各个资源的版本号是否一致,如果一致,则将所述资源组中的资源作为可用资源。
再一方面,本申请还提供了一种资源服务器,所述服务器包括:
注册单元,用于发送注册信息至管理器,所述注册信息中携带有资源的版本号和资源标识,用以所述管理器更新所述资源组的资源列表;
第二获取单元,用于接收所述管理器发送的资源列表;
版本变更单元,用于判断所述第二获取单元接收到的资源列表与上一次接收到的资源列表是否相同,如果不相同,则更新自身的版本号,并触发所述注册单元发送新的注册信息至所述管理器,所述新的注册信息中携带有更新后的版本号。
再一方面,本申请还提供了一种资源系统,所述系统包括:
本申请实施例提供的分布式资源管理器;
至少一个本申请实施例提供的分布式资源服务器;
所述各个服务器与所述管理器相连接。
本申请提供的资源分配方法、资源管理器、资源服务器及系统,通过分布式协调系统管理资源组内实际可用资源的信息,确保每个资源均可获得整个资源组的信息,同时依据任务分配策略计算得出各个资源实际处理的任务范围,可以将任务在资源组内的进行合理的动态分配,不需要依赖数据库,避免出现任务处理延迟的情况。
附图说明
图1为本申请实施例一提供的资源分配方法流程图;
图2为本申请实施例一提供的将待执行任务分配给可用资源的流程图;
图3为本申请实施例二提供的资源分配方法流程图;
图4为本申请实施例三提供的资源分配方法流程图;
图5为本申请实施例四提供的分布式资源系统的示意图;
图6为本申请实施例四提供的资源管理器的示意图;
图7为本申请实施例四提供的资源服务器的示意图;
图8为本申请实施例五提供的资源管理器的示意图;
图9为本申请实施例五提供的资源服务器的示意图。
具体实施方式
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。
分布式资源系统是一组具备业务处理能力的资源集合。一个分布式资源系统包括一个管理器和多个资源,通常以其中一个装有分布式协调系统软件(如Zookeeper等)的资源作为管理器,用以协调和管理整个资源组。Zookeeper是一种常用的分布式应用程序协调系统,是开源的分布式计算平台Hadoop中的一个子项目,是一个针对大型分布式系统的可靠的协调系统,应用于提供一致性服务的软件。本申请以基于Zookeeper为协调系统的资源作为管理器实现分布式资源分配为例进行说明。
本申请提供的资源分配方法、资源管理器、资源服务器及系统,可用于分布式异步调度处理的应用场景。例如,在B2C(Business to Consumer,商家对消费者)、C2C(Consumerto Consumer,消费者对消费者)等类型的电子商务网站中,每天都会有大量的订单产生。系统在处理订单交易时主要是对生成订单的主流程进行处理,包括每个订单的执行事件,如客户下单或支付款项等操作。对于订单产生后的非核心的业务流程,如监控订单的数据、日志统计、订单打标等,系统并不会在进行主流程处理时进行一并处理。然而,通过对订单的分类统计,系统可以分析到一些有用的信息。因此,系统通常需要在后台通过异步调度的方式进行处理这部分的业务任务。这种异步调度的处理方式,可以灵活地选择业务处理的时间,避免占用主流程同步的处理资源,导致系统处理主流程时负担较大,可以有效地减轻系统压力。
本申请以上述订单业务的异步调度处理的应用场景为例进行说明,所属领域技术人员应当理解,本申请的具体应用场景还可以包括其他分布式异步处理的场景,并不以此限制本申请。
实施例一
图1是本实施例提供的资源分配方法流程图,如图1所示,本申请的资源分配方法包括:
步骤S101、管理器接收资源组中的资源发送的注册信息。
当资源组中有资源向管理器发送注册信息时,管理器接收所述注册信息。
其中,所述注册信息中携带有资源的版本号和资源的资源标识。所述资源的资源标识可以是IP地址、帐号等。
资源组中各个资源以当前版本号向管理器注册自己。如果是新增资源,则可以在初始化后,以0为当前版本号向管理器注册自己,管理器收到0版本号的注册信息。如果某一资源下线,则无法再发送版本号,管理器不能收到该资源的注册信息。
步骤S102、管理器根据所述注册信息,判断所述资源组中是否有资源变更,如果是,则进入步骤S103,否则进入步骤S107。
具体地,管理器通过各个资源的注册信息的资源标识,即可判断资源组中是否有新增资源或下线资源,一旦资源组中存在新增或下线的资源标识时,则判断为所述资源组中有资源变更。
步骤S103、管理器生成新版本号,并发送所述新版本号到所述资源组中的资源。
当有资源变更时,管理器根据资源组中各个资源的注册信息,生成新版本号。对于版本号递增的资源组,通常将资源组中最大的资源版本号加1作为新版本号。此时整个资源组中的资源都需要进行版本号更新,管理器将新版本号发送到资源组中的资源。
资源组中的资源在接收到新版本号时,判断资源的当前版本号是否与所述新版本号相同,如果不相同,则将该资源的当前版本号更新为所述新版本号。变更后,资源将携带有新版本号的注册信息发送给管理器,管理器则接收各资源发送的更新后的注册信息。
步骤S104、判断接收到的所述注册信息中是否存在与所述新版本号不相同的资源的版本号,如果是,则进入步骤S105,发送所述新版本号至所述与新版本号不相同的资源,如果否,则进入步骤S106,将该些与所述新版本号相同的资源作为可用资源。
具体地,注册信息包括资源组中资源在接收到所述新版本号,并将版本号更新为所述新版本号后发送的注册信息。
需要说明的是,由于管理器与资源组中的资源之间保持实时的交互状态,当资源更新完版本号后,即发送新的注册信息给管理器进行注册,新的注册信息中携带有新版本号,此时管理器则可接收到该资源发送的新的注册信息。
步骤S107、判断所述资源组中各资源的版本号是否一致,如果一致,则进入步骤S108,将所述资源组的待执行任务分配给所述可用资源。如果不一致,则进入步骤S109。
对于大数据量的实时处理的业务场景,基本上都采用分批次循环处理的方式,将所需要处理的业务分成多个批次进行任务处理,并利用资源的版本号表示任务处理的批次。由于任务处理需要消耗时间,所以每次资源组发生变更后,需要等待当前批次任务尚未执行完毕的资源全部执行完毕后,才能重新分配任务,否则可能会导致部分数据被重复处理。因而,在当前批次任务处理完成后,不会直接开始下一个批次的任务处理,而是等待其它资源完成处理,在完成重新分配任务后,再开始下一个批次的任务处理。
因此,在进行分配任务前,先判断资源组中各个资源的版本号是否一致,如果不一致,则需要等待资源组中各资源统一版本号,进行步骤S109。当资源组中各个资源的版本号一致时,将待执行任务分配给各个可用资源。
步骤S109、将所述资源组中资源的最新的版本号确定为新版本号,并将所述新版本号发送至所述资源组中的资源,返回步骤S104。
其中,最新的版本号通常为资源组中完成了前一批次任务的资源的版本号,例如对于版本号递增的资源组,通常为最大的资源版本号。管理器可以将新版本号发送给整个资源组中的资源,也可以将新版本号发送给注册信息中与新版本号不同的资源。
资源组中的资源在接收到新版本号时,判断资源的当前版本号是否与所述新版本号相同,如果相同,则等待所述资源组中与所述新版本号不相同的资源将版本号更新为所述新版本号。如果不相同,则将该资源的当前版本号更新为所述新版本号。变更后,资源将携带有新版本号的注册信息发送给管理器,管理器则接收各资源发送的更新后的注册信息。
图2是本实施例提供的将待执行任务分配给可用资源的流程图,如图2所示,具体包括:
步骤S201、管理器获得所述资源组的待执行任务,确定需要的执行资源数A。
所述执行资源数A可以根据以往经验或实际应用情况,设定一个执行资源数A。例如,根据以往经验可以评估出待执行任务所需要的资源数,或者,当实际情况监测到资源使用的性能不能满足待执行任务时,可适当增加执行资源数。
管理器可以先根据预定义规则划分所述待执行任务,用以细分待执行任务,以便均衡地将待执行任务分配给对应的资源。所述预定义规则可以但不限于采用取模运算的方式。
以订单的日志统计的这一业务任务来说,具体是要从多个维度对订单数据进行分类统计,包括对订单数量按照付款类型(如货到付款、普通付款)等分类进行数量统计。在进行任务细分时,具体为:以订单号为准,将订单统计任务分成256组(通常为2的n次方),所采用的取模运算方法具体为:将订单号除以256后取余数作为该订单号的所述分类号码,这样可以将待执行任务细分为256组子任务。由于订单号通常为连续的编号,所得到的256组中包含的子任务数的个数也较为平均,使得被分配到任务的资源进行任务处理所需的时间也较为平均,有利于减少整个资源组的协调时间。
由于管理器设置的执行资源数A与资源组中总资源数S不一定相等,设置的执行资源数A有可能超出总资源数S,也有可能不需要所有资源都进行任务处理,因此,在针对任务进行资源分配时,先进行步骤S202的判断处理。
步骤S202、判断所述执行资源数A是否大于或等于所述可用资源的总资源数S,如果是,则进入步骤S203,否则,进入步骤S204。
步骤S203、利用整个所述资源组,将所述待执行任务分配到整个所述资源组。
如果所述执行资源数A大于或等于所述总资源数S,即S≤A,说明待执行任务所需要的执行资源数较多,则利用整个所述资源组,将所述待执行任务分配到整个所述资源组。
如果所述执行资源数A小于所述总资源数S,即A<S,则说明资源组中可用资源数较多,进行步骤S204。
步骤S204、从所述总资源数S中选择A个资源,将所述待执行任务分配到所述A个资源。
其中,A个资源的选择可以但不限于采用以下方式进行选择,具体包括:
步骤S204_1、获取所述资源组中配置的偏移量L。
所述偏移量L表示执行任务的第一个资源在所述资源组中的序号,可以是管理器预先定义好的。例如,管理器可以规定在每次重新分配任务时,都先将偏移量L加1,以平衡整个资源组中的每个资源所需要处理的任务,使得管理器的任务分配更合理。
步骤S204_2、判断所述执行资源数A与所述资源组中配置一个偏移量L之和L+A是否小于所述总资源数S,如果是,则进入步骤S204_3,否则进入步骤S204_4。
步骤S204_3、将所述总资源数S与执行资源数A之差作为实际的偏移量R,即R=S-A。
也就是说,当总资源数S<L+A,则将所述总资源数S与执行资源数A之差作为实际的偏移量R,即R=S-A,将任务分配给资源组中的后A个资源。
步骤S204_4、将所述偏移量L作为实际的偏移量R。
也就是说,如果所述总资源数S≥L+A,则将所述偏移量L作为实际的偏移量R,将任务从预设的偏移量L开始分配。
步骤S204_5、将所述待执行任务分配到所述资源组中从第R个序号开始的A个资源。
在确定了实际偏移量R之后,管理器则将任务依次分配给资源组中从第R个序号开始的A个资源。
举个例子,资源组中包括资源K0~K10,当管理器获取当前批次的待执行任务之后,设定所需要的执行资源数A=4,此时管理器预设的偏移量L=5,可以判断出L+A=9<总资源数S=11,则此时实际偏移量R=L=5,管理器将任务分配给资源组中的资源K5-K8这4个资源。当管理器预设的偏移量L=8时,可以判断出L+A=12<总资源数S=11,则此时确定实际偏移量R=S-A=11-4=7,管理器将任务分配给资源组中的资源K7~K10这4个资源。
实施例二
图3是本实施例提供的资源分配方法流程图,如图3所示,本申请的资源分配方法包括:
步骤S301、资源接收资源组的管理器发送的新版本号。
管理器发送的新版本号包括:当所述管理器判断到所述资源组中有资源变更时生成的新版本号;或者,当所述管理器判断到所述资源组中没有资源变更时确定的新版本号,所述确定的新版本号为所述资源组中资源的最新的版本号。
步骤S302、判断所述当前资源的版本号是否与所述新版本号相同,如果是,则进入步骤S303,否则进入步骤S304。
步骤S303、将所述当前资源作为可用资源。
步骤S304、将所述当前资源的版本号更新为所述新版本号。
资源组中的资源在接收到新版本号时,判断资源的当前版本号是否与所述新版本号相同,如果相同,则等待所述资源组中与所述新版本号不相同的资源将版本号更新为所述新版本号。如果不相同,则将该资源的当前版本号更新为所述新版本号。
步骤S305、发送注册信息至所述管理器,所述注册信息中携带有所述当前资源的版本号和资源标识。
资源组中的资源在变更版本号后,将携带有新版本号的注册信息发送给管理器,管理器则接收各资源发送的更新后的注册信息。
管理器根据注册信息,判断所述资源组中是否有资源变更。当所述资源组中存在新增或下线的资源标识时,判断为所述资源组中有资源变更。如果有变更,则生成新版本号,用以所述资源更新版本号。如果没有变更,则判断所述资源组中的资源的版本号是否一致,如果是,则执行将所述资源组的待执行任务分配给所述可用资源,否则,等待所述资源组中与所述新版本号不相同的资源将版本号更新为所述新版本号。
步骤S306、接收所述管理器分配的待执行任务,当接收到所述待执行任务时,进行对应的待执行任务的处理。
由于任务处理需要消耗时间,在每次资源组发生变更后,需要等待当前批次任务尚未执行完毕的其他资源全部执行完毕后,才能重新分配任务,以免导致部分数据被重复处理。
当管理器判断到资源组中资源的版本号一致时,则将待执行任务分配给各个资源。此时,各个资源才能接收到管理器分配的任务。当接收到所述待执行任务时,进行对应的待执行任务的处理。
实施例三
管理器可以但不限于采用资源列表的形式,对资源组中的资源进行管理,资源列表为各个资源的资源标识列表。在管理器中管理的资源信息包括:各个资源的资源标识列表及版本号等信息。
图4是本实施例提供的资源分配方法流程图,如图4所示,本申请的资源分配方法包括:
步骤S401、管理器接收资源组中的资源发送的注册信息。
当资源组中资源的版本号出现变更或进行初始化时,发送注册信息至资源组的管理器进行注册。所述注册信息中携带有资源的版本号和资源标识。
资源以当前版本号向管理器注册自己,如果资源是新增资源,则以0为当前版本号向管理器注册自己,管理器将收到0版本号的注册信息。如果资源下线,则无法再发送版本号,管理器不能收到该资源的注册信息。
步骤S402、管理器根据所述注册信息,判断所述资源组中是否有资源变更,如果有,则进入步骤S403,否则,进入步骤S406。
步骤S403、管理器更新所述资源组的资源列表,并将更新后的资源列表发送给所述资源组中各个资源。
当管理器接收到各个资源的注册信息时,则根据该些注册信息,判断资源组中是否有新增或下线的资源标识。当管理器判断到资源列表中有新增或减少的资源标识时,表明资源组有资源变更,则更新所述资源组的资源列表。
当判断到资源组中没有资源变更时,则不更新资源列表。此时,可选地,可将原有的资源列表仍发送至各个资源。
步骤S404、资源组中各个资源判断所接收到的资源列表与上一次接收到的资源列表是否相同,如果不相同,则进入步骤S405,如果相同,则进入步骤S406。
步骤S405、资源更新自身的版本号,并发送新的注册信息至所述管理器,所述新的注册信息中携带有更新后的版本号。
如果有资源发生变更,资源列表中的各个资源接收到新的资源列表,判断到与上一次接收的资源列表不同,表明资源组中有新增或下线的资源,则将版本号更新为新版本号,并将更新后的版本号发送至管理器进行重新注册,返回步骤S401。
资源在更新自身的版本号之前,还包括:判断所述资源是否执行完当前批次的任务,如果是,则进行更新自身的版本号,否则继续执行当前批次的任务,暂时不会更新版本号待到完成任务后,再将版本号更新为新版本号。
如果没有资源发生变更,资源列表中的各个资源接收的资源列表未发生变更,各个资源的版本号不进行统一变更。
步骤S406、管理器判断所述资源组中各个资源的版本号是否一致,如果一致,则进入步骤S407,将所述资源组中的资源作为可用资源,否则进入步骤S408,将与所述资源组中最新的版本号不同的资源作为待同步资源,形成待同步资源列表发送给所述资源组中各个资源。
管理器根据各资源重新注册的注册信息,形成新的资源列表,并判断资源列表中各个资源的版本号是否一致。当判断到资源列表中版本号一致时,则将该些版本号相同的资源作为可用资源,形成可用资源列表。如果不一致,则进入步骤S408,具体地,可以先找出所述各个资源的版本号中最新的版本号,如最大版本号,再将资源列表中版本号与最大版本号不一致的资源确定为待同步资源,形成待同步资源列表,发送至资源组中的各个资源,以使得待同步资源列表中的资源更新版本号至与最大版本号一致。
步骤S409、所述资源组中各个资源判断自身是否在所述待同步资源列表中,如果是,则进入步骤S410。
步骤S410、资源将自身的版本号更新为所述资源组中最新的版本号,并发送新的注册信息至所述管理器,新的注册信息中携带有更新后的版本号。
资源组中各个资源在将自身的版本号更新为所述资源组中最新的版本号之前,还包括:判断所述资源是否执行完当前批次的任务,如果是,则进行更新自身的版本号,否则继续执行当前批次的任务,暂时不会更新版本号待到完成任务后,再将版本号更新为新版本号。
步骤S411、管理器将所述资源组的待执行任务分配给所述可用资源。
将待执行任务分配给资源组中的资源的具体步骤与实施例一中的相同,于此不再赘述。
步骤S412、资源中的资源接收所述管理器分配的待执行任务,当接收到所述待执行任务时,进行对应的待执行任务的处理。
由于任务处理需要消耗时间,在每次资源组发生变更后,需要等待当前批次任务尚未执行完毕的其他资源全部执行完毕后,才能重新分配任务,以免导致部分数据被重复处理。当管理器判断到资源列表中资源的版本号一致时,则将待执行任务分配给各个资源。此时,各个资源才能接收到管理器分配的任务。具体地,包括以下步骤:
步骤S412_1、获取所述管理器发送的执行资源列表。
管理器根据预定义规则划分所述待执行任务,设置执行资源数A,并确定资源组中的A个资源,形成执行资源列表发送给资源组中各个资源。
步骤S412_2、判断当前资源是否在所述执行资源列表中,如果是,则进入步骤S412_3,否则,等待获取管理器发送的资源列表。
步骤S412_3、获取所述当前资源在所述执行资源列表中的序号。
步骤S412_4、根据所述序号从所述管理器中获取对应的待执行任务,进行本批次的待执行任务的处理。
具体地,先利用所述管理器预先定义的子任务组数N,计算所述执行资源列表的A个资源中平均每个资源应负责的子任务数AN,将所述待执行任务的N组子任务划分成A个区间。再根据所述当前资源的序号I N,获取对应第IN个区间的所述子任务。
举个例子,对于资源组中各个资源K0~K10均可获取到管理器发送的执行资源列表,具体为K5~K8,对应序号1,2,3,4。如果当前资源为K0,可以判断到自身并不在所述待同步资源列表中,则表明该资源K0没有被分配到任务,无需处理任何实际任务,则等待下一批次任务的分配。如果当前资源为K5,则可以判断到自身在所述待同步资源列表中,则表明该资源K5被分配到任务,需要执行实际任务。获取得到资源K5在执行资源列表中的序号为1,则表明获取第一区间的子任务。假设待执行任务的子任务组数N=17,计算得到4个资源平均每个资源应负责的子任务组数AN=4.25,分成4个区间,每个区间的子任务组数分别为4,4,4,5。针对于资源K5的序号为1,则获取第1个区间的4组子任务。
本申请的分布式资源组可同时用于多个业务任务的执行,每一个业务任务也可分派给由不同资源组成的资源组。针对不同批次的业务任务,通过不同的版本号加以区分,每一个业务任务可以有自己的编码方式,例如可以任务的名称或代号+序号的版本号形式。一个资源可以同时执行多个任务,即可以有多个版本号。一个资源组可能有部分资源被分配到当前批次的任务,也可能没有被分配到,因此,可能会造成资源列表中版本号不一致的情况。因而,在进行资源分配之前,需要将资源组中的资源的版本号协调到一致。
当判断到资源列表中的版本号一致,则将所述资源列表作为可用资源列表,并将所述资源组的待执行任务分配给所述可用资源列表中的资源。
举个例子,假设某一分布式资源组中包括10个资源K0~K9,用以共同处理第n批次的任务,资源K0~K9的版本号为N,此时,新增加了一个资源K10,该资源K10以0版本向管理器注册自己,管理器收到资源K10的注册信息后,更新资源列表,并将更新后的资源列表发送至资源K0~K10的每一个资源。当资源K0~K10接收到更新后的资源列表后,将该资源列表与原来的资源列表相比,可以判断出新接收到的资源列表发生了变更,则先将版本号变更为N+1,并将更新后的版本号发送至管理器重新注册,管理器在没有新增资源或下线资源的情况下,不更新资源列表,根据资源组中最大的资源版本号确定为新版本号,将版本号与该新版本号不同的资源形成待同步资源列表,仅更新待同步资源列表中资源的版本号。当资源组内的各个资源的版本号一致时,管理器将待执行任务分配给资源组中的资源。
以上是对本申请所提供的资源分配方法进行的详细描述,下面对本申请提供的资源分配装置和系统进行详细描述。
实施例四
图5是本实施例提供的分布式资源系统的结构示意图,如图5所示,本申请的分布式资源系统包括管理器10及至少一个资源服务器20,各个资源服务器20通过总线与管理器10相连接。
图6是本实施例提供的资源管理器的示意图,如图6所示,本申请的资源管理器包括:第一接收单元11、第一判断单元12、第一更新单元13、第二判断单元14、第一处理单元15、第一发送单元16、第二处理单元17和第二发送单元18。
第一接收单元11用于接收资源组中的资源发送的注册信息。
当资源组中有资源向管理器发送注册信息时,管理器的第一接收单元11接收所述注册信息。
其中,所述注册信息中携带有资源的版本号和资源的资源标识。所述资源的资源标识可以是IP地址、帐号等。
第一判断单元12用于根据所述注册信息,判断所述资源组中是否有资源变更,如果所述资源组中有资源变更,则触发第一更新单元13。
具体地,第一判断单元12通过各个资源的注册信息的资源标识,即可判断资源组中是否有新增资源或下线资源,一旦资源组中存在新增或下线的资源标识时,则判断为所述资源组中有资源变更。
第一更新单元13用于在受到第一判断单元12的触发时,生成新版本号,并发送所述新版本号到所述资源组中的资源。
当第一判断单元12判断为有资源变更时,第一更新单元13根据资源组中各个资源的注册信息,生成新版本号。对于版本号递增的资源组,通常将资源组中最大的资源版本号加1作为新版本号。此时整个资源组中的资源都需要进行版本号更新,第一更新单元13将新版本号发送到资源组中的资源。
资源组中的资源在接收到新版本号时,判断资源的当前版本号是否与所述新版本号相同,如果不相同,则将该资源的当前版本号更新为所述新版本号。变更后,资源将携带有新版本号的注册信息发送给管理器,管理器则接收各资源发送的更新后的注册信息。
第二判断单元14用于判断第一接收单元11接收到的所述注册信息中是否存在与所述新版本号不相同的版本号,如果否,则触发第一处理单元15,如果是,则触发第二处理单元16。
第一处理单元15用于在受到第二判断单元14的触发时,将所述注册信息中与所述新版本号相同的资源作为可用资源。
第一发送单元16用于在受到第二判断单元14的触发时,发送所述新版本号至与所述新版本号不相同的资源。
具体地,第一接收单元11接收到的注册信息包括:资源组中资源在接收到所述新版本号,并将版本号更新为所述新版本号后发送的注册信息。
需要说明的是,由于管理器与资源组中的资源之间保持实时的交互状态,当资源更新完版本号后,即发送新的注册信息给管理器进行注册,新的注册信息中携带有新版本号,此时第一接收单元11则可接收到该资源发送的新的注册信息。
第二判断单元14还用于判断资源组中各资源的版本号是否一致,如果一致,则触发第二处理单元17,如果不一致,则触发第二发送单元18。
第二处理单元17用于在受到第二判断单元14的触发时,将所述资源组的待执行任务分配给所述可用资源。
第二发送单元18用于在受到第二判断单元14的触发时,将所述资源组中资源的最新的版本号确定为新版本号,并将所述新版本号发送至所述资源组中的资源。
其中,最新的版本号通常为资源组中完成了前一批次任务的资源的版本号,例如对于版本号递增的资源组,通常为最大的资源版本号。第二发送单元18可以将新版本号发送给整个资源组中的资源,也可以将新版本号发送给注册信息中与新版本号不同的资源。
资源组中的资源在接收到新版本号时,判断资源的当前版本号是否与所述新版本号相同,如果相同,则等待所述资源组中与所述新版本号不相同的资源将版本号更新为所述新版本号。如果不相同,则将该资源的当前版本号更新为所述新版本号。变更后,资源将携带有新版本号的注册信息发送给管理器,第一接收单元11则接收各资源发送的更新后的注册信息。
第二处理单元17具体包括:任务确定子单元171、第一判断子单元172、第一分配子单元173和第二分配子单元174。
任务确定子单元171用于获得所述资源组的待执行任务,确定需要的执行资源数A。
所述执行资源数A可以根据以往经验或实际应用情况,设定一个执行资源数A。例如,根据以往经验可以评估出待执行任务所需要的资源数,或者,当实际情况监测到资源使用的性能不能满足待执行任务时,可适当增加执行资源数。
任务确定子单元171可以先根据预定义规则划分所述待执行任务,用以细分待执行任务,以便均衡地将待执行任务分配给对应的资源。
第一判断子单元172用于判断所述执行资源数A是否大于或等于所述可用资源的总资源数S,如果是,则触发第一分配子单元173,否则触发第二分配子单元174。
第一分配子单元173用于利用整个所述资源组,将所述待执行任务分配到整个所述资源组。
如果所述执行资源数A大于或等于所述总资源数S,即S≤A,说明待执行任务所需要的执行资源数较多,第一分配子单元173则利用整个所述资源组,将所述待执行任务分配到整个所述资源组。
如果所述执行资源数A小于所述总资源数S,即A<S,则说明资源组中可用资源数较多,则触发第二分配子单元174。
第二分配子单元174用于从所述总资源数S中选择A个资源,将所述待执行任务分配到所述A个资源。
具体地,第二分配子单元174包括:偏移量获取子单元、偏移量确定子单元和任务分配子单元(图未示)。
偏移量获取子单元用于获取所述资源组中配置的偏移量L。所述偏移量L表示执行任务的第一个资源在所述资源组中的序号。
偏移量确定子单元用于判断所述执行资源数A与所述资源组中配置一个偏移量L之和L+A是否小于所述总资源数S,如果是,则将所述总资源数S与执行资源数A之差作为实际的偏移量R,即R=S-A,否则,将所述偏移量L作为实际的偏移量R。
任务分配子单元用于将所述待执行任务分配到所述资源组中从第R个序号开始的A个资源。
举个例子,资源组中包括资源K0-K10,当任务确定子单元171获取当前批次的待执行任务之后,设定所需要的执行资源数A=4,此时偏移量获取子单元获取到预设的偏移量L=5,偏移量确定子单元可以判断出L+A=9<总资源数S=11,因此,确定实际偏移量R=L=5,任务分配子单元将任务分配给资源组中的资源K5-K8这4个资源。
图7是本实施例提供的资源服务器的示意图,如图7所示,本申请的资源服务器包括:注册单元21、第一获取单元22、版本控制单元23、任务接收单元24和任务处理单元25。
注册单元21用于发送注册信息至所述管理器。
当资源的版本号出现变更或进行初始化时,注册单元21发送注册信息至资源组的管理器进行注册。
注册信息包括资源服务器的资源标识和版本号,如果是新增资源服务器,则注册单元21以0为当前版本号向管理器注册自己。如果当前资源服务器下线,则注册单元21无法再发送注册信息,管理器不能收到该资源服务器的注册信息。
第一获取单元22用于接收资源组的管理器发送的新版本号。
管理器发送的新版本号包括:当所述管理器判断到所述资源组中有资源变更时生成的新版本号;或者,当所述管理器判断到所述资源组中没有资源变更时确定的新版本号,所述确定的新版本号为所述资源组中资源的最新的版本号。
版本控制单元23用于判断所述当前资源的版本号是否与所述新版本号相同,如果是,则标识为可用资源,否则,将所述当前资源的版本号更新为所述新版本号。
在第一获取单元22接收到新版本号时,版本控制单元23判断资源的当前版本号是否与所述新版本号相同,如果相同,则标识为可用资源,等待所述资源组中与所述新版本号不相同的资源将版本号更新为所述新版本号。如果不相同,则将该资源的当前版本号更新为所述新版本号。
在版本控制单元23变更版本号后,注册单元21将携带有新版本号的注册信息发送给管理器,管理器则接收各资源发送的更新后的注册信息。
任务接收单元24用于接收所述管理器分配的待执行任务。
任务处理单元25用于当任务接收单元24接收到所述待执行任务时,进行对应的待执行任务的处理。
由于任务处理需要消耗时间,在每次资源组发生变更后,需要等待当前批次任务尚未执行完毕的其他资源全部执行完毕后,才能重新分配任务,以免导致部分数据被重复处理。
当管理器判断到资源组中资源的版本号一致时,则将待执行任务分配给各个资源。此时,各个资源的任务接收单元24才能接收到管理器分配的任务。当接收到所述待执行任务时,任务处理单元25进行对应的待执行任务的处理。
实施例五
管理器可以但不限于采用资源列表的形式,对资源组中的资源进行管理,资源列表为各个资源的资源标识列表。在管理器中管理的资源信息包括:各个资源的资源标识列表及版本号等信息。
图8是本实施例提供的资源管理器的示意图,如图6所示,本申请的资源管理器包括:第二接收单元31、第三判断单元32、第四判断单元33、第三处理单元34和第四处理单元35。
第二接收单元31用于接收资源组中的资源发送的注册信息。
当资源组中资源的版本号出现变更或进行初始化时,发送注册信息至资源组的管理器进行注册。所述注册信息中携带有资源的版本号和资源标识。
资源以当前版本号向管理器注册自己,如果资源是新增资源,则以0为当前版本号向管理器注册自己,第二接收单元31将收到0版本号的注册信息。如果资源下线,则无法再发送版本号,第二接收单元31不能收到该资源的注册信息。
第三判断单元32用于根据所述注册信息,判断所述资源组中是否有资源变更,如果有,则更新所述资源组的资源列表,并将更新后的资源列表发送给所述资源组中各个资源,用以所述资源组中各个资源更新版本号。
当第二接收单元31接收到各个资源的注册信息时,则第三判断单元32根据该些注册信息,判断资源组中是否有新增或下线的资源标识。当第三判断单元32判断到资源列表中有新增或减少的资源标识时,表明资源组有资源变更,则更新所述资源组的资源列表。
当第三判断单元32判断到资源组中没有资源变更时,则不更新资源列表。此时,可选地,可将原有的资源列表仍发送至各个资源。
资源组中各个资源在接收到第三判断单元32发送的资源列表时,判断所接收到的资源列表与上一次接收到的资源列表是否相同,如果不相同,则更新自身的版本号,并发送新的注册信息至第二接收单元31。
第四判断单元33用于判断所述资源组中各个资源的版本号是否一致,如果一致,则将所述资源组中的资源作为可用资源。
当第四判断单元33判断到资源列表中版本号一致时,则将该些版本号相同的资源作为可用资源,形成可用资源列表。如果不一致,则触发第三处理单元34。
第三处理单元34用于将所述资源组中最新的版本号不同的资源作为待同步资源,形成待同步资源列表发送给所述资源组中各个资源。
具体地,第三处理单元34可以先找出所述各个资源的版本号中最新的版本号,如最大版本号,再将资源列表中版本号与最大版本号不一致的资源确定为待同步资源,形成待同步资源列表,发送至资源组中的各个资源,以使得待同步资源列表中的资源更新版本号至与最大版本号一致。
对于大数据量的实时处理的业务场景,基本上都采用分批次循环处理的方式,将所需要处理的业务分成多个批次进行任务处理,并利用资源服务器的版本号表示任务处理的批次。由于任务处理需要消耗时间,所以每次资源组发生变更后,需要等待当前批次任务尚未执行完毕的资源全部执行完毕后,才能重新分配任务,否则可能会导致部分数据被重复处理。因而,在当前批次任务处理完成后,不会直接开始下一个批次的任务处理,而是等待其它资源完成处理,在完成重新分配任务后,再开始下一个批次的任务处理。
因此,在进行分配任务前,需要先将资源组中的版本号协调至一致。第四判断单元33判断资源列表中各个资源服务器的版本号是否一致,如果不一致,则触发第三处理单元34,如果一致,则触发第四处理单元35。
第四处理单元35用于将所述资源组的待执行任务分配给所述可用资源。
本单元与实施例四中第二处理单元17的具体配置相同,于此不再赘述。
图9是本实施例提供的资源服务器的示意图,如图9所示,本申请的资源服务器包括:注册单元41、第二获取单元42、版本变更单元43、任务接收单元44和任务处理单元45。
注册单元41用于发送注册信息至管理器。
所述注册信息中携带有资源的版本号和资源标识,用以所述管理器更新所述资源组的资源列表。
第二获取单元42用于接收所述管理器发送的资源列表。
当管理器接收到各个资源的注册信息时,则根据该些注册信息,判断资源组中是否有新增或下线的资源服务器。如果资源组中有新增或下线的资源服务器时,则更新所述资源组的资源列表,并将更新后的资源列表发送至各个资源服务器,否则不更新资源列表,并将原有的资源列表发送至各个资源服务器。因而,各个资源服务器先通过第二获取单元42获取这些资源列表。
版本变更单元43用于判断所述第二获取单元接收到的资源列表与上一次接收到的资源列表是否相同,如果不相同,则更新自身的版本号,并触发所述注册单元发送新的注册信息至所述管理器,所述新的注册信息中携带有更新后的版本号。
如果有资源发生变更,资源列表中的各个资源的第二获取单元42接收到新的资源列表,当版本变更单元43判断到与上一次接收的资源列表不同,表明资源组中有新增或下线的资源,则将版本号更新为新版本号,并触发注册单元41将更新后的版本号发送至管理器进行重新注册。
版本变更单元43在更新自身的版本号之前,还判断所述资源是否执行完当前批次的任务,如果是,则进行更新自身的版本号,否则继续执行当前批次的任务,暂时不会更新版本号待到完成任务后,再将版本号更新为新版本号。
如果没有资源发生变更,资源列表中的各个资源的版本变更单元43判断到第二获取单元42接收的资源列表未发生变更,则各个资源的版本号不进行统一变更。
任务接收单元44用于接收所述管理器分配的待执行任务。
任务处理单元45用于当任务接收单元44接收到所述待执行任务时,进行对应的待执行任务的处理。
当管理器判断到资源组中资源的版本号一致时,则将待执行任务分配给各个资源。此时,各个资源的任务接收单元44才能接收到管理器分配的任务。当接收到所述待执行任务时,任务处理单元45进行对应的待执行任务的处理。
具体地,任务处理单元45可以包括:第一获取子单元451、第二判断子单元452、第二获取子单元453、第三获取子单元454和任务处理子单元455。
第一获取子单元451用于当接收到所述资源组更新的任务分配时,获取所述管理器发送的执行资源列表。
管理器根据预定义规则划分所述待执行任务,设置执行资源数A,并确定资源组中的A个资源,形成执行资源列表发送给资源组中各个资源服务器。第一获取子单元451则获取管理器发送的执行资源列表。
第二判断子单元452用于判断所述分布式资源服务器是否在所述执行资源列表中,如果是,则触发第二获取子单元453,否则,返回第二获取单元42。
第二获取子单元453用于获取所述分布式资源服务器在所述执行资源列表中的序号。
第三获取子单元454用于根据所述序号从所述管理器中获取对应的待执行任务,以提供给任务处理子单元455。
具体地,第三获取子单元454先利用所述管理器预先定义的子任务组数N,计算所述执行资源列表的A个资源中平均每个资源应负责的子任务数AN,管理器已将所述待执行任务的N组子任务划分成A个区间,第三获取子单元454则根据所述当前资源的序号IN,获取对应第IN个区间的所述子任务。
任务处理子单元455用于在接收到所述第三获取子单元454获取的待执行任务后,进行本批次的待执行任务的处理。
本申请提供的分布式资源分配方法及装置,通过分布式资源管理器(zookeeper等)管理资源组内实际可用资源的信息,并将资源组信息推送至每一个资源,确保每一个资源均可获得整个资源组的信息,同时依据预先定义好的任务分配规则,计算得出各个资源实际处理的任务范围,可以将任务在资源组内的进行合理的动态分配,不需要依赖数据库,避免出现任务处理延迟的情况。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (28)
1.一种资源分配方法,其特征在于,所述方法包括:
管理器接收资源组中的资源发送的注册信息,所述注册信息中携带有资源的版本号和资源标识;
根据所述注册信息,判断所述资源组中是否有资源变更;
如果所述资源组中有资源变更,则生成新版本号,并发送所述新版本号到所述资源组中的资源,用以所述资源将版本号更新为所述新版本号;
判断接收到的所述注册信息中是否存在与所述新版本号不相同的版本号,如果否,则将该与所述新版本号相同的资源作为可用资源,并将所述资源组的待执行任务分配给所述可用资源。
2.根据权利要求1所述的资源分配方法,其特征在于,所述管理器接收资源组中的资源发送的注册信息包括:接收所述资源组中的资源在接收到所述新版本号,并将版本号更新为所述新版本号后发送的注册信息。
3.根据权利要求1所述的资源分配方法,其特征在于,所述根据所述注册信息,判断所述资源组中是否有资源变更,具体为:
当所述资源组中存在新增或下线的资源标识时,判断为所述资源组中有资源变更。
4.根据权利要求1所述的资源分配方法,其特征在于,当接收到的所述注册信息中存在与所述新版本号不相同的资源,则发送所述新版本号至所述与新版本号不相同的资源。
5.根据权利要求1所述的资源分配方法,其特征在于,所述将资源组的待执行任务分配给所述可用资源,具体包括:
管理器获得所述资源组的待执行任务,确定需要的执行资源数A;
判断所述执行资源数A是否大于或等于所述可用资源的总资源数S;
如果所述执行资源数A大于或等于所述总资源数S,即S≤A,则将所述待执行任务分配到整个所述资源组;
如果所述执行资源数A小于所述总资源数S,即A<S,则从所述总资源数S中选择A个资源,将所述待执行任务分配到所述A个资源。
6.根据权利要求5所述的资源分配方法,其特征在于,从所述总资源数S中选择A个资源,将所述待执行任务分配到所述A个资源,具体包括:
获取所述资源组中配置的偏移量L,所述偏移量L表示执行任务的第一个资源在所述资源组中的序号;
判断所述执行资源数A与所述资源组中配置一个偏移量L之和L+A是否小于所述总资源数S;
如果所述总资源数S<L+A,则将所述总资源数S与执行资源数A之差作为实际的偏移量R,即R=S-A,将所述待执行任务分配到所述资源组中从第R个序号开始的A个资源;
如果所述总资源数S≥L+A,则将所述偏移量L作为实际的偏移量R,将所述待执行任务分配到所述资源组中从第R个序号开始的A个资源。
7.根据权利要求1所述的资源分配方法,其特征在于,在将所述资源组的待执行任务分配给所述可用资源之前,还包括:
判断所述资源组中的资源的版本号是否一致,如果是,则执行将所述资源组的待执行任务分配给所述可用资源,否则,等待所述资源组中与所述新版本号不相同的资源将版本号更新为所述新版本号。
8.一种资源分配方法,其特征在于,所述方法包括:
当前资源接收资源组的管理器发送的新版本号,其中,所述新版本号是在所述资源组中有资源变更时由所述管理器生成的;
判断所述当前资源的版本号是否与所述新版本号相同,如果是,则将所述当前资源作为可用资源,以及接收所述管理器分配的待执行任务,否则,将所述当前资源的版本号更新为所述新版本号;
发送注册信息至所述管理器,所述注册信息中携带有所述当前资源的版本号和资源标识。
9.根据权利要求8所述的资源分配方法,其特征在于,在所述判断当前资源的版本号是否与所述新版本号相同之前,还包括:
判断所述当前资源是否执行完当前批次任务,如果是,则执行所述判断当前资源的版本号是否与所述新版本号相同,否则,继续执行所述当前批次任务。
10.根据权利要求8所述的资源分配方法,其特征在于,所述管理器发送的新版本号包括:
当所述管理器判断到所述资源组中有资源变更时生成的新版本号;或
当所述管理器判断到所述资源组中没有资源变更时确定的新版本号,所述确定的新版本号为所述资源组中资源的最新的版本号。
11.根据权利要求8所述的资源分配方法,其特征在于,所述资源分配方法还包括:
当接收到所述待执行任务时,进行对应的待执行任务的处理。
12.一种资源分配方法,其特征在于,所述方法包括:
接收资源组中的资源发送的注册信息,所述注册信息中携带有资源的版本号和资源标识;
根据所述注册信息,判断所述资源组中是否有资源变更,如果有,则更新所述资源组的资源列表,并将更新后的资源列表发送给所述资源组中各个资源,用以所述资源组中各个资源更新版本号;
判断所述资源组中各个资源的版本号是否一致,如果一致,则将所述资源组中的资源作为可用资源,并将所述资源组的待执行任务分配给所述可用资源。
13.根据权利要求12所述的资源分配方法,其特征在于,当判断到所述资源组中没有资源变更时,则判断所述资源组中各个资源的版本号是否一致,如果一致,则将所述资源组中的资源作为可用资源。
14.根据权利要求12或13所述的资源分配方法,其特征在于,当判断到所述资源组中各个资源的版本号不一致时,则将与所述资源组中最新的版本号不同的资源作为待同步资源,形成待同步资源列表发送给所述资源组中各个资源,用以所述待同步资源列表中的资源更新版本号。
15.根据权利要求12所述的资源分配方法,其特征在于,将所述资源组的待执行任务分配给所述可用资源,具体包括:
获得所述资源组的待执行任务,确定需要的执行资源数A;
判断所述执行资源数A是否大于或等于所述可用资源的总资源数S;
如果所述执行资源数A大于或等于所述总资源数S,即S≤A,则将所述待执行任务分配到整个所述资源组;
如果所述执行资源数A小于所述总资源数S,即A<S,则从所述总资源数S中选择A个资源,将所述待执行任务分配到所述A个资源。
16.根据权利要求15所述的资源分配方法,其特征在于,从所述总资源数S中选择A个资源,将所述待执行任务分配到所述A个资源,具体包括:
获取所述资源组中配置的偏移量L,所述偏移量L表示执行任务的第一个资源在所述资源组中的序号;
判断所述执行资源数A与所述资源组中配置一个偏移量L之和L+A是否小于所述总资源数S;
如果所述总资源数S<L+A,则将所述总资源数S与执行资源数A之差作为实际的偏移量R,即R=S-A,将所述待执行任务分配到所述资源组中从第R个序号开始的A个资源;
如果所述总资源数S≥L+A,则将所述偏移量L作为实际的偏移量R,将所述待执行任务分配到所述资源组中从第R个序号开始的A个资源。
17.一种资源分配方法,其特征在于,所述方法包括:
发送注册信息至管理器,所述注册信息中携带有资源的版本号和资源标识,用以所述管理器更新所述资源组的资源列表;
接收所述管理器发送的资源列表;
判断所接收到的资源列表与上一次接收到的资源列表是否相同,如果不相同,则更新自身的版本号;
发送新的注册信息至所述管理器,所述新的注册信息中携带有更新后的版本号,用以所述管理器在判断到所述资源组中各个资源的版本号一致时,将所述资源组中的资源作为可用资源,以及接收所述管理器分配的待执行任务。
18.根据权利要求17所述的资源分配方法,其特征在于,在所述更新自身的版本号之前,还包括:
判断所述资源是否执行完当前批次的任务,如果是,则进行更新自身的版本号,否则继续执行当前批次的任务。
19.根据权利要求17所述的资源分配方法,其特征在于,所述方法还包括:
接收所述管理器发送的待同步资源列表,所述待同步资源列表是当所述管理器判断到所述资源组中各个资源的版本号不一致时,利用与所述资源组中最新的版本号不同的资源生成的列表;
判断当前资源是否在所述待同步资源列表中,如果是,则将自身的版本号更新为所述资源组中最新的版本号,并发送新的注册信息至所述管理器,所述新的注册信息中携带有更新后的版本号。
20.根据权利要求19所述的资源分配方法,其特征在于,在所述将自身的版本号更新为所述资源组中最新的版本号之前,还包括:
判断所述资源是否执行完当前批次的任务,如果是,则进行更新自身的版本号,否则继续执行当前批次的任务。
21.根据权利要求17所述的资源分配方法,其特征在于,所述资源分配方法还包括:
当接收到所述待执行任务时,进行对应的待执行任务的处理。
22.一种资源分配方法,其特征在于,所述方法包括:
管理器接收资源组中的资源发送的注册信息,所述注册信息中携带有资源的版本号和资源标识;
所述管理器根据所述注册信息,判断所述资源组中是否有资源变更,如果有,则更新所述资源组的资源列表,并将更新后的资源列表发送给所述资源组中各个资源;
所述资源组中各个资源判断所接收到的资源列表与上一次接收到的资源列表是否相同,如果不相同,则更新自身的版本号,并发送新的注册信息至所述管理器,所述新的注册信息中携带有更新后的版本号;
所述管理器判断所述资源组中各个资源的版本号是否一致,如果一致,则将所述资源组中的资源作为可用资源,并将所述资源组的待执行任务分配给所述可用资源。
23.一种资源管理器,其特征在于,所述资源管理器包括:
第一接收单元,用于接收资源组中的资源发送的注册信息,所述注册信息中携带有资源的版本号和资源标识;
第一判断单元,用于根据所述注册信息,判断所述资源组中是否有资源变更,如果所述资源组中有资源变更,则触发第一更新单元;
第一更新单元,用于在受到所述第一判断单元的触发时,生成新版本号,并发送所述新版本号到所述资源组中的资源;
第二判断单元,用于判断所述第一接收单元接收到的所述注册信息中是否存在与所述新版本号不相同的版本号,如果否,则触发第一处理单元;
第一处理单元,用于在受到所述第二判断单元的触发时,将所述注册信息中与所述新版本号相同的资源作为可用资源。
24.一种资源服务器,其特征在于,所述资源服务器包括:
第一获取单元,用于接收资源组的管理器发送的新版本号,其中,所述新版本号是在所述资源组中有资源变更时由所述管理器生成的;
版本控制单元,用于判断所述当前资源的版本号是否与所述新版本号相同,如果是,则标识为可用资源,否则,将所述当前资源的版本号更新为所述新版本号;
注册单元,用于发送注册信息至所述管理器,所述注册信息中携带有所述当前资源的版本号和资源标识。
25.一种资源管理器,其特征在于,所述资源管理器包括:
第二接收单元,用于接收资源组中的资源发送的注册信息,所述注册信息中携带有资源的版本号和资源标识;
第三判断单元,用于根据所述注册信息,判断所述资源组中是否有资源变更,如果有,则更新所述资源组的资源列表,并将更新后的资源列表发送给所述资源组中各个资源,用以所述资源组中各个资源更新版本号;
第四判断单元,用于判断所述资源组中各个资源的版本号是否一致,如果一致,则将所述资源组中的资源作为可用资源。
26.一种资源服务器,其特征在于,所述资源服务器包括:
注册单元,用于发送注册信息至管理器,所述注册信息中携带有资源的版本号和资源标识,用以所述管理器更新所述资源组的资源列表;
第二获取单元,用于接收所述管理器发送的资源列表;
版本变更单元,用于判断所述第二获取单元接收到的资源列表与上一次接收到的资源列表是否相同,如果不相同,则更新自身的版本号,并触发所述注册单元发送新的注册信息至所述管理器,所述新的注册信息中携带有更新后的版本号。
27.一种资源系统,其特征在于,所述系统包括:
如权利要求23所述的资源管理器;
至少一个如权利要求24所述的资源服务器;
所述各个资源服务器与所述管理器相连接。
28.一种资源系统,其特征在于,所述系统包括:
如权利要求25所述的资源管理器;
至少一个如权利要求26所述的资源服务器;
所述各个资源服务器与所述管理器相连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210449230.7A CN103810045B (zh) | 2012-11-09 | 2012-11-09 | 资源分配方法、资源管理器、资源服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210449230.7A CN103810045B (zh) | 2012-11-09 | 2012-11-09 | 资源分配方法、资源管理器、资源服务器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103810045A CN103810045A (zh) | 2014-05-21 |
CN103810045B true CN103810045B (zh) | 2016-12-21 |
Family
ID=50706853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210449230.7A Active CN103810045B (zh) | 2012-11-09 | 2012-11-09 | 资源分配方法、资源管理器、资源服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103810045B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557356B (zh) * | 2015-09-25 | 2020-06-19 | 阿里巴巴集团控股有限公司 | 一种任务处理方法及装置 |
CN106557366B (zh) * | 2015-09-28 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 任务分发方法、装置及系统 |
CN107025131B (zh) * | 2016-02-01 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 一种任务调度方法及装置 |
CN107301178B (zh) * | 2016-04-14 | 2021-07-02 | 创新先进技术有限公司 | 数据查询处理方法、装置及系统 |
CN105897616B (zh) * | 2016-05-17 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 一种资源分配的方法及服务器 |
CN107656806A (zh) * | 2016-07-25 | 2018-02-02 | 华为技术有限公司 | 一种资源分配方法和资源分配装置 |
CN109981310B (zh) * | 2017-12-27 | 2022-02-11 | 杭州海康威视数字技术股份有限公司 | 资源管理方法、装置及存储介质 |
CN110879747B (zh) * | 2018-09-05 | 2022-08-05 | 杭州海康威视系统技术有限公司 | 资源管理方法及装置 |
CN109298940B (zh) * | 2018-09-28 | 2019-12-31 | 考拉征信服务有限公司 | 计算任务分配方法、装置、电子设备及计算机存储介质 |
CN110134521B (zh) * | 2019-05-28 | 2021-06-11 | 北京达佳互联信息技术有限公司 | 资源分配的方法、装置、资源管理器及存储介质 |
CN112131005B (zh) * | 2020-09-25 | 2022-09-20 | 新华三大数据技术有限公司 | 一种资源调整策略确定方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626310A (zh) * | 2008-07-10 | 2010-01-13 | 阿里巴巴集团控股有限公司 | 集群环境中的服务信息传输方法、装置及系统 |
CN101778131A (zh) * | 2010-01-05 | 2010-07-14 | 深圳中兴网信科技有限公司 | 数据同步系统 |
CN101964820A (zh) * | 2010-10-08 | 2011-02-02 | 中兴通讯股份有限公司 | 一种保持数据一致性的方法及系统 |
EP2378718A1 (en) * | 2008-12-15 | 2011-10-19 | China Mobile Communications Corporation | Method, node and system for controlling version in distributed system |
CN102255926A (zh) * | 2010-05-17 | 2011-11-23 | 中国移动通信集团公司 | MapReduce系统中的任务分配方法、系统及装置 |
-
2012
- 2012-11-09 CN CN201210449230.7A patent/CN103810045B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626310A (zh) * | 2008-07-10 | 2010-01-13 | 阿里巴巴集团控股有限公司 | 集群环境中的服务信息传输方法、装置及系统 |
EP2378718A1 (en) * | 2008-12-15 | 2011-10-19 | China Mobile Communications Corporation | Method, node and system for controlling version in distributed system |
CN101778131A (zh) * | 2010-01-05 | 2010-07-14 | 深圳中兴网信科技有限公司 | 数据同步系统 |
CN102255926A (zh) * | 2010-05-17 | 2011-11-23 | 中国移动通信集团公司 | MapReduce系统中的任务分配方法、系统及装置 |
CN101964820A (zh) * | 2010-10-08 | 2011-02-02 | 中兴通讯股份有限公司 | 一种保持数据一致性的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103810045A (zh) | 2014-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103810045B (zh) | 资源分配方法、资源管理器、资源服务器及系统 | |
CN107291546B (zh) | 一种资源调度方法及装置 | |
CN107659739B (zh) | 名单分配方法和装置 | |
CN108268372A (zh) | Mock测试处理方法、装置、存储介质和计算机设备 | |
CN111506404A (zh) | 一种基于Kubernetes的共享GPU调度方法 | |
CN106649637B (zh) | 一种处理红包的方法及系统 | |
CN107205248B (zh) | 一种资源分配方法及系统 | |
CN111324435A (zh) | 分布式任务调度及注册方法、设备和分布式任务调度系统 | |
CN106557366B (zh) | 任务分发方法、装置及系统 | |
CN110233741B (zh) | 服务计费方法、装置、设备及存储介质 | |
CN111858055B (zh) | 任务处理方法、服务器及存储介质 | |
CN106959894A (zh) | 资源分配方法和装置 | |
WO2016101996A1 (en) | Allocating cloud computing resources in a cloud computing environment | |
CN108171488B (zh) | 数据处理方法、装置和系统 | |
CN104301257B (zh) | 一种资源分配方法、装置及设备 | |
CN105592110A (zh) | 一种资源调度方法及装置 | |
CN110191160A (zh) | 一种并发控制方法和装置 | |
CN110599148A (zh) | 集群数据处理方法、装置、计算机集群及可读存储介质 | |
CN108270581A (zh) | 共享资源计费处理方法及装置 | |
CN109213584A (zh) | 任务执行方法、装置、电子设备及计算机可读存储介质 | |
CN114490826B (zh) | 请求响应方法、数据存储方法、装置、服务器及存储介质 | |
CN109582439B (zh) | Dcn部署方法、装置、设备及计算机可读存储介质 | |
CN113315825A (zh) | 分布式请求的处理方法、装置、设备及存储介质 | |
CN114330879B (zh) | 一种多维度约束的订单分配方法及系统 | |
CN111796934B (zh) | 任务下发方法、装置、存储介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221116 Address after: Unit 602-604, No. 601, Floor 6, Building 15, No. 1999, Yizhou Avenue, Chengdu Hi tech Zone, Chengdu Pilot Free Trade Zone, Sichuan Province (self numbered) Patentee after: Alibaba (Chengdu) Software Technology Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |