CN116051003B - 库存处理方法、装置、电子设备及存储介质 - Google Patents
库存处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116051003B CN116051003B CN202310204465.8A CN202310204465A CN116051003B CN 116051003 B CN116051003 B CN 116051003B CN 202310204465 A CN202310204465 A CN 202310204465A CN 116051003 B CN116051003 B CN 116051003B
- Authority
- CN
- China
- Prior art keywords
- resource
- resource provider
- provider
- requirement
- target
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06315—Needs-based resource requirements planning or analysis
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Tourism & Hospitality (AREA)
- Data Mining & Analysis (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Game Theory and Decision Science (AREA)
- Computational Linguistics (AREA)
- Educational Administration (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种库存处理方法、装置、电子设备及存储介质,涉及计算机技术领域。该方法应用于云计算管理平台的库存管理***,该方法包括:接收业务端的资源创建需求;其中,资源创建需求中包括资源需求类型和需求量;根据资源创建需求、关系型数据库以及Redis数据库,确定目标资源提供者;其中,关系型数据库中存储有云计算管理平台中资源提供者的数据信息,数据信息包括资源类型和每个资源类型对应的资源总量;Redis数据库中存储有资源提供者中每个资源类型对应的资源剩余量;目标资源提供者为资源剩余量大于或等于需求量的资源提供者;向业务端返回目标资源提供者。本申请提升了库存管理***的响应速度和可支持的并发度。
Description
技术领域
本申请涉及计算机技术,尤其涉及一种库存处理方法、装置、电子设备及存储介质。
背景技术
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作,通过各种互补的服务提供了基础设施即服务(Infrastructure as a Service,IaaS)的解决方案。
目前,OpenStack的库存管理***为Placement,以应用程序接口(ApplicationProgramming Interface,API)的形式提供***功能,通过关系型数据库(RelationalDatabase Management System,RDBMS)提供各种数据的存储、查询等支持,再计算资源剩余量来判断库存是否充足,进而响应业务端的创建请求。
然而,基于Placement的库存管理***和实现方式,无法保证外部***资源使用数据与Placement内部资源分配记录的一致;而且,Placement的内部实现复杂,过程繁琐耗时,响应速度太慢,无法满足用户剧增、创建操作并发度持续提高的现状,已经不能提供良好的服务。
因此,如何保证OpenStack的库存管理***的库存数据一致性、以及如何提高针对创建请求的响应速度和并发度等问题,成为目前急需解决的重要问题。
发明内容
本申请提供一种库存处理方法、装置、电子设备及存储介质,用以解决如何保证OpenStack的库存管理***的库存数据一致性、以及如何提高针对创建请求的响应速度和并发度等问题。
一方面,本申请提供一种库存处理方法,所述方法应用于云计算管理平台的库存管理***,所述方法包括:
接收业务端的资源创建需求;其中,所述资源创建需求中包括资源需求类型和需求量;
根据所述资源创建需求、关系型数据库以及Redis数据库,确定目标资源提供者;其中,所述关系型数据库中存储有所述云计算管理平台中资源提供者的数据信息,所述数据信息包括资源类型和每个资源类型对应的资源总量;所述Redis数据库中存储有资源提供者中每个资源类型对应的资源剩余量;所述目标资源提供者为所述资源剩余量大于或等于所述需求量的资源提供者;
向所述业务端返回所述目标资源提供者。
可选地,根据所述资源创建需求、关系型数据库以及Redis数据库,确定目标资源提供者,包括:
根据所述资源创建需求和所述关系型数据库,确定待选资源提供者;其中,所述待选资源提供者为符合所述资源创建需求的资源提供者;
根据所述待选资源提供者和所述Redis数据库,确定目标资源提供者;其中,所述目标资源提供者为所述资源剩余量大于或等于所述需求量的待选资源提供者。
可选地,根据所述资源创建需求和所述关系型数据库,确定待选资源提供者,包括:
查询所述关系型数据库,筛选所述关系型数据库中,能够提供所述资源需求类型的资源提供者;
确定所述资源总量大于或等于所述需求量的资源提供者,为所述待选资源提供者。
可选地,根据所述待选资源提供者和所述Redis数据库,确定目标资源提供者,包括:
查询所述Redis数据库,筛选所述Redis数据库中,所述资源剩余量大于或等于所述需求量的待选资源提供者,确定为所述目标资源提供者。
可选地,所述方法还包括:
接收业务端发送的预创建请求;其中,所述预创建请求中包括用户所选择的目标资源提供者;
根据所述预创建请求和所述Redis数据库,进行资源预占。
可选地,根据所述预创建请求和所述Redis数据库,进行资源预占,包括:
查询所述Redis数据库,确定所述用户所选择的目标资源提供者的资源剩余量;
若用户所选择的目标资源提供者的资源剩余量大于或等于所述需求量,则扣减所述Redis数据库中用户所选择的目标资源提供者的资源剩余量,并在所述关系型数据库中创建并存储使用记录数据。
可选地,所述方法还包括:
定期从所述业务端获取资源使用数据,根据所述资源使用数据和所述使用记录数据,更新所述Redis数据库。
另一方面,本申请提供一种库存处理装置,包括:所述装置应用于云计算管理平台的库存管理***,所述装置包括:
获取单元,用于接收业务端的资源创建需求;其中,所述资源创建需求中包括资源需求类型和需求量;
处理单元,用于根据所述资源创建需求、关系型数据库以及Redis数据库,确定目标资源提供者;其中,所述关系型数据库中存储有所述云计算管理平台中资源提供者的数据信息,所述数据信息包括资源类型和每个资源类型对应的资源总量;所述Redis数据库中存储有资源提供者中每个资源类型对应的资源剩余量;所述目标资源提供者为所述资源剩余量大于或等于所述需求量的资源提供者;
发送单元,用于向所述业务端返回所述目标资源提供者。
可选地,所述处理单元包括预处理模块和确定模块;
所述预处理模块,用于根据所述资源创建需求和所述关系型数据库,确定待选资源提供者;其中,所述待选资源提供者为符合所述资源创建需求的资源提供者;
所述确定模块,用于根据所述待选资源提供者和所述Redis数据库,确定目标资源提供者;其中,所述目标资源提供者为所述资源剩余量大于或等于所述需求量的待选资源提供者。
可选地,所述预处理模块包括第一筛选模块和第二筛选模块;
所述第一筛选模块,用于查询所述关系型数据库,筛选所述关系型数据库中,能够提供所述资源需求类型的资源提供者;
所述第二筛选模块,用于确定所述资源总量大于或等于所述需求量的资源提供者,为所述待选资源提供者。
可选地,所述确定模块,具体用于查询所述Redis数据库,筛选所述Redis数据库中,所述资源剩余量大于或等于所述需求量的待选资源提供者,确定为所述目标资源提供者。
可选地,所述获取单元包括接收模块,所述处理单元包括资源预占模块;
所述接收模块,用于接收业务端发送的预创建请求;其中,所述预创建请求中包括用户所选择的目标资源提供者;
所述资源预占模块,用于根据所述预创建请求和所述Redis数据库,进行资源预占。
可选地,所述资源预占模块包括查询模块和判断模块;
所述查询模块,用于查询所述Redis数据库,确定所述用户所选择的目标资源提供者的资源剩余量;
所述判断模块,用于若用户所选择的目标资源提供者的资源剩余量大于或等于所述需求量,则扣减所述Redis数据库中用户所选择的目标资源提供者的资源剩余量,并在所述关系型数据库中创建并存储使用记录数据。
可选地,所述装置还包括对账单元;
所述对账单元,用于定期从所述业务端获取资源使用数据,根据所述资源使用数据和所述使用记录数据,更新所述Redis数据库。
另一方面,本申请还提供一种电子设备,所述电子设备包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如上所述的方法。
另一方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上所述的方法。
另一方面,本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
本申请提供了一种库存处理方法、装置、电子设备及存储介质,本申请的方法应用于云计算管理平台的库存管理***,方法包括:接收业务端的资源创建需求;其中,所述资源创建需求中包括资源需求类型和需求量;根据所述资源创建需求、关系型数据库以及Redis数据库,确定目标资源提供者;其中,所述关系型数据库中存储有所述云计算管理平台中资源提供者的数据信息,所述数据信息包括资源类型和每个资源类型对应的资源总量;所述Redis数据库中存储有资源提供者中每个资源类型对应的资源剩余量;所述目标资源提供者为所述资源剩余量大于或等于所述需求量的资源提供者;向所述业务端返回所述目标资源提供者。本申请的方案引入了Redis数据库,利用关系型数据库RDBMS以及Redis数据库分别存储不同的数据,通过二者配合的方式可以达到无锁管理;另外,基于Redis数据库自身单线程、内存操作的特性,保证了数据的操作安全性,也提升了库存管理***的响应速度和可支持的并发度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种库存处理方法的流程示意图;
图2为本申请实施例提供的一种资源预创建方法的流程示意图;
图3为本申请实施例提供的一种库存处理装置的结构示意图;
图4为本申请实施例提供的又一种库存处理装置的结构示意图;
图5为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
随着IaaS业务的快速增长,云池资源的种类和库存数据也在快速增长,这使得OpenStack的库存管理***的压力越来越大,响应业务的耗时也越来越久,严重影响了用户的使用体验。
一个示例中,OpenStack的库存管理***为Placement,它执行一种高度抽象且简单统一的管理方法,通过计算资源剩余量来判断OpenStack的库存是否充足,它让用户能够便捷的使用、管理、监控整个OpenStack的***资源。具体地,库存管理***在查询资源创建方案时,根据业务端提供的消费者的待创建资源类型和数量,查询关系型数据库RDBMS,进而获取资源提供者的资源清单、资源种类、以及已经分配给消费者的资源状况等信息,并计算各资源的总使用量和资源剩余量,从而筛选出资源剩余量大于创建请求量的所有资源提供者,并返回给业务端,以供用户选择。然后,用户再在筛选出的资源提供者中,选择其中的一个或多个,完成资源预创建。其中,在进行资源预创建时,仍需再次查询关系型数据库RDBMS,获取资源总量和总使用量,再计算选择的资源提供者的资源剩余量,并判断资源剩余量是否大于创建请求量。若大于或等于创建请求量,则为消费者记录预创建明细,若小于创建请求量,则表明库存不足,返回预创建失败的信息。
基于上述Placement的库存管理***和实现方式,至少存在以下问题:
(1)虽然能够保证Placement内部数据的一致性,但是不能保证外部***资源使用数据与Placement内部资源分配记录一致,使得Placement内部数据的可靠度不高;
(2)Placement内部实现复杂,在每次接收到业务端的查询创建请求和预创建请求时,都需要查询关系型数据库RDBMS,获取资源提供者的资源总量、使用量等数据,来计算出资源剩余量,并进行筛选、判断、记录等操作,其过程繁琐耗时;而且,为了保证Placement内部数据的一致性和数据准确性,这些操作都需要在基于关系型数据库RDBMS的事务中,还要用到各种锁如排它锁、间隙锁等,使得事务中执行了很多结构化查询语句(StructuredQuery Language,SQL),导致响应速度很慢,响应耗时成倍地增加;
(3)在用户剧增、创建操作并发度持续提高的情况下,无法避免的会进行批量操作,而关系型数据库RDBMS可支持的并发度又较差,致使响应严重超时,严重影响了用户的使用体验;也即,在业务快速增长的现状下,库存数据也会增加到一个新的高度,Placement已经不能提供好良好的服务。
为了解决上述问题,本申请提供一种库存处理方法,应用于云计算管理平台OpenStack的库存管理***,通过预先在云计算管理平台OpenStack的库存管理***中部署关系型数据库和Redis数据库,并用关系型数据库存储有所有资源提供者的数据信息,并在Redis数据库中存储资源提供者中每个资源类型的资源剩余量,这样,在响应业务端的资源创建需求时,就是通过关系型数据库和Redis数据库一起完成,可以实现无锁管理,而且基于Redis数据库自身单线程、内存操作的特性,也保证了数据的操作安全性,还提高了库存管理***的响应速度和可支持的并发度。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的一种库存处理方法的流程示意图。本申请提供的库存处理方法应用于云计算管理平台OpenStack中的库存管理***。本申请实施例的执行主体可以为库存管理***,该库存管理***可以集成在电子设备或服务器集群上,本申请不做限制。本申请实施例以执行主体为库存管理***为例进行详细说明。
如图1所示,本实施例提供的库存处理方法,包括:
S101、接收业务端的资源创建需求;其中,资源创建需求中包括资源需求类型和需求量。
示例性地,业务端是指需要创建资源的业务使用端。用户可以从业务端调用云计算管理平台OpenStack的库存管理***的预设接口,例如nova接口,从nova接口处发送资源创建需求。这样,库存管理***就可以从nova接口处接收到业务端的资源创建需求。
其中,资源创建需求中至少包括资源需求类型和需求量。资源需求类型是指消费者所需的资源,例如CPU资源、RAM资源、网络资源等云计算管理平台OpenStack中所有资源提供者能够提供的资源。示例性地,用户要创建一个虚机,虚机作为消费者需要2个CPU资源,则资源创建需求中的资源需求类型即为CPU资源,需求量即为2个。实际应用中,资源需求类型可以为多个,每个资源需求类型都有对应的需求量。
另外,在一些实施例中,若用户还有其他指定需求,比如有明确指定的资源提供者对象或适配型号等,则在资源创建请求中还可以包括资源提供者的标签信息如ID及适配型号等信息,本申请不做限制,可以在本申请实施例的基础上设置或定制一定的筛选规则,以提高方案的可扩展性和实用性,也能更好地适应动态变化的业务场景。
S102、根据资源创建需求、关系型数据库以及Redis数据库,确定目标资源提供者;其中,关系型数据库中存储有云计算管理平台中资源提供者的数据信息,数据信息包括资源类型和每个资源类型对应的资源总量;Redis数据库中存储有资源提供者中每个资源类型对应的资源剩余量;目标资源提供者为资源剩余量大于或等于需求量的资源提供者。
示例性地,常见的关系型数据库RDBMS有MYSQL、Oracle、postgresql等数据库,本申请不做限制。本申请中的关系型数据库RDBMS中预先存储有云计算管理平台OpenStack中资源提供者的资源类型、以及每个资源类型对应的资源总量等数据信息。例如,资源提供者A可以提供CPU资源100个,还可以提供RAM资源1000G等。若资源之间还存在聚合关联关系,则还可以进行关联保存等。而在Redis数据库中预先存储有资源提供者中每个资源类型对应的资源剩余量,例如,资源提供者A的CPU资源被占用后,余下的资源剩余量还有50个,RAM资源的资源剩余量还有100G等。
当库存管理***接收到业务端的资源创建需求之后,根据资源创建需求,依次查询关系型数据库和Redis数据库,就可以筛选出所有资源提供者中,资源剩余量大于或等于资源需求量的目标资源提供者。
其中,本申请对如何根据资源创建需求、关系型数据库以及Redis数据库,确定目标资源提供者,不做限制。一个示例中,根据资源创建需求、关系型数据库以及Redis数据库,确定目标资源提供者,可以包括步骤S1和S2:
S1、根据资源创建需求和关系型数据库,确定待选资源提供者;其中,待选资源提供者为符合资源创建需求的资源提供者。
S2、根据待选资源提供者和Redis数据库,确定目标资源提供者;其中,目标资源提供者为资源剩余量大于或等于需求量的待选资源提供者。
示例性地,由于关系型数据库RDBMS和Redis数据库分别存储有资源提供者不同的数据,因此,库存管理***可以先根据资源创建需求和关系型数据库RDBMS,确定所有资源提供者中,符合资源创建需求的资源提供者,作为待选资源提供者。然后,再根据待选资源提供者和Redis数据库,确定待选资源提供者中,资源剩余量大于或等于需求量的资源提供者,作为目标资源提供者。
也即,根据资源创建需求,在关系型数据库RDBMS中筛选,将所有资源提供者中提供的资源类型与资源需求类型相同、且资源类型对应的资源总量大于或等于需求量的资源提供者,确定为待选资源提供者。然后,再根据待选资源提供者,在Redis数据库中筛选,将待选资源提供者中资源类型对应的资源剩余量大于或等于需求量的待选资源提供者,确定为目标资源提供者。
其中,先根据资源创建需求和关系型数据库RDBMS,确定待选资源提供者,再根据待选资源提供者和Redis数据库,确定目标资源提供者,先缩小了含有对应资源类型的资源提供者的数据范围,再通过Redis数据库分担大部分的主要工作,可以提高确定目标资源的速度,而且在Redis数据库中都是单Key操作,所以耗时非常小,也进一步提高了响应速度。
示例性地,步骤S1、根据资源创建需求和关系型数据库,确定待选资源提供者,可以包括:
S11、查询关系型数据库,筛选关系型数据库中,能够提供资源需求类型的资源提供者。
S12、确定资源总量大于或等于需求量的资源提供者,为待选资源提供者。
示例性地,可以以资源需求类型为查询关键词,在关系型数据库RDBMS中,筛选出所有能够提供资源创建需求中的资源需求类型的资源提供者,然后,再筛选出该资源需求类型所对应资源总量大于或等于需求量的资源提供者,确定为待选资源提供者。若这些待选资源提供者的资源没有被使用,即可以满足创建需求。
其中,由于在关系型数据库RDBMS中只进行查询工作,而这部分查询不用使用事务,因此,也就无需引入各种锁来保证操作的原子性,进而降低了方案的复杂度,也提高了库存管理***的响应速度。
示例性地,步骤S2、根据待选资源提供者和Redis数据库,确定目标资源提供者,可以包括:
S21、查询Redis数据库,筛选Redis数据库中,资源剩余量大于或等于需求量的待选资源提供者,确定为目标资源提供者。
示例性地,可以以待选资源提供者的ID为查询关键词,查询Redis数据库,筛选出待选资源提供者,再通过LUA脚本判断待选资源提供者的资源剩余量是否充足,也即判断待选资源提供者的资源剩余量是否大于或等于需求量,将资源剩余量大于或等于需求量的待选资源提供者,确定为目标资源提供者。
其中,基于Redis数据库的自身单线程和内存操作的特性,保证了服务的高性能和数据的操作安全,也提升了库存管理***的响应速度和可支持的并发度。
S103、向业务端返回目标资源提供者。
示例性地,当确定目标资源提供者后,库存管理***向业务端返回目标资源提供者,以供业务端选择,为业务端提供多种可实现方案。业务端就可以选择其中的任意一个或多个目标资源提供者,都能满足资源创建需求。
此外,库存管理***在执行上述方案的各步骤时,还可以分模块实现,比如库存管理***可以包括库存推荐模块、库存管理模块等,分别用于实现上述各步骤,本申请不做限制。
本申请提供的库存处理方法,应用于云计算管理平台OpenStack的库存管理***,通过接收业务端的资源创建需求;其中,资源创建需求中包括资源需求类型和需求量;并根据资源创建需求、关系型数据库RDBMS以及Redis数据库,确定目标资源提供者;其中,关系型数据库RDBMS中存储有云计算管理平台OpenStack中资源提供者的数据信息,数据信息包括资源类型和每个资源类型对应的资源总量;Redis数据库中存储有资源提供者中每个资源类型对应的资源剩余量;目标资源提供者为资源剩余量大于或等于需求量的资源提供者;再向业务端返回目标资源提供者。
本申请的方案只需要库存管理***支持Reids数据库和关系型数据库RDBMS,就可以通过代码集成,无需引入第三方服务,非常轻量级,用户只需调用库存管理***提供的接口即可使用。方案通过引入了Redis数据库,利用关系型数据库RDBMS以及Redis数据库分别存储不同的数据,通过二者配合的方式可以达到无锁管理;另外,基于Redis数据库自身单线程、内存操作的特性,保证了数据的操作安全性,也提升了库存管理***的响应速度和可支持的并发度。
进一步,在上述实施例的基础上,当库存管理***向业务端返回目标资源提供者之后,还可以响应业务端的资源预创建请求,完成资源预创建。示例性地,图2为本申请实施例提供的一种资源预创建方法的流程示意图。如图2所示,实施例提供的资源预创建方法包括:
S201、接收业务端发送的预创建请求;其中,预创建请求中包括用户所选择的目标资源提供者。
S202、根据预创建请求和Redis数据库,进行资源预占。
示例性地,当库存管理***向业务端返回目标资源提供者之后,用户可以选择其中的任意一个或多个目标资源提供者,向库存管理***发起预创建请求。库存管理***接收到业务端发送的包括用户所选择的目标资源提供者的预创建请求后,就可以根据预创建请求和Redis数据库,进行资源预占。
其中,本申请对如何根据预创建请求和Redis数据库,进行资源预占,不做限制。一个示例中,根据预创建请求和Redis数据库,进行资源预占,可以包括:
S2021、查询Redis数据库,确定用户所选择的目标资源提供者的资源剩余量。
S2022、若用户所选择的目标资源提供者的资源剩余量大于或等于需求量,则扣减Redis数据库中用户所选择的目标资源提供者的资源剩余量,并在关系型数据库中创建并存储使用记录数据。
示例性地,可以以用户所选择的目标资源提供者的ID为查询关键词,查询Redis数据库,确定用户所选择的目标资源提供者的资源剩余量,并通过LUA脚本判断资源剩余量是否充足,若资源剩余量大于或等于需求量,则扣减Redis数据库中用户所选择的目标资源提供者的资源剩余量,返回资源预创建成功的信息,并在关系型数据库RDBMS中创建并存储该使用记录的数据。而若资源剩余量小于需求量,则表明资源不足,返回资源预创建失败的信息。
其中,由于在Redis数据库中存储了资源提供者中每个资源类型对应的资源剩余量,因此,在进行资源预创建时,可以直接在Redis数据库中判断资源库存是否充足,无需再查询关系型数据库RDBMS中的资源总量和资源使用记录数据来计算剩余量,简化了响应过程,降低了实现复杂度,进而也提高了库存管理***的响应速度。
此外,在一些实施例中,为了保证库存管理***所存储的数据与业务端资源使用数据的一致性,本申请的方法还可以包括:定期从业务端获取资源使用数据,根据资源使用数据和使用记录数据,更新Redis数据库。
示例性地,库存管理***中可以设置有定时功能,定期从业务端获取资源使用数据,并比较资源使用数据和关系型数据库RDBMS中存储的使用记录数据是否一致,若二者数据不一致,则以从业务端获取的资源使用数据为准,修改关系型数据库RDBMS所存储的使用记录数据,并更新Redis数据库,以使Redis数据库所存储的资源剩余量更准确。例如,若查询到没有存储在关系型数据库RDBMS中使用记录数据,则在关系型数据库RDBMS中为其创建新的库存占用记录;若查询到存在重复记录,则删除重复记录;若存储的数据记录不一致,则从业务端获取的资源使用数据为准,进行修改。
通过定时对账功能,定期更新Redis数据库和关系型数据库RDBMS,不仅能够保证库存管理***所存储的数据与业务端资源使用数据的一致性,也提高了数据准确性和可靠性。
在一些实施例中,库存管理***还可以接收业务端释放资源的请求,则本申请的方法还可以包括:接收业务端发送的资源释放请求,通过业务资源ID查找库存预占记录,回滚Redis数据库中的库存剩余量,以更新库存管理***的数据。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图3为本申请实施例提供的一种库存处理装置的结构示意图。如图3所示,本实施例的库存处理装置30包括:获取单元301、处理单元302以及发送单元303。
其中,获取单元301,用于接收业务端的资源创建需求;其中,资源创建需求中包括资源需求类型和需求量。
处理单元302,用于根据资源创建需求、关系型数据库以及Redis数据库,确定目标资源提供者;其中,关系型数据库中存储有云计算管理平台中资源提供者的数据信息,数据信息包括资源类型和每个资源类型对应的资源总量;Redis数据库中存储有资源提供者中每个资源类型对应的资源剩余量;目标资源提供者为资源剩余量大于或等于需求量的资源提供者。
发送单元303,用于向业务端返回目标资源提供者。
本实施例提供的装置,可用于执行上述实施例的方法,其实现原理和技术效果类似,此处不再赘述。
图4为本申请实施例提供的又一种库存处理装置的结构示意图。如图4所示,本实施例的库存处理装置40包括:获取单元401、处理单元402以及发送单元403。
其中,获取单元401,用于接收业务端的资源创建需求;其中,资源创建需求中包括资源需求类型和需求量。
处理单元402,用于根据资源创建需求、关系型数据库以及Redis数据库,确定目标资源提供者;其中,关系型数据库中存储有云计算管理平台中资源提供者的数据信息,数据信息包括资源类型和每个资源类型对应的资源总量;Redis数据库中存储有资源提供者中每个资源类型对应的资源剩余量;目标资源提供者为资源剩余量大于或等于需求量的资源提供者。
发送单元403,用于向业务端返回目标资源提供者。
一个示例中,处理单元402包括预处理模块4021和确定模块4022。
预处理模块4021,用于根据资源创建需求和关系型数据库,确定待选资源提供者;其中,待选资源提供者为符合资源创建需求的资源提供者。
确定模块4022,用于根据待选资源提供者和Redis数据库,确定目标资源提供者;其中,目标资源提供者为资源剩余量大于或等于需求量的待选资源提供者。
一个示例中,预处理模块4021包括第一筛选模块40211和第二筛选模块40212。
第一筛选模块40211,用于查询关系型数据库,筛选关系型数据库中,能够提供资源需求类型的资源提供者。
第二筛选模块40212,用于确定资源总量大于或等于需求量的资源提供者,为待选资源提供者。
一个示例中,确定模块4022,具体用于查询Redis数据库,筛选Redis数据库中,资源剩余量大于或等于需求量的待选资源提供者,确定为目标资源提供者。
一个示例中,获取单元401包括接收模块4011,处理单元402包括资源预占模块4023。
接收模块4011,用于接收业务端发送的预创建请求;其中,预创建请求中包括用户所选择的目标资源提供者。
资源预占模块4023,用于根据预创建请求和Redis数据库,进行资源预占。
一个示例中,资源预占模块4023包括查询模块40231和判断模块40232。
查询模块40231,用于查询Redis数据库,确定用户所选择的目标资源提供者的资源剩余量。
判断模块40232,用于若用户所选择的目标资源提供者的资源剩余量大于或等于需求量,则扣减Redis数据库中用户所选择的目标资源提供者的资源剩余量,并在关系型数据库中创建并存储使用记录数据。
一个示例中,装置40还包括对账单元404。
对账模块404,用于定期从业务端获取资源使用数据,根据资源使用数据和使用记录数据,更新Redis数据库。
本实施例提供的装置,可用于执行上述实施例的方法,其实现原理和技术效果类似,此处不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上数据处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
图5为本申请实施例提供的电子设备的结构示意图。如图5所示,该电子设备50,包括:处理器501,以及与处理器501通信连接的存储器502。
其中,存储器502存储计算机执行指令;处理器501执行存储器502存储的计算机执行指令,以实现如前述任一项的方法。
在上述电子设备的具体实现中,应理解,处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,该计算机执行指令被处理器执行时用于实现如前述任一项的方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时用于实现如前述任一项的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (6)
1.一种库存处理方法,其特征在于,所述方法应用于云计算管理平台的库存管理***,所述方法包括:
接收业务端的资源创建需求;其中,所述资源创建需求中包括资源需求类型和需求量;
根据所述资源创建需求和关系型数据库,确定待选资源提供者;其中,所述待选资源提供者为符合所述资源创建需求的资源提供者;
根据所述待选资源提供者和Redis数据库,确定目标资源提供者;其中,所述目标资源提供者为资源剩余量大于或等于所述需求量的待选资源提供者;其中,所述关系型数据库中存储有所述云计算管理平台中资源提供者的数据信息,所述数据信息包括资源类型和每个资源类型对应的资源总量;所述Redis数据库中存储有资源提供者中每个资源类型对应的资源剩余量;
向所述业务端返回所述目标资源提供者;
在所述库存管理***向所述业务端返回所述目标资源提供者之后,所述方法还包括:
接收业务端发送的预创建请求;其中,所述预创建请求中包括用户所选择的目标资源提供者;
查询所述Redis数据库,确定所述用户所选择的目标资源提供者的资源剩余量;
若用户所选择的目标资源提供者的资源剩余量大于或等于所述需求量,则扣减所述Redis数据库中用户所选择的目标资源提供者的资源剩余量,并在所述关系型数据库中创建并存储使用记录数据;
定期从所述业务端获取资源使用数据,根据所述资源使用数据和所述使用记录数据,更新所述Redis数据库。
2.根据权利要求1所述的方法,其特征在于,根据所述资源创建需求和所述关系型数据库,确定待选资源提供者,包括:
查询所述关系型数据库,筛选所述关系型数据库中,能够提供所述资源需求类型的资源提供者;
确定所述资源总量大于或等于所述需求量的资源提供者,为所述待选资源提供者。
3.根据权利要求1所述的方法,其特征在于,根据所述待选资源提供者和所述Redis数据库,确定目标资源提供者,包括:
查询所述Redis数据库,筛选所述Redis数据库中,所述资源剩余量大于或等于所述需求量的待选资源提供者,确定为所述目标资源提供者。
4.一种库存处理装置,其特征在于,所述装置应用于云计算管理平台的库存管理***,所述装置包括:
获取单元,用于接收业务端的资源创建需求;其中,所述资源创建需求中包括资源需求类型和需求量;
处理单元,用于根据所述资源创建需求、关系型数据库以及Redis数据库,确定目标资源提供者;其中,所述关系型数据库中存储有所述云计算管理平台中资源提供者的数据信息,所述数据信息包括资源类型和每个资源类型对应的资源总量;所述Redis数据库中存储有资源提供者中每个资源类型对应的资源剩余量;所述目标资源提供者为所述资源剩余量大于或等于所述需求量的资源提供者;
发送单元,用于向所述业务端返回所述目标资源提供者;
所述处理单元包括预处理模块和确定模块;
所述预处理模块,用于根据所述资源创建需求和所述关系型数据库,确定待选资源提供者;其中,所述待选资源提供者为符合所述资源创建需求的资源提供者;
所述确定模块,用于根据所述待选资源提供者和所述Redis数据库,确定目标资源提供者;其中,所述目标资源提供者为所述资源剩余量大于或等于所述需求量的待选资源提供者;
所述获取单元包括接收模块,所述处理单元包括资源预占模块;
所述接收模块,用于接收业务端发送的预创建请求;其中,所述预创建请求中包括用户所选择的目标资源提供者;
所述资源预占模块包括查询模块和判断模块;
所述查询模块,用于查询所述Redis数据库,确定所述用户所选择的目标资源提供者的资源剩余量;
所述判断模块,用于若用户所选择的目标资源提供者的资源剩余量大于或等于所述需求量,则扣减所述Redis数据库中用户所选择的目标资源提供者的资源剩余量,并在所述关系型数据库中创建并存储使用记录数据;
所述装置还包括对账单元;
所述对账单元,用于定期从所述业务端获取资源使用数据,根据所述资源使用数据和所述使用记录数据,更新所述Redis数据库。
5.一种电子设备,其特征在于,所述电子设备包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-3中任一项所述的方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310204465.8A CN116051003B (zh) | 2023-03-03 | 2023-03-03 | 库存处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310204465.8A CN116051003B (zh) | 2023-03-03 | 2023-03-03 | 库存处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116051003A CN116051003A (zh) | 2023-05-02 |
CN116051003B true CN116051003B (zh) | 2023-06-20 |
Family
ID=86129732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310204465.8A Active CN116051003B (zh) | 2023-03-03 | 2023-03-03 | 库存处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116051003B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107493310B (zh) * | 2016-06-13 | 2020-08-21 | 腾讯科技(深圳)有限公司 | 一种云资源处理方法及云管理平台 |
CN107943423A (zh) * | 2017-12-07 | 2018-04-20 | 郑州云海信息技术有限公司 | 云***中存储资源的管理方法和计算机可读存储介质 |
CN109815259B (zh) * | 2018-11-08 | 2023-06-06 | 平安科技(深圳)有限公司 | 网关内服务领域的配置方法、装置、设备及存储介质 |
CN113537852A (zh) * | 2020-04-14 | 2021-10-22 | 成都鼎桥通信技术有限公司 | 秒杀处理方法及*** |
CN113742355A (zh) * | 2020-06-29 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 更新库存的方法、装置、设备和计算机可读介质 |
CN111831450B (zh) * | 2020-07-20 | 2023-07-28 | 北京百度网讯科技有限公司 | 用于分配服务器资源的方法、装置、电子设备及存储介质 |
CN112667600A (zh) * | 2020-12-28 | 2021-04-16 | 紫光云技术有限公司 | 一种redis与MySQL结合的库存解决方法 |
CN115118612B (zh) * | 2022-05-12 | 2024-06-04 | 曙光信息产业股份有限公司 | 资源配额管理方法、装置、计算机设备和存储介质 |
-
2023
- 2023-03-03 CN CN202310204465.8A patent/CN116051003B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN116051003A (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783237B (zh) | 一种资源配置方法及装置 | |
CN108446975B (zh) | 一种额度管理方法及装置 | |
US20090300017A1 (en) | Transaction Parallel Control Method, and Database Managemet System | |
CN109597853B (zh) | 业务场景元素序列号生成方法、装置、介质和计算机设备 | |
US8499298B2 (en) | Multiprocessing transaction recovery manager | |
US20130262461A1 (en) | Method and System for Centralized Issue Tracking | |
CN111784318B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
WO2007141068A1 (en) | A method for providing access to data stored in a database to an application | |
CN103544153A (zh) | 一种基于数据库的数据更新方法和*** | |
CN111125106B (zh) | 一种跑批任务执行方法、装置、服务器和存储介质 | |
CN114691658A (zh) | 一种数据回溯方法、装置、电子设备及存储介质 | |
CN112905339A (zh) | 任务调度执行方法、装置及*** | |
CN111966692A (zh) | 针对数据仓库的数据处理方法、介质、装置和计算设备 | |
CN102511041B (zh) | 计算机实现方法和计算*** | |
JP5997269B2 (ja) | データベースを修正するためにデータを処理するための方法およびシステム | |
CN116051003B (zh) | 库存处理方法、装置、电子设备及存储介质 | |
EP2662783A1 (en) | Data archiving approach leveraging database layer functionality | |
CN115002187B (zh) | 绑定关系处理方法及相关设备 | |
CN114880386B (zh) | 一种任务调度平台及任务调度方法 | |
US9652766B1 (en) | Managing data stored in memory locations having size limitations | |
CN114896073A (zh) | 一种数据分摊处理方法、装置及*** | |
CN111429125B (zh) | 账户管理方法、装置、存储介质及电子设备 | |
CN110851533A (zh) | 跨异构数据库的数据同步方法、装置、介质及电子设备 | |
CN116957808B (zh) | 股票筛选方法、***、设备和介质 | |
US20230068901A1 (en) | Advanced available-to-promise supply creation-based confirmation |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |