CN114722261A - 一种资源的处理方法、装置、电子设备及存储介质 - Google Patents
一种资源的处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114722261A CN114722261A CN202110001681.3A CN202110001681A CN114722261A CN 114722261 A CN114722261 A CN 114722261A CN 202110001681 A CN202110001681 A CN 202110001681A CN 114722261 A CN114722261 A CN 114722261A
- Authority
- CN
- China
- Prior art keywords
- resource
- user
- processing
- identifier
- association record
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000003860 storage Methods 0.000 title claims description 25
- 238000012545 processing Methods 0.000 claims abstract description 179
- 238000013468 resource allocation Methods 0.000 claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 65
- 230000008569 process Effects 0.000 claims abstract description 35
- 238000012217 deletion Methods 0.000 claims description 36
- 230000037430 deletion Effects 0.000 claims description 36
- 230000001172 regenerating effect Effects 0.000 claims description 10
- 238000009826 distribution Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 206010033799 Paralysis Diseases 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的技术方案提供了一种资源的处理方法,包括:获取用户资源关联记录及资源分配状态信息;其中,所述用户资源关联记录包括:与用户标识关联的资源标识;所述资源分配状态信息包括已分配资源的资源标识;根据所述用户资源关联记录及所述资源分配状态信息,确定是否在资源分配过程中存在资源处理失败场景;若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录。
Description
技术领域
本发明实施例涉及计算机领域,尤其涉及一种资源的处理方法、装置、电子设备及存储介质。
背景技术
随着互联网技术的发展,在越来越多的应用场景或者应用领域中用到了互联网技术,同时也有越来越多的用户加入互联网的应用中。由于用户应用需求的不断扩大,对于互联网技术也提出了更高的要求。对于互联网技术中的各种资源而言,互联网中技术中的资源在互联网技术的应用中起到了很大作用,但互联网中技术中的各种资源的数量庞大,使用环境复杂。
发明内容
本发明实施例提供一种资源的处理方法、装置、电子设备及存储介质。
本公开实施例第一方面提供一种资源的处理方法,包括:获取用户资源关联记录及资源分配状态信息;其中,所述用户资源关联记录包括:与用户标识关联的资源标识;所述资源分配状态信息包括已分配资源的资源标识;根据所述用户资源关联记录及所述资源分配状态信息,确定是否在资源分配过程中存在资源处理失败场景;若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录。
在一个实施例中,所述根据所述用户资源关联记录及所述资源分配状态信息,确定在资源分配过程中是否存在资源处理失败场景,包括:若所述已分配资源的资源标识包含与用户标识关联的资源标识以外的资源标识,确定存在资源删除失败场景;和/或,若所述与用户标识关联的资源标识包含所述已分配资源的资源标识以外的资源标识,确定存在资源新增失败场景。
在一个实施例中,所述若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录,包括:若所述资源处理失败场景为资源新增失败场景,则删除新增失败的资源对应的所述用户资源关联记录;所述新增失败的资源包括:所述与用户标识关联的资源标识中除所述已分配资源的资源标识以外的资源标识对应的资源;若所述资源处理失败场景为资源删除失败场景,则根据所述资源分配状态信息,重新生成删除失败的资源对应的所述用户资源关联记录;所述删除失败的资源包括:所述已分配资源的资源标识中除与用户标识关联的资源标识以外的资源标识对应的资源。
在一个实施例中,在所述根据所述资源处理失败场景的类型,处理所述用户资源关联记录之前,所述方法还包括:根据所述资源处理失败的场景,生成资源处理任务的任务消息;将所述资源处理任务的任务消息添加到消息队列;所述若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录,包括:从所述消息队列读取所述任务消息,根据所述任务消息指示的任务,删除所述资源新增失败场景的用户关联记录和/或重新生成删除失败资源对应的所述用户资源关联记录。
在一个实施例中,在所述处理所述用户资源关联记录之后,所述方法还包括:重新入库更新后的所述用户资源关联记录。
本公开实施例第二方面提供一种资源的处理装置,包括:获取模块,用于获取用户资源关联记录及资源分配状态信息;其中,所述用户资源关联记录包括:与用户标识关联的资源标识;所述资源分配状态信息包括已分配资源的资源标识;确定模块,用于根据所述用户资源关联记录及所述资源分配状态信息,确定是否在资源分配过程中存在资源处理失败场景;处理模块,用于若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录。
在一个实施例中,所述确定模块包括:第一确定子模块,用于若所述已分配资源的资源标识包含与用户标识关联的资源标识以外的资源标识,确定存在资源删除失败场景;和/或,第二确定子模块,用于若所述与用户标识关联的资源标识包含所述已分配资源的资源标识以外的资源标识,确定存在资源新增失败场景。
在一个实施例中,,所述处理模块包括:删除子模块,用于若所述资源处理失败场景为资源新增失败场景,则删除新增失败的资源对应的所述用户资源关联记录;所述新增失败的资源包括:所述与用户标识关联的资源标识中除所述已分配资源的资源标识以外的资源标识对应的资源;生成子模块,用于若所述资源处理失败场景为资源删除失败场景,则根据所述资源分配状态信息,重新生成删除失败的资源对应的所述用户资源关联记录;所述删除失败的资源包括:所述已分配资源的资源标识中除与用户标识关联的资源标识以外的资源标识对应的资源。
在一个实施例中,还包括:任务消息生成模块,用于在所述根据所述资源处理失败场景的类型,处理所述用户资源关联记录之前,根据所述资源处理失败的场景,生成资源处理任务的任务消息;添加模块,用于将所述资源处理任务的任务消息添加到消息队列;任务处理模块,用于从所述消息队列读取所述任务消息,根据所述任务消息指示的任务,删除所述资源新增失败场景的用户关联记录和/或重新生成删除失败资源对应的所述用户资源关联记录。
在一个实施例中,还包括:更新模块,用于在所述处理所述用户资源关联记录之后,重新入库更新后的所述用户资源关联记录。
本公开实施例第三方面提供一种电子设备,包括:
处理器;
存储器,其存储有程序指令,当所述程序指令被所述处理器执行时,使得所述电子设备执行上述任一项所述的方法。
本公开实施例第四方面提供一种存储介质,其存储有程序,当所述程序由处理器运行时,执行上述任一项所述的方法。
本公开实施例的技术方案通过获取用户资源关联记录及资源分配状态信息,然后匹配所用户资源关联记录及资源分配状态信息,确定资源处理失败场景。用户资源关联记录包括与用户标识关联的资源标识,资源分配状态信息包括已分配资源的资源标识。若存在资源处理失败场景,根据资源处理失败场景的类型,处理用户资源关联记录。
一方面,本方案可以根据实际业务需求,可以不通过日志记录的方式直接获取用户资源关联记录和资源分配状态信息,可以在任意的时间进行资源的处理操作,从而降低了在某一时间段内进行资源处理导致的性能开销大,资源处理任务较多,造成系统瘫痪,从而影响用户使用体验的情况的发生。由于可以根据业务需求,可以在任意的时间进行资源的处理,减少了对资源处理的等待时间,从而减少了对资源处理的时间长度,可以在需要对资源进行处理时即可对资源进行处理,不需要等待在固定的时间段进行,提高了对资源处理的实时性。
另一方面,通过不根据日志记录获取资源信息,而是可以直接获取用户资源关联记录及资源分配状态信息,进而确定资源处理失败场景的资源处理方式,减少了对日志的依赖,整个资源处理过程不需要通过对日志的读写。本方案可以在任意时间进行资源的处理,同时节省了日志在存储介质中的占用空间,节省了存储资源。
附图说明
图1为本公开实施例提供的一种资源的处理方法的流程示意图;
图2为本公开实施例提供的另一种资源的处理方法的流程示意图;
图3为本公开实施例提供的一种资源的处理装置的结构示意图;
图4为本公开实施例提供的另一种资源的处理方法的流程示意图;
图5为本公开实施例提供的一种为具体应用场景中选择的资源进行处理的界面示意图;
图6为本公开实施例提供的一种用户资源关联记录对应的代码示意图;
图7为本公开实施例提供的一种获取资源标识交集的示意图;
图8为本公开实施例提供的一种确定资源处理失败场景的示意图;
图9为本公开实施例提供的一种资源处理结果的示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
随着互联网技术的发展以及互联网用户数量的增长,对资源的处理能力提出了更高的要求。在这样的背景下,云计算由于具有规模大、分布式特性、高可用性、高扩展性、安全、经济和环保等特点成为互联网技术未来的发展趋势之一。
在使用云计算服务时,用户通过终端(例如浏览器)根据需求选择相应的配置并进行购买,然后系统采用虚拟化技术生成相应的资源,将该资源分配给对应的用户,并且还生成用户和资源的关联记录。由于购买的这些资源都是有时间限制的,在一定期限内具有使用权,所以在资源到期后用户如无意续费,不想继续使用,用户解除该资源服务,系统则会回收相应的资源并删除用户和资源的关联记录。
由于采用虚拟化技术,在开通并分配相应的资源或回收相应的资源时需要较长的时间,因此在实际的应用环境中均采用异步通知机制。用户购买服务后即可生成用户和资源的关联记录并将该关联记录返回至相应的终端,以便通知用户,同时通知相应的资源系统进行资源的开通和分配。用户解除服务后即可删除用户和资源的关联记录并将该关联记录的删除结果返回至相应的终端,以便通知用户,同时通知相应的资源系统进行资源的回收(删除)。
由于云计算技术面对的资源(例如计算资源、网络资源和存储资源等)数量庞大、运行环境复杂,通过虚拟化技术对资源进行开通分配或删除,或者,对用户和资源的关联记录进行生成或者删除时,存在一定的失败几率,基于异步通知机制会导致系统中记录的用户和资源的关联记录与已分配的资源之间存在错误。即资源开通分配失败,但已生成用户和资源的关联记录,和/或资源删除(回收)失败,但用户和资源的关联记录已被删除。
针对上述情况,目前通常的解决方案如下:
系统根据日志记录筛选出上述出现错误的资源的日志记录,于用户活跃度最低、系统压力最小的时间段批量对资源进行处理,即进行资源重试任务,根据对应的资源操作记录重新进行资源的开通或删除。但是,用户活跃度最低的时间段一般为凌晨三点至六点,这意味着此方案存在实时性较差的问题,在开通资源或者删除资源失败后不能立即对该资源进行重试操作,可能会导致该资源已处于计费状态从而造成经济纠纷等问题。
同时,在某一时间段内批量进行资源的重试任务的耗时也比较长,如果不能在这一时间段内完成所有的资源重试任务,随着用户访问量的增加以及其他任务的增加,必然会对系统性能造成影响,从而导致系统处理能力的降低,影响用户体验。
另外,由于上述用户活跃度最低的时间段的时长较短,如不能在此时间段完成资源重试任务,必然会影响系统的核心业务,造成系统性能的下降和服务响应迟缓等问题。并且,资源的开通及删除任务会带来一定的性能开销,大量的资源开通及删除任务密集分布于某一个很短的时间段内可能造成系统瘫痪,存在系统无法对外提供服务的风险。
上述解决方案还存在一个问题:上述方案需要根据操作日志记录来生成资源重试任务,此方法仅支持顺序读写操作日志记录,无法根据实际需求在任意时间读取操作记录并执行资源重试任务。同时,通过对日志记录进行读写的方式,必然会产生大量的日志记录,这些日志记录会占用一定的存储空间。
参考图1,为本申请的技术方案提供的一种资源的处理方法,该方法包括以下步骤:
步骤S100,获取用户资源关联记录及资源分配状态信息。其中,用户资源关联记录包括与用户标识关联的资源标识,资源分配状态信息包括已分配资源的资源标识。
步骤S200,根据所述用户资源关联记录及所述资源分配状态信息,确定是否在资源分配过程中存在资源处理失败场景。
步骤S300,若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录。
其中,
步骤S100,获取用户资源关联记录及资源分配状态信息。其中,用户资源关联记录包括与用户标识关联的资源标识,资源分配状态信息包括已分配资源的资源标识。
所述用户资源关联记录,包括:对应存储的用户标识及资源标识。用户资源关联记录表征了存储的用户标识和资源标识之间存在关联关系,将存储的用户标识和资源标识之间的关联关系以用户资源关联记录的形式进行体现,进而体现用户和资源之间的关系。这里的与用户标识关联的资源标识,可以是与用户标识已经存在关联关系的资源标识,即与用户标识生成用户资源关联记录的资源标识。
与用户标识关联的资源标识和已分配资源的资源标识,均可以包括计算资源、网络资源以及存储资源等等,计算资源可以是CPU资源,网络资源可以是带宽资源,可以是通信网络的通信资源。当然还可以是其他资源,这里并不进行限定,都在该实施例的保护范围之内。
资源分配状态信息可以是日志记录以外的信息,可以是资源管理器等生成的资源的分配状态信息,并不是根据日志记录得到的资源的分配状态的信息。资源管理器对资源的管理可以包括资源的生成、分配和删除(回收)等,还可以包括无效的管理,例如区分正常资源和异常资源等。
已分配资源的资源标识可以是已经分配的资源的资源标识,该已经分配的资源的资源标识包括与用户标识关联的资源标识,和/或未与用户标识关联的资源标识。即,已分配资源的资源标识可能与用户标识关联,也可能没有与用户标识关联。
步骤S200,根据所述用户资源关联记录及所述资源分配状态信息,确定是否在资源分配过程中存在资源处理失败场景。
在获取用户资源关联记录和资源分配状态信息后,将用户资源关联记录和资源分配状态信息进行匹配,确定在资源分配过程中是否存在资源处理失败场景。具体可以是根据用户资源关联记录包括的与用户标识关联的资源标识,和资源分配状态信息包括的已分配资源的资源标识,确定与用户标识关联的资源标识和已分配资源的资源标识是否完全一致,从而确定是否存在资源处理失败场景。在与用户标识关联的资源标识和已分配资源的资源标识不全部相同时,确定存在资源处理失败场景。在与用户标识关联的资源标识和已分配资源的资源标识全部相同时,确定不存在资源处理失败场景。
其中,资源处理失败场景包括资源新增失败场景和资源删除失败场景。资源新增失败场景包括:用户资源关联记录中包括的资源标识包括资源状态信息中包括的资源标识以外的资源标识,在这种情况下,将资源处理失败场景确定为资源新增失败场景。
资源新增失败场景表征了用户资源关联记录中已经存在了某一资源的资源标识与相应用户标识的用户资源关联记录,即该某一资源的资源标识与用户标识已经关联,用户资源关联记录中包括了与用户标识关联的这一资源的资源标识。但是资源状态信息包括的已分配资源中的资源标识并不包括这一资源的资源标识,在已分配资源的资源标识中并不存在这一资源的资源标识,说明系统并没有生成以及分配这一资源。即资源开通分配失败,但已生成用户和资源的关联记录。
资源处理失败场景中的资源删除失败场景包括:资源状态信息中包括的资源标识包括用户资源关联记录中包括的资源标识以外的资源标识,在这种情况下,将资源处理失败场景确定为资源删除失败场景。
资源删除失败场景表征了用户资源关联记录中已经删除了某一资源的资源标识与相应用户标识的用户资源关联记录,即用户资源关联记录中与用户标识关联的这一资源的资源标识已经被删除,这一资源的资源标识与用户标识已经不存在关联关系。但是在资源状态信息包括的已分配资源中的资源标识中并没有删除(回收)这一资源对应的资源标识,在已分配资源的资源标识中还包括这一资源的资源标识,说明系统并没有删除这一资源。即资源删除(回收)失败,但用户和资源的关联记录已被删除。
具体地,确定资源处理失败场景可以根据算法进行确定。该算法的过程可以包括:
通过确定用户资源关联记录中与用户标识关联的资源标识,和资源分配状态信息中已分配资源的资源标识之间共有的资源标识,即选取与用户标识关联的资源标识和已分配资源的资源标识的资源标识交集。该步骤可以根据资源标识对应资源的资源ID进行。资源标识交集表示在用户资源记录信息和资源分配状态信息中都有的资源,资源标识交集中的对应的资源为已经分配成功的资源。
然后选取用户资源关联记录中与用户标识关联的资源标识和资源标识交集之间的第一差集,具体可以通过与用户标识关联的资源标识对应的资源ID和资源标识交集中对应的资源ID选取。若存在该第一差集,第一差集不为空,则该第一差集表示资源开通分配失败,但已生成用户和资源的关联记录,即资源新增失败场景。
选取已分配资源的资源标识和资源标识交集之间的第二差集,具体可以通过已分配资源的资源标识对应的资源ID和资源标识交集中对应的资源ID选取。若存在该第二差集,第二差集不为空,该第二差集表示资源删除(回收)失败,但用户和资源的关联记录已被删除,即资源删除失败场景。
通过该步骤可以确定用户资源关联记录与资源分配状态信息是否一致,是否存在资源处理失败场景,以便在两者不一致,存在资源处理失败场景时,进行资源的处理。
步骤S300,若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录。
在确定存在资源处理失败场景时,根据是资源新增失败场景还是资源删除失败场景,处理用户资源关联记录。不同的资源处理失败场景对应不同的处理方法,资源新增失败场景对应有资源新增失败场景的用户资源关联记录的处理方法,资源删除失败场景对应有资源删除失败场景的用户资源关联记录的处理方法。
本方案以已分配资源的资源标识为参考基准,根据已分配资源的资源标识,对于用户标识关联的资源标识进行处理,从而将已分配资源的资源标识和与用户标识关联的资源标识进行同步,使两者一致,减少资源使用过程中存在的错误。
通过不同资源处理失败场景中对用户资源关联记录的不同处理方法,完成了对用户资源关联记录的处理,使得用户资源关联记录中与用户标识关联的资源标识和资源分配状态信息中已分配资源的资源标识相同。减少了资源在使用过程中存在的错误,减少了已分配资源和用户资源关联记录存在不一致,导致用户资源记录存在错误的问题。
一方面,本方案可以根据实际业务需求,可以不通过日志记录的方式直接获取用户资源关联记录和资源分配状态信息,可以在任意的时间进行资源的处理操作,从而降低了在某一时间段内进行资源处理导致的性能开销大,资源处理任务较多,造成系统瘫痪,从而影响用户使用体验的情况的发生。由于可以根据业务需求,可以在任意的时间进行资源的处理,减少了对资源处理的等待时间,从而减少了对资源处理的时间长度,可以在需要对资源进行处理时即可对资源进行处理,不需要等待在固定的时间段进行,提高了对资源处理的实时性。
另一方面,通过不根据日志记录获取资源信息,而是可以直接获取用户资源关联记录及资源分配状态信息,进而确定资源处理失败场景的资源处理方式,减少了对日志的依赖,整个资源处理过程不需要通过对日志的读写。本方案可以在任意时间进行资源的处理,同时节省了日志在存储介质中的占用空间,节省了存储资源。
在另一实施例中,步骤S200,根据所述用户资源关联记录及所述资源分配状态信息,确定是否在资源分配过程中存在资源处理失败场景。
其中,若已分配资源的资源标识包含与用户标识关联的资源标识以外的资源标识,确定存在资源删除失败场景。已分配资源的资源标识中包括与用户标识关联的资源标识中不包括的资源标识(为了方便说明这里将该资源标识称为第一资源标识)时,说明该第一资源标识与用户标识的用户关联记录已经被删除,用户关联记录中已经不存在该第一资源标识与用户标识的关联记录信息。该第一资源为删除失败的资源。但是,已分配资源的资源标识中还存在该第一资源标识,系统并没有在已分配资源中将该第一资源标识对应的第一资源删除(回收),在已分配资源的资源标识中也就没有删除该第一资源标识。
这种情况下,说明第一资源删除失败,第一资源还存在,但是用户和第一资源的关联记录已经被删除,将该情况确定为资源删除失败场景。
若与用户标识关联的资源标识包含已分配资源的资源标识以外的资源标识,确定存在资源新增失败场景。与用户标识关联的资源标识中含有已分配资源的资源标识中不存在的资源标识(为了方便说明,将该资源标识称为第二资源标识)时,说明系统并没有生成和分配该第二资源标识对应的第二资源,所以在已分配资源的资源标识中也没有该第二资源标识。该第二资源为新增失败的资源。但是,在与用户标识关联的资源标识中已经存在该第二资源标识,该第二资源标识已经与用户标识存在关联关系,即用户资源关联记录中已经存在第二资源标识与用户标识关联的关联记录。
在这种情况时,说明第二资源新增失败,第二资源没有生成和分配成功,但是用户和第二资源的关联记录已经存在,将这种情况确定为资源新增失败场景。
在另一实施例中,步骤S300,若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录,包括:
若资源处理失败场景为资源新增失败场景,则删除新增失败的资源对应的用户资源关联记录。为了将已分配资源的资源标识和与用户标识关联的资源标识保持一致,以已分配资源的资源标识为准,对与用户标识关联的资源标识进行处理,将与用户标识关联的资源标识中新增失败的资源对应的用户资源关联记录删除。新增失败的资源包括:所述与用户标识关联的资源标识中除所述已分配资源的资源标识以外的资源标识对应的资源,例如,第二资源。
这里的新增失败的资源以上述实施例中的第二资源为例,第二资源为与用户标识关联的资源标识包含的已分配资源标识以外的资源标识对应的资源。将新增失败的第二资源对应的第二资源标识与用户标识关联的用户资源关联记录删除,这样用户资源关联记录就不存在第二资源标识,从而使得用户资源关联记录中与用户标识关联的资源标识与已分配资源的资源标识保持一致,减少了已分配资源和用户资源关联记录存在不一致,导致用户资源记录存在错误的问题。
若资源处理失败场景为资源删除失败场景,则根据资源分配状态信息,重新生成删除失败的资源对应的用户资源关联记录。同样为了将已分配资源的资源标识和与用户标识关联的资源标识保持一致,以已分配资源的资源标识为准,对与用户标识关联的资源标识进行处理,在用户资源关联记录中重新生成删除失败的资源对应的用户资源关联记录。所述删除失败的资源包括:所述已分配资源的资源标识中除与用户标识关联的资源标识以外的资源标识对应的资源,例如第一资源。
这里的删除失败的资源以上述实施例中的第一资源为例,第一资源为已分配资源标识包含与用户标识关联的资源标识以外的资源标识对应的资源。重新生成删除失败的第一资源对应的第一资源标识与用户标识关联的用户资源关联,这样用户资源关联记录中包括的与用户标识关联的资源标识与已分配资源的资源标识一致,减少了已分配资源和用户资源关联记录存在不一致,导致用户资源记录存在错误的问题。
值得说明的是,资源删除失败场景和资源新增失败场景可以同时存在,也可以存在其中的一种。当两种场景同时存在时,分别执行两种场景对应的资源处理方法。
参考图2,在另一实施例中,还提供了另一种资源的处理方法,该处理方法包括上述实施例中的步骤S100和步骤S200,这里不再说明,除了步骤S100和步骤S200之外,还包括:
步骤S400,根据资源处理失败的场景,生成资源处理任务的任务消息。
在确定存在资源处理失败场景后,根据资源处理失败场景的类型,生成相应的资源处理任务的任务消息。当资源处理失败场景为资源新增失败场景时,生成资源新增失败对应的任务消息,当资源处理失败场景为资源删除失败场景时,生成资源删除失败对应的任务消息。
不同的任务消息可以带有不同的标签或者标志位,标签或者标志位可以表示任务消息是哪种任务消息,方便任务消息的执行。
步骤S500,将资源处理任务的任务消息添加到消息队列。
步骤S600,从消息队列读取任务消息,根据任务消息指示的任务,删除资源新增失败场景的用户关联记录和/或重新生成删除失败资源对应的用户资源关联记录。
将任务消息添加到消息队列后,需要从消息队列中读取任务消息,根据任务消息指示的不同消息任务。在任务消息为资源删除失败对应的任务消息时,重新生成删除失败资源对应的用户资源关联记录,在任务消息为资源新增失败对应的任务消息时,删除资源新增失败场景的用户关联记录。
通过将任务消息添加到消息队列,可以提高系统的处理性能,同时由于需要使用日志记录,从而也不需要占用大量的磁盘存储空间,节省了存储空间。通过消息队列还可以将任务消息进行持久化处理,直至任务消息被处理完成,减少数据丢失的风险,该消息队列可以是分布式消息队列(如Kafka等)。
在另一实施例中,上述方法还可以包括:在处理用户资源关联记录之后,重新入库更新后的用户资源关联记录。
在根据资源处理失败场景的类型,处理用户资源关联记录之后,得到更新的用户资源关联信息,将更新后的用户资源关联信息重新存入数据库等。
在另一实施例中,对资源处理的上述方法可以在流式计算引擎(如flink等)中执行,流式计算引擎具有流式计算的特点,提高了处理的时效性,可以及时对资源进行处理。
参考图3,为本申请的技术方案提供的一种资源的处理装置的结构示意图,该处理装置包括:
获取模块1,用于获取用户资源关联记录及资源分配状态信息;其中,所述用户资源关联记录包括:与用户标识关联的资源标识;所述资源分配状态信息包括已分配资源的资源标识。
确定模块2,用于根据所述用户资源关联记录及所述资源分配状态信息,确定是否在资源分配过程中存在资源处理失败场景。
处理模块3,用于若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录。
图3中只是示出了上述三种模块结构,其他结构未示出。
在另一实施例中,所述确定模块包括:
第一确定子模块,用于若所述已分配资源的资源标识包含与用户标识关联的资源标识以外的资源标识,确定存在资源删除失败场景;
和/或,
第二确定子模块,用于若所述与用户标识关联的资源标识包含所述已分配资源的资源标识以外的资源标识,确定存在资源新增失败场景。
在另一实施例中,所述处理模块包括:
删除子模块,用于若所述资源处理失败场景为资源新增失败场景,则删除新增失败的资源对应的所述用户资源关联记录;所述新增失败的资源包括:所述与用户标识关联的资源标识中除所述已分配资源的资源标识以外的资源标识对应的资源;
生成子模块,用于若所述资源处理失败场景为资源删除失败场景,则根据所述资源分配状态信息,重新生成删除失败的资源对应的所述用户资源关联记录;所述删除失败的资源包括:所述已分配资源的资源标识中除与用户标识关联的资源标识以外的资源标识对应的资源。
在另一实施例中,该处理装置还包括:
任务消息生成模块,用于在所述根据所述资源处理失败场景的类型,处理所述用户资源关联记录之前,根据所述资源处理失败的场景,生成资源处理任务的任务消息;
添加模块,用于将所述资源处理任务的任务消息添加到消息队列;
任务处理模块,用于从所述消息队列读取所述任务消息,根据所述任务消息指示的任务,删除所述资源新增失败场景的用户关联记录和/或重新生成删除失败资源对应的所述用户资源关联记录。
在另一实施例中,该装置还包括:
更新模块,用于在所述处理所述用户资源关联记录之后,重新入库更新后的所述用户资源关联记录。
本申请的技术方案还提供了一种电子设备,包括:
处理器;
存储器,其存储有程序指令,当程序指令被处理器执行时,使得电子设备执行上述任一项实施例中的方法。
本申请的技术方案还提供了一种存储介质,其存储有程序,当程序由处理器运行时,执行上述任一项实施例中的方法。该存储介质包括非瞬间存储介质。
在另一实施例中,本发明提供了一种资源处理方法,包括基于流式计算引擎(flink)的云计算资源处理方法,该方法主要思想包括:
1、向流式计算引擎flink集群提交资源重试作业任务,流式计算引擎flink集群通知工作节点获取获取用户资源关联记录及资源分配状态信息。
2、匹配用户资源关联记录及资源分配状态信息,确定资源处理失败场景,包括确定户资源关联记录及资源分配状态信息的资源标识之间的交集与差集。
3、若存在资源处理失败场景,根据资源处理失败场景的类型,处理用户资源关联记录,包括生成资源开通和/或删除任务的任务消息,并持久化至消息队列(如kafka)中,消费者消费消息队列kafka中的任务消息。
参考图4,为另一实施例提供的一种资源的处理方法,该处理方法包括步骤A、B和C。其中:
A:获取用户资源关联记录及资源分配状态信息的步骤,该步骤包括:
步骤1:通过流式计算引擎flink中的客户端向流式计算引擎flink中任务管理器JobManager发起资源重试作业请求,JobManager收到该请求后通过网络通知流式计算引擎中各线程管理器TaskManger运行任务。TaskManger开始运行任务并将任务运行状态及心跳信息反馈至JobManager。
参考图5,为具体应用场景中选择的资源进行处理的界面示意图。
向flink集群提交业务请求,该实施例为对华东区域中心下的POD2-KVM测试资源池的块存储资源进行资源处理任务,创建之前新增失败的资源或者删除之前清除失败的资源。
步骤2:各TaskManager通过应用程序接口(restful API)访问系统获取用户资源关联记录对应的集合S1和用户资源关联记录对应的集合S2。
参考图6,为用户资源关联记录对应的集合和资源分配状态信息中有关信息的说明。flink集群的TaskManager调用应用程序接口(restful API)按照华东区域中心下的POD2-KVM条件获取集合S1和集合S2。
B:匹配用户资源关联记录及资源分配状态信息,确定资源处理失败场景的步骤。其中,资源处理失败场景的类型包括:资源新增失败场景和/或资源删除失败场景。该步骤包括:
步骤3:通过逐一比对集合S1和集合S2中的元素的唯一ID标识。若ID标识同时存在于集合S1和集合S2中,则代表此ID标识对应的资源开通成功成功,用户资源关联记录没有出现错误,不需要对资源进行处理,根据该ID标识确定集合Sall,集合Sall表示用户资源关联记录和用户资源关联记录中共有的资源标识的集合。
步骤4:确定集合S1与集合Sall的差集Sdel,此集合对应资源新增失败场景中在用户资源关联记录中生成的用户资源关联记录,而资源分配状态信息中并没有该该集合中的资源标识。确定集合S2与集合Sall的差集Sadd,此集合对应资源删除失败场景中资源分配状态信息中已经存在分配了该集合中的资源标识,但是用户资源关联记录中并没有该集合中的资源标识对应的关联记录信息。
参考图7,确定集合S1和集合S2的交集Sall,如图7所示,集合S1和集合S2中均包含ID标识为00251ace-dfde-4a30-99c4-966084269e96的资源标识,因此生成的集合Sall中的元素(资源标识)数量为1,且此该元素(资源标识)的ID为00251ace-dfde-4a30-99c4-966084269e96。
C:若存在资源处理失败场景,根据资源处理失败场景的类型,处理用户资源关联记录的步骤。该步骤包括:
步骤5:根据步骤4中得到Sdel、Sadd集合,生成相应的资源操作任务,通过设置任务的标志位决定该任务为创建任务或删除任务,并将任务序列化后写入消息队列kafka中。
参考图8,确定集合S1与集合Sall的差集,集合S2与集合Sall的差集,分别得到对应的集合Sdel和集合Sadd。从图8中可见,集合Sdel中的元素(资源标识)均满足ID仅存在于集合S1中且不存在与集合S2中,集合Sdel表示资源新增失败场景中,新增失败的资源对应的用户资源关联记录。集合Sadd中的元素(资源标识)均满足ID仅存在于集合S2中且不存在与集S1中,集合Sadd表示资源删除失败场景中,删除失败的资源的资源标识的相关信息。
步骤6:多个kafka消费者消费消息队列中的数据,根据任务标志位调用api创建、删除资源。
TaskManager进程集合Sadd和/或集合Sdel生成具体的任务消息,并将该任务消息序列化后添加至消息队列kafka中。消费者消费消息队列中的任务消息,根据任务消息的属性调用API接口执行用户资源关联记录的删除或者添加。
步骤7:资源重试任务执行结束,任务状态更新入库。
以删除资源为例,观察系统的任务监测平台发现前两条记录对应的资源删除任务成功执行,资源已经正常删除。参考图9。
采用flink流式计算引擎将批量资源重试任务按照资源操作的时间先后顺序平摊到每个时间点上,将大任务拆分成多个小任务,连续对小批量的资源重试任务进行操作,从而保证数据的一致性和完整性,实现了较小的系统性能开销。解决资源重试任务实时性差,性能开销大、任务时间过长的问题。
通过稽查算法对比用户资源关联记录和资源分配状态信息,而非原方案中读取日志的方式生成资源创建和删除任务,并将任务序列化后持久化至消息中间件kafka中。解决资源重试任务仅支持顺序读写操作日志的方式,同时在运行时无需通过资源操作日志即可完成资源重试任务,节约了大量的存储成本,节省了宝贵的磁盘资源。
现有方案为保证资源重试任务,需要读取操作日志并根据资源操作结果生成资源重试任务,这会导致下述问题:(1)对同一个资源可能产生多次操作,如先新建某资源再删除该资源,但从结果来看对该资源无需任何操作。这就导致系统对该资源产生了一次无意义的创建及删除资源开销。(2)若资源重试批处理任务进行过程中出现任务失败的情况,则下次执行任务时无法从上次任务失败的时间点开始执行,只能从日志起始位置开始顺执行,性能较差。(3)在实际的生产环境中,资源操作记录生成的日志文件较大,通常为Gb数量级,且该日志文件不能删除,这就导致系统中存在大量的日志文件占用存储空间。而本发明方案采用稽查算法实时生成删除、生成任务,无需操作庞大的日志即可进行资源重试任务,保证了对资源的操作有且仅有一次,不会出现上述先创建后删除的情况。同时将任务持久化至kafka消息中间件中,利用kafka自身持久化文件结构紧凑、且可随意选择文件保存期限的优点,保证占用少量的系统存储空间。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
在一些情况下,上述任一两个技术特征不冲突的情况下,可以组合成新的方法技术方案。
在一些情况下,上述任一两个技术特征不冲突的情况下,可以组合成新的设备技术方案。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种资源的处理方法,其特征在于,包括:
获取用户资源关联记录及资源分配状态信息;其中,所述用户资源关联记录包括:与用户标识关联的资源标识;所述资源分配状态信息包括已分配资源的资源标识;
根据所述用户资源关联记录及所述资源分配状态信息,确定是否在资源分配过程中存在资源处理失败场景;
若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录。
2.根据权利要求1所述的处理方法,其特征在于,所述根据所述用户资源关联记录及所述资源分配状态信息,确定在资源分配过程中是否存在资源处理失败场景,包括:
若所述已分配资源的资源标识包含与用户标识关联的资源标识以外的资源标识,确定存在资源删除失败场景;
和/或,
若所述与用户标识关联的资源标识包含所述已分配资源的资源标识以外的资源标识,确定存在资源新增失败场景。
3.根据权利要求2所述的方法,其特征在于,所述若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录,包括:
若所述资源处理失败场景为资源新增失败场景,则删除新增失败的资源对应的所述用户资源关联记录;所述新增失败的资源包括:所述与用户标识关联的资源标识中除所述已分配资源的资源标识以外的资源标识对应的资源;
若所述资源处理失败场景为资源删除失败场景,则根据所述资源分配状态信息,重新生成删除失败的资源对应的所述用户资源关联记录;所述删除失败的资源包括:所述已分配资源的资源标识中除与用户标识关联的资源标识以外的资源标识对应的资源。
4.根据权利要求1至3任一项所述的处理方法,其特征在于,在所述根据所述资源处理失败场景的类型,处理所述用户资源关联记录之前,所述方法还包括:
根据所述资源处理失败的场景,生成资源处理任务的任务消息;
将所述资源处理任务的任务消息添加到消息队列;
所述若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录,包括:
从所述消息队列读取所述任务消息,根据所述任务消息指示的任务,删除所述资源新增失败场景的用户关联记录和/或重新生成删除失败资源对应的所述用户资源关联记录。
5.根据权利要求1所述的处理方法,其特征在于,在所述处理所述用户资源关联记录之后,所述方法还包括:
重新入库更新后的所述用户资源关联记录。
6.一种资源的处理装置,其特征在于,包括:
获取模块,用于获取用户资源关联记录及资源分配状态信息;其中,所述用户资源关联记录包括:与用户标识关联的资源标识;所述资源分配状态信息包括已分配资源的资源标识;
确定模块,用于根据所述用户资源关联记录及所述资源分配状态信息,确定是否在资源分配过程中存在资源处理失败场景;
处理模块,用于若在资源分配过程中存在所述资源处理失败场景,根据所述资源处理失败场景的类型,处理所述用户资源关联记录。
7.根据权利要求6所述的处理装置,其特征在于,所述确定模块包括:
第一确定子模块,用于若所述已分配资源的资源标识包含与用户标识关联的资源标识以外的资源标识,确定存在资源删除失败场景;
和/或,
第二确定子模块,用于若所述与用户标识关联的资源标识包含所述已分配资源的资源标识以外的资源标识,确定存在资源新增失败场景。
8.根据权利要求7所述的处理装置,其特征在于,所述处理模块包括:
删除子模块,用于若所述资源处理失败场景为资源新增失败场景,则删除新增失败的资源对应的所述用户资源关联记录;所述新增失败的资源包括:所述与用户标识关联的资源标识中除所述已分配资源的资源标识以外的资源标识对应的资源;
生成子模块,用于若所述资源处理失败场景为资源删除失败场景,则根据所述资源分配状态信息,重新生成删除失败的资源对应的所述用户资源关联记录;所述删除失败的资源包括:所述已分配资源的资源标识中除与用户标识关联的资源标识以外的资源标识对应的资源。
9.根据权利要求6至8任一项所述的处理装置,其特征在于,还包括:
任务消息生成模块,用于在所述根据所述资源处理失败场景的类型,处理所述用户资源关联记录之前,根据所述资源处理失败的场景,生成资源处理任务的任务消息;
添加模块,用于将所述资源处理任务的任务消息添加到消息队列;
任务处理模块,用于从所述消息队列读取所述任务消息,根据所述任务消息指示的任务,删除所述资源新增失败场景的用户关联记录和/或重新生成删除失败资源对应的所述用户资源关联记录。
10.根据权利要求6所述的处理装置,其特征在于,还包括:
更新模块,用于在所述处理所述用户资源关联记录之后,重新入库更新后的所述用户资源关联记录。
11.一种电子设备,包括:
处理器;
存储器,其存储有程序指令,当所述程序指令被所述处理器执行时,使得所述电子设备执行如权利要求1~5任一项所述的方法。
12.一种存储介质,其存储有程序,当所述程序由处理器运行时,执行如权利要求1~5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110001681.3A CN114722261A (zh) | 2021-01-04 | 2021-01-04 | 一种资源的处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110001681.3A CN114722261A (zh) | 2021-01-04 | 2021-01-04 | 一种资源的处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114722261A true CN114722261A (zh) | 2022-07-08 |
Family
ID=82233573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110001681.3A Pending CN114722261A (zh) | 2021-01-04 | 2021-01-04 | 一种资源的处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114722261A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024125117A1 (zh) * | 2022-12-12 | 2024-06-20 | 中兴通讯股份有限公司 | 一种冗余资源回收处理方法、装置、存储介质及电子装置 |
-
2021
- 2021-01-04 CN CN202110001681.3A patent/CN114722261A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024125117A1 (zh) * | 2022-12-12 | 2024-06-20 | 中兴通讯股份有限公司 | 一种冗余资源回收处理方法、装置、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781214A (zh) | 数据库读写方法、装置、计算机设备和存储介质 | |
JP2007241486A (ja) | 記憶装置システム | |
CN113687964A (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN113961510A (zh) | 一种文件处理方法、装置、设备及存储介质 | |
CN114896215A (zh) | 元数据的存储方法及装置 | |
CN114741449A (zh) | 一种基于分布式数据库的对象存储方法及装置 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN114722261A (zh) | 一种资源的处理方法、装置、电子设备及存储介质 | |
CN111399999B (zh) | 计算机资源处理方法、装置、可读存储介质和计算机设备 | |
US20230161664A1 (en) | Method of responding to operation, electronic device, and storage medium | |
CN112711606A (zh) | 数据库访问方法、装置、计算机设备和存储介质 | |
CN113515518A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN113806309B (zh) | 基于分布式锁的元数据删除方法、系统、终端及存储介质 | |
CN113590643B (zh) | 基于双轨数据库的数据同步方法、装置、设备和存储介质 | |
CN115510036A (zh) | 数据迁移方法、装置、设备以及存储介质 | |
CN112445620B (zh) | 一种smb协议写入性能的优化方法、装置及可读存储介质 | |
CN111399759B (zh) | 读数据、写数据的方法、以及对象文件系统 | |
CN114756293A (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
CN108376104B (zh) | 节点调度方法及装置、计算机可读存储介质 | |
CN108614838B (zh) | 一种用户群索引处理方法、装置及系统 | |
CN110658989B (zh) | 用于备份存储垃圾收集的系统和方法 | |
CN115617580B (zh) | 基于共享sst文件的增量备份、恢复方法和系统 | |
CN118365452B (zh) | 基于Redis的热点账户的交易方法、装置、介质和设备 | |
CN114676093B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN111797062B (zh) | 数据处理方法、装置和分布式数据库系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |