G06F9/50 G06F9/54
1.一种资源分配方法,其特征在于,所述资源分配方法包括以下步骤:
当监测到资源输入时,按照输入的先后顺序对输入的资源进行排队,得到多个资源队列;
根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与对应资源池的相应槽位进行关联,并将关联至相应槽位的每个资源拆分或合并为若干个资源逻辑块;
当接收到资源申请时,确定所述资源申请的需求资源对应的目标资源池;
获取所述目标资源池的槽位信息,并根据所述槽位信息从所述目标资源池中确定目标槽位;
从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请。
2.根据权利要求1所述的资源分配方法,其特征在于,所述根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与对应资源池的相应槽位进行关联,包括:
根据各资源队列中每个资源的属性参数进行资源分类,得到若干种资源分类集合;
分别匹配每种资源分类集合对应的资源池,并将每种资源分类集合中的每个资源均匀分配至对应资源池的相应槽位中进行关联。
3.根据权利要求1所述的资源分配方法,其特征在于,所述根据所述槽位信息从所述目标资源池中确定目标槽位,包括:
根据所述槽位信息,确定多个备选槽位;
从所述多个备选槽位中随机选取一个备选槽位作为目标槽位。
4.根据权利要求3所述的资源分配方法,其特征在于,所述从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请之前,还包括:
确定所述目标槽位关联的资源逻辑块是否可用;
若所述目标槽位关联的资源逻辑块可用,则执行从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请的步骤。
5.根据权利要求4所述的资源分配方法,其特征在于,所述确定所述目标槽位关联的资源逻辑块是否可用,包括:
判断所述目标槽位是否已被锁定;
若所述目标槽位未被锁定,则锁定所述目标槽位,并判断所述目标槽位关联的资源逻辑块的大小是否大于等于所述需求资源的大小;
若所述目标槽位关联的资源逻辑块的大小大于所述需求资源的大小,则确定所述目标槽位关联的资源逻辑块可用;
若所述目标槽位关联的资源逻辑块的大小等于所述需求资源的大小,则确定所述目标槽位关联的资源逻辑块可用;
若所述目标槽位关联的资源逻辑块的大小小于所述需求资源的大小,则确定所述目标槽位关联的资源逻辑块不可用。
7.根据权利要求5所述的资源分配方法,其特征在于,所述从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请,包括:
若所述目标槽位关联的资源逻辑块的大小大于所述需求资源的大小,则对所述目标槽位关联的资源逻辑块进行拆分,拆分出与所述需求资源的大小一致的资源逻辑块并进行冻结;
若所述目标槽位关联的资源逻辑块的大小等于所述需求资源的大小,则冻结所述目标槽位关联的资源逻辑块;
将冻结的所述资源逻辑块馈至所述资源申请。
6.根据权利要求4所述的资源分配方法,其特征在于,所述确定所述目标槽位关联的资源逻辑块是否可用之后,还包括:
若所述目标槽位关联的资源逻辑块不可用,则从其余备选槽位中选取另一个未被锁定且关联的资源逻辑块可用的备选槽位作为新目标槽位;
从所述新目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请。
8.一种资源分配装置,其特征在于,所述资源分配装置包括:
排队模块,用于当监测到资源输入时,按照输入的先后顺序对输入的资源进行排队,得到多个资源队列;
预处理模块,用于根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与对应资源池的相应槽位进行关联,并将关联至相应槽位的每个资源拆分或合并为若干个资源逻辑块;
第一确定模块,用于当接收到资源申请时,确定所述资源申请的需求资源对应的目标资源池;
第二确定模块,用于获取所述目标资源池的槽位信息,并根据所述槽位信息从所述目标资源池中确定目标槽位;
获取模块,用于从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如权利要求1至7中任一项所述的资源分配方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如权利要求1至7中任一项所述的资源分配方法的步骤。
本申请涉及业务数据分配技术领域,尤其涉及一种资源分配方法、装置、计算机设备及计算机可读存储介质。
资源是指供用户使用的数据或服务或商品等,比如电子货币、电子券、积分券等。传统的资源分配系统,会将资源直接暴露给用户,所有的用户看到都是同一个资源,当大量用户申请该资源时,会给资源分配造成较大压力,同时很多用户会申请失败,用户体验很差。
本申请的主要目的在于提供一种资源分配方法、装置、计算机设备及计算机可读存储介质,旨在解决传统的资源分配系统难以并行处理用户的资源申请,资源分配压力大,导致响应资源申请的成功率低的技术问题。
第一方面,本申请提供了一种资源分配方法,所述方法包括:
当监测到资源输入时,按照输入的先后顺序对输入的资源进行排队,得到多个资源队列;
根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与对应资源池的相应槽位进行关联,并将关联至相应槽位的每个资源拆分或合并为若干个资源逻辑块;
当接收到资源申请时,确定所述资源申请的需求资源对应的目标资源池;
获取所述目标资源池的槽位信息,并根据所述槽位信息从所述目标资源池中确定目标槽位;
从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请。
第二方面,本申请还提供了一种资源分配装置,所述装置包括:
排队模块,用于当监测到资源输入时,按照输入的先后顺序对输入的资源进行排队,得到多个资源队列;
预处理模块,用于根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与对应资源池的相应槽位进行关联,并将关联至相应槽位的每个资源拆分或合并为若干个资源逻辑块;
第一确定模块,用于当接收到资源申请时,确定所述资源申请的需求资源对应的目标资源池;
第二确定模块,用于获取所述目标资源池的槽位信息,并根据所述槽位信息从所述目标资源池中确定目标槽位;
获取模块,用于从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如上述的资源分配方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如上述的资源分配方法。
本申请公开了一种资源分配方法、装置、计算机设备及计算机可读存储介质,当监测到资源输入时,按照输入的先后顺序对输入的资源进行排队,得到多个资源队列,然后根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与对应资源池的相应槽位进行关联,并将关联至相应槽位的每个资源拆分或合并为若干个资源逻辑块,当接收到资源申请时,确定资源申请的需求资源对应的目标资源池,然后获取目标资源池的槽位信息,并根据该槽位信息从目标资源池中确定目标槽位,最终从目标槽位中获取与资源申请的需求资源大小一致的逻辑资源块反馈至资源申请。由此,能够实现对资源池中资源的合理有效利用,确保了资源分配系统的负载均衡,从而能够满足并行处理资源申请的需求,进而提升了响应资源申请的成功率和速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种资源分配方法的流程示意图;
图2为本申请实施例涉及的资源分配系统的构架示意图;
图3为本申请实施例提供的根据各资源队列中每个资源的属性参数进行资源分类的示例图;
图4为本申请实施例提供的根据所述槽位信息从所述目标资源池中确定目标槽位的示例图;
图5为本申请实施例提供的另一种资源分配方法的流程示意图;
图6为本申请实施例提供的一种资源分配装置的示意性框图;
图7为本申请一实施例涉及的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请的实施例提供了一种资源分配方法、装置、设备及计算机可读存储介质。其中,该资源分配方法主要应用于资源分配设备,该资源分配设备可以是个人计算机(personal computer,PC)、服务器或服务器集等具有数据处理功能的设备,该资源分配设备上承载有资源分配系统。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,图1为本申请的实施例提供的一种资源分配方法的流程示意图。
如图1所示,该资源分配方法包括步骤S101至步骤S105。
步骤S101,当监测到资源输入时,按照输入的先后顺序对输入的资源进行排队,得到多个资源队列。
其中,如图2所示,图2为资源分配系统的构架示意图,资源分配系统包括资源输入系统和资源使用系统。当监测到资源输入系统有资源输入时,按照输入的先后顺序对输入的资源进行排队,得到多个资源队列。
步骤S102,根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与对应资源池的相应槽位进行关联,并将关联至相应槽位的每个资源拆分或合并为若干个资源逻辑块。
需要说明的是,各资源队列中每个资源均携带相应的属性参数,该属性参数包括类型、来源、用途、ID、大小数值、优先级等,其中,类型、来源和用途用于表示资源隶属的业务,ID作为用于唯一表示资源身份的标识,可以为包括字符、字母、数字中一种或多种组合的字符串。
其中,继续参照图2,资源分配系统中预先配置有资源预处理器,在得到多个资源队列之后,便可通过资源预处理器,根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与各种业务对应的资源池的相应槽位进行关联。可以理解的是,对各资源队列中每个资源进行预处理的顺序按照资源输入的顺序,先输入的先进行预处理。
在一实施例中,所述所述根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与对应资源池的相应槽位进行关联,具体为:根据各资源队列中每个资源的属性参数进行资源分类,得到若干种资源分类集合;分别匹配每种资源分类集合对应的资源池,并将每种资源分类集合中的每个资源均匀分配至对应资源池的相应槽位中进行关联。
其中,继续参照图2,资源预处理器中预先配置有规则引擎,例如drools。首先根据各资源队列中每个资源的类型、来源和用途,通过规则引擎drools进行资源分类,将隶属于同类业务的资源归为一类,得到若干种资源分类集合。
继续参照图2,资源分配系统中预先配置有多种类型的资源池。资源池的类型与业务类型一一对应,涉及多少种业务类型就可以配置多少种类型的资源池,每类资源池用于存放隶属于对应类业务的资源,例如,如图3所示,隶属于A类业务的资源分配于A类资源池中,隶属于B类业务的资源分配于B类资源池中。由此,在根据各资源队列中每个资源的属性参数进行资源分类,得到若干种资源分类集合之后,依据每种资源分类集合对应的业务类型,匹配每种资源分类集合对应的资源池,并将每种资源分类集合均匀分配至对应资源池的相应槽位中进行关联。
在一实施例中,考虑到同一类型的资源也具有不同的优先级,比如同是隶属于A类业务的A类资源a和b,资源a隶属于A类业务下的子业务a,子业务a权重较高,那么资源a的优先级便高,资源b隶属于A类业务下的子业务b,子业务b的权重低,那么资源b的优先级便低。在匹配到每种资源分类集合对应的资源池之后,可以根据每种资源分类集合中每个资源的优先级,将对应资源池分割开,得到多个对应优先级的子资源池,再按照每种资源分类集合中每个资源的优先级,将每种资源分类集合中每个资源均匀分配至对应优先级的子资源池的相应槽位中,以使每个资源与对应优先级的子资源池的相应槽位进行关联。
在一实施例中,所述将每种资源分类集合中的每个资源均匀分配至对应资源池的相应槽位中进行关联,具体为:在每种资源分类集合对应的资源池中,随机匹配每种资源分类集合中每个资源对应的槽位;将每种资源分类集合中的每个资源分配至对应的槽位中进行关联。
其中,每类资源池设置有若干个资源槽位(slot),每个槽位后可以关联资源队列,当然,还可以在业务量增大的时候,将对应资源池的槽位动态增大以达到扩容目的。为了确保每个资源分配到槽位的随机性和均匀性,可以根据每种资源分类集合中每个资源的ID,在每种资源分类集合对应的资源池中,通过hash的方式到每个资源对应的槽位,然后将每种资源分类集合中每个资源均匀分配至对应的槽位进行关联,也即,将每种资源分类集合中的每个资源关联至对应的槽位后。
在将各资源队列中每个资源与对应资源池的相应槽位进行关联之后,便可将关联至对应槽位的每个资源拆分或合并为若干个资源逻辑块,如此,每个槽位后关联的即为资源逻辑块队列。根据分配至对应槽位的每个资源的大小数值,将分配至对应槽位的每个资源拆分或合并为若干个资源逻辑块,逻辑资源块的大小可以根据实际需要灵活进行设置。例如,将一个资源值对应为2356的资源分解成2个1000的加1个356的资源逻辑块,或者将更多的个位数资源值的资源合并成一个大小为1000逻辑资源块中。如此,通过将资源抽象成具体数值,并进行拆分或合并,便可以在接收到用户的资源申请时,直接快速锁定资源逻辑块,加快资源反馈速度。
步骤S103,当接收到资源申请时,确定所述资源申请的需求资源对应的目标资源池。
其中,继续参照图2,资源分配系统中预先配置有资源槽位选择器,资源槽位选择器中配置有规则引擎。当监测到资源使用系统接收到资源申请时(该资源申请携带需求资源的类型),通过资源槽位选择器中的规则引擎,根据资源申请的需求资源的类型,查到资源申请的需求资源所在的资源池(定义为目标资源池)。
步骤S104,获取所述目标资源池的槽位信息,并根据所述槽位信息从所述目标资源池中确定目标槽位。
其中,资源分配系统会对每种类型资源池的槽位信息进行实时更新,该槽位信息包括每个槽位最后次反馈资源的时间、每个槽位的资源可用余量、每个槽位中关联最久的资源关联时的时间。
在确定资源申请的需求资源所在的目标资源池之后,先获取目标资源池的槽位信息,然后根据目标资源池的槽位信息,从目标资源池中确定资源申请的需求资源所在的槽位(定位为目标槽位)。
在一实施例中,所述根据所述槽位信息从所述目标资源池中确定目标槽位,具体为:根据所述槽位信息,确定多个备选槽位;从所述多个备选槽位中随机选取一个备选槽位作为目标槽位。
在查到资源申请的需求资源所在的目标资源池之后,为了确保资源分配系统的负载均衡,先获取目标资源池的槽位信息,然后根据目标资源池的槽位信息,从目标资源池中确定资源申请的需求资源所在的槽位(定位为目标槽位),例如图4。
具体地,可以将每个槽位最后次反馈资源的时间进行比较,将最后次反馈资源的时间最老的槽位(也就是未使用时间最长的槽位)作为备选槽位;还可以将每个槽位的资源可用余量进行比较,将资源可用余量最多的槽位作为备选槽位;还可以将每个槽位关联最久的资源关联时的时间进行比较,将关联最久的资源关联时的时间最老的槽位(也就是存在关联时间最长的资源的槽位)作为备选槽位,由此,便可得到多个备选槽位,从多个备选槽位中随机选取一个备选槽位作为目标槽位。
步骤S105,从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请。
之后,便可从目标槽位中获取与资源申请的需求资源的大小一致的逻辑资源块反馈至资源申请,完成资源分配。
在一实施例中,参照图5,步骤S105之前,还包括步骤S106至步骤S108。
步骤S106,确定所述目标槽位关联的资源逻辑块是否可用;
若所述目标槽位关联的资源逻辑块可用,则执行步骤S105,从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请。
若所述目标槽位关联的资源逻辑块不可用,则执行步骤S107,从其余备选槽位中选取另一个未被锁定且关联的资源逻辑块可用的备选槽位作为新目标槽位;步骤S108,从所述新目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请。
也即,在从目标资源池中确定目标槽位之后,还需判定目标槽位关联的资源逻辑块是否足够满足资源申请。
在一实施例中,所述确定所述目标槽位关联的资源逻辑块是否可用,具体为:判断所述目标槽位是否已被锁定;若所述目标槽位未被锁定,则锁定所述目标槽位,并判断所述目标槽位关联的资源逻辑块的大小是否大于等于所述需求资源的大小;若所述目标槽位关联的资源逻辑块的大小大于所述需求资源的大小,则确定所述目标槽位关联的资源逻辑块可用;若所述目标槽位关联的资源逻辑块的大小等于所述需求资源的大小,则确定所述目标槽位关联的资源逻辑块可用;若所述目标槽位关联的资源逻辑块的大小小于所述需求资源的大小,则确定所述目标槽位关联的资源逻辑块不可用。
即,先判断目标槽位是否已被锁定,如果目标槽位未被锁定,则锁定目标槽位,并进一步判断目标槽位关联的资源逻辑块的大小是否大于等于需求资源的大小;如果目标槽位关联的资源逻辑块的大小大于等于需求资源的大小,则说明目标槽位关联的资源逻辑块足够满足资源申请,可以确定目标槽位关联的资源逻辑块可用;如果目标槽位关联的资源逻辑块的大小小于需求资源的大小,则说明目标槽位关联的资源逻辑块不足以满足资源申请,可以确定目标槽位关联的资源逻辑块不可用。
如果目标槽位关联的资源逻辑块足够满足资源申请,便可从目标槽位中获取与资源申请的需求资源的大小一致的逻辑资源块反馈至资源申请。
如果目标槽位关联的资源逻辑块不足以满足资源申请,则锁定目标槽位关联的资源逻辑块,并解锁目标槽位,然后从其余备选槽位中选取另一个未被锁定且关联的资源逻辑块可用的备选槽位作为新目标槽位。具体地,从其余备选槽位中选取另一个未被锁定的备选槽位,判断其关联的资源逻辑块是否足以满足资源申请,如果不足以满足资源申请,则继续从其余备选槽位中选取下一个未被锁定的备选槽位,然后判断其关联的资源逻辑块是否足以满足资源申请,以此类推,直至选取到未被锁定且关联的资源逻辑块能够满足资源申请的备选槽位,作为新目标槽位。最终从新目标槽位中获取与资源申请的需求资源的大小一致的逻辑资源块反馈至资源申请。
在一实施例中,如果目标资源池中所有未被锁定的备选槽位关联的资源逻辑块均不可用,则说明目标资源池不可用,确定资源申请的需求资源是否还存在于其他资源池中,若是,则将存在资源申请的需求资源的其他资源池作为新目标资源池,再获取新目标资源池的槽位信息,并根据新目标资源池的槽位信息,从新目标资源池中确定新目标槽位,再从新目标槽位中获取与资源申请的需求资源的大小一致的逻辑资源块反馈至资源申请。
可以理解的是,若资源分配系统中配置的所有资源池均不可用,也即若资源分配系统中配置的所有资源池的槽位关联的逻辑资源块均不可用,则无法响应资源申请,反馈资源申请失败的提示信息。
在一实施例中,所述从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请,具体为:若所述目标槽位关联的资源逻辑块的大小大于所述需求资源的大小,则对所述目标槽位关联的资源逻辑块进行拆分,拆分出与所述需求资源的大小一致的资源逻辑块并进行冻结;若所述目标槽位关联的资源逻辑块的大小等于所述需求资源的大小,则冻结所述目标槽位关联的资源逻辑块;将冻结的所述资源逻辑块馈至所述资源申请。
即,如果目标槽位关联的资源逻辑块的大小大于资源申请的需求资源的大小,则对资源逻辑块进行拆分,拆分出与资源申请的需求资源的大小相对应的资源逻辑块并进行冻结;如果目标槽位关联的资源逻辑块的大小等于资源申请的需求资源的大小,则将目标槽位关联的资源逻辑块进行冻结;通过资源分配器将冻结的资源逻辑块反馈至资源申请,分配完成。
此外,通过上述实施例提供的资源分配方法,即使业务量增大,也只需将对应资源池的槽位动态增大即可扩容。
为更好理解上述实施例,下面举例应用场景进行说明。
在从目标资源池中确定目标槽位之后,1)判断目标槽位是否已被锁定,若目标槽位未被锁定,则锁定目标槽位;2)判断目标槽位关联的资源逻辑块是否可用,如果目标槽位关联的资源逻辑块可用,则冻结与资源申请的需求资源的大小一致的资源逻辑块;并执行步骤3);如果目标槽位关联的资源逻辑块不可用,则跳转至步骤4);
3)通过资源分配器将冻结的资源逻辑块反馈至资源申请。
4)锁定目标槽位关联的资源逻辑块,并解锁目标槽位,再从其余备选槽位中随机选取另一个未被锁定的备选槽位,然后跳转至步骤1),依次依照对目标槽位的判定方式,对选取的另一个未被锁定的备选槽位进行判定,直至选取到未被锁定且关联的资源逻辑块可用的备选槽位,作为新目标槽位;如果目标资源池中所有备选槽位关联的资源逻辑块的大小均小于资源申请的需求资源的大小,说明目标资源池不可用,确定资源申请的需求资源是否还存在于其他资源池中,若是,则将存在资源申请的需求资源的其他资源池作为新目标资源池,并执行步骤5),若否,则执行步骤6)至7);
5)在新目标资源池中,确定新目标槽位,然后跳转至步骤1),依次按照对目标槽位的判定方式,对新目标槽位进行判定;
6)解冻所有冻结的资源逻辑块;
7)无法响应资源申请,反馈资源申请失败的提示信息。
上述实施例提供的资源分配方法,当监测到资源输入时,按照输入的先后顺序对输入的资源进行排队,得到多个资源队列,然后根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与对应资源池的相应槽位进行关联,并将关联至相应槽位的每个资源拆分或合并为若干个资源逻辑块,当接收到资源申请时,确定资源申请的需求资源对应的目标资源池,然后获取目标资源池的槽位信息,并根据该槽位信息从目标资源池中确定目标槽位,最终从目标槽位中获取与资源申请的需求资源大小一致的逻辑资源块反馈至资源申请。由此,能够实现对资源池中资源的合理有效利用,确保了资源分配系统的负载均衡,从而能够满足并行处理资源申请的需求,进而提升了响应资源申请的成功率和速度。
请参照图6,图6为本申请实施例提供的一种资源分配装置的示意性框图。
如图6所示,该资源分配装置400,包括:排队模块401、预处理模块402、第一确定模块403、第二确定模块404和获取模块405。
排队模块401,用于当监测到资源输入时,按照输入的先后顺序对输入的资源进行排队,得到多个资源队列;
预处理模块402,用于根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与对应资源池的相应槽位进行关联,并将关联至相应槽位的每个资源拆分或合并为若干个资源逻辑块;
第一确定模块403,用于当接收到资源申请时,确定所述资源申请的需求资源对应的目标资源池;
第二确定模块404,用于获取所述目标资源池的槽位信息,并根据所述槽位信息从所述目标资源池中确定目标槽位;
获取模块405,用于从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块及单元的具体工作过程,可以参考前述资源分配方法实施例中的对应过程,在此不再赘述。
上述实施例提供的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图7所示的计算机设备上运行。
请参阅图7,图7为本申请实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是个人计算机(personal computer,PC)、服务器等具有数据处理功能的设备。
如图7所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种资源分配方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种资源分配方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
当监测到资源输入时,按照输入的先后顺序对输入的资源进行排队,得到多个资源队列;根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与对应资源池的相应槽位进行关联,并将关联至相应槽位的每个资源拆分或合并为若干个资源逻辑块;当接收到资源申请时,确定所述资源申请的需求资源对应的目标资源池;获取所述目标资源池的槽位信息,并根据所述槽位信息从所述目标资源池中确定目标槽位;从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请。
在一些实施例中,所述处理器实现所述根据各资源队列中每个资源的属性参数,对各资源队列中每个资源进行预处理,以将各资源队列中每个资源与对应资源池的相应槽位进行关联,包括:
根据各资源队列中每个资源的属性参数进行资源分类,得到若干种资源分类集合;
分别匹配每种资源分类集合对应的资源池,并将每种资源分类集合中的每个资源均匀分配至对应资源池的相应槽位中进行关联。
在一些实施例中,所述处理器实现所述根据所述槽位信息从所述目标资源池中确定目标槽位,包括:
根据所述槽位信息,确定多个备选槽位;
从所述多个备选槽位中随机选取一个备选槽位作为目标槽位。
在一些实施例中,所述处理器实现所述从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请之前,还实现如下步骤:
确定所述目标槽位关联的资源逻辑块是否可用;
若所述目标槽位关联的资源逻辑块可用,则执行从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请的步骤。
在一些实施例中,所述处理器实现所述确定所述目标槽位关联的资源逻辑块是否可用,包括:
判断所述目标槽位是否已被锁定;
若所述目标槽位未被锁定,则锁定所述目标槽位,并判断所述目标槽位关联的资源逻辑块的大小是否大于等于所述需求资源的大小;
若所述目标槽位关联的资源逻辑块的大小大于所述需求资源的大小,则确定所述目标槽位关联的资源逻辑块可用;
若所述目标槽位关联的资源逻辑块的大小等于所述需求资源的大小,则确定所述目标槽位关联的资源逻辑块可用;
若所述目标槽位关联的资源逻辑块的大小小于所述需求资源的大小,则确定所述目标槽位关联的资源逻辑块不可用。
在一些实施例中,所述处理器实现所述确定所述目标槽位关联的资源逻辑块是否可用之后,还实现如下步骤:
若所述目标槽位关联的资源逻辑块不可用,则从其余备选槽位中选取另一个未被锁定且关联的资源逻辑块可用的备选槽位作为新目标槽位;
从所述新目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请。
在一些实施例中,所述处理器实现所述从所述目标槽位中获取与所述需求资源大小一致的逻辑资源块反馈至所述资源申请,包括:
若所述目标槽位关联的资源逻辑块的大小大于所述需求资源的大小,则对所述目标槽位关联的资源逻辑块进行拆分,拆分出与所述需求资源的大小一致的资源逻辑块并进行冻结;
若所述目标槽位关联的资源逻辑块的大小等于所述需求资源的大小,则冻结所述目标槽位关联的资源逻辑块;
将冻结的所述资源逻辑块馈至所述资源申请。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序中包括程序指令,所述程序指令被执行时所实现的方法可参照本申请资源分配方法的各个实施例。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
本文发布于:2023-04-13 21:57:55,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/1/86761.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |