CN116308790A - 交易请求的资源调用方法、系统、装置及电子设备 - Google Patents
交易请求的资源调用方法、系统、装置及电子设备 Download PDFInfo
- Publication number
- CN116308790A CN116308790A CN202310263713.6A CN202310263713A CN116308790A CN 116308790 A CN116308790 A CN 116308790A CN 202310263713 A CN202310263713 A CN 202310263713A CN 116308790 A CN116308790 A CN 116308790A
- Authority
- CN
- China
- Prior art keywords
- current
- target
- concurrency
- value
- resource
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012545 processing Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 10
- 238000012937 correction Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 88
- 238000010586 diagram Methods 0.000 description 14
- 238000003860 storage Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 4
- 208000016253 exhaustion Diseases 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种交易请求的资源调用方法、系统、装置及电子设备。涉及云计算领域,该方法包括:接收目标数量的当前交易请求,确定当前交易请求需要调用的目标资源,获取目标资源的最大并发值和当前并发值;确定当前执行的历史交易请求的数量,得到当前执行数量,并依据当前执行数量更新当前并发值,得到目标并发值,其中,历史交易请求为调用目标资源的交易请求;计算最大并发值与目标并发值的差值,得到当前并发阈值;判断目标数量是否小于等于当前并发阈值;在目标数量小于等于当前并发阈值的情况下,调用目标资源执行目标数量的当前交易请求。通过本申请,解决了相关技术中由于资源调用的并发数量不准确,导致资源调用存在风险的问题。
Description
技术领域
本申请涉及云计算领域,具体而言,涉及一种交易请求的资源调用方法、系统、装置及电子设备。
背景技术
在云计算领域,由于物理主机托管的基础设施变革风潮,云计算实现了计算资源与物理硬件的解耦。虚拟化技术的发展运用,使得云主机替代了物理主机,IaaS(Infrastructure as a Service,基础设施即服务)开始广泛使用。随着容器技术普及,PaaS(Platform as a Service,平台即服务)逐渐兴起,IaaS的运维工作持续下沉,PaaS平台将开发人员与运维人员进一步的分离,开发人员能够更加专注于计算与存储资源的分配与使用。尽管PaaS平台已经广泛应用,但仍有优化空间,为了将业务与基础设施完全剥离。Serverless(无服务器架构)应运而生,函数计算作为实现Severless架构的主要形式,将应用与基础设施彻底分离,开发人员无需关心基础设施的运维工作,只需专注于应用逻辑的开发,仅在事件触发时才调用计算资源,真正做到了弹性伸缩与按需付费。
然而,由于调用计算资源通过异步请求执行后会立刻释放计算资源的并发,函数网关看起来处于并发空闲状态,但实际运行资源仍处于占用状态,因而相关技术中的Severless无法有效控制异步任务带来的资源控制不准确的问题,当资源使用方发起大量异步资源调用任务时,会直接导致函数资源池被耗尽,从而产生风险。
针对相关技术中由于资源调用的并发数量不准确,导致资源调用存在风险的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种交易请求的资源调用方法、系统、装置及电子设备,以解决相关技术中由于资源调用的并发数量不准确,导致资源调用存在风险的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种交易请求的资源调用方法。该方法包括:接收目标数量的当前交易请求,确定当前交易请求需要调用的目标资源,获取目标资源的最大并发值和当前并发值,其中,最大并发值是调用目标资源的最大交易请求数量,当前并发值是已调用目标资源的交易请求数量;确定当前执行的历史交易请求的数量,得到当前执行数量,并依据当前执行数量更新当前并发值,得到目标并发值,其中,历史交易请求为调用目标资源的交易请求;计算最大并发值与目标并发值的差值,得到当前并发阈值;判断目标数量是否小于等于当前并发阈值;在目标数量小于等于当前并发阈值的情况下,调用目标资源执行目标数量的当前交易请求。
可选地,获取目标资源的最大并发值和当前并发值包括:确定目标数据库中的多种资源,并将每种资源的当前并发值设置为初始值;在接收到交易请求的情况下,确定交易请求调用的资源的资源名称;依据资源名称从多种资源中确定目标资源,并获取目标资源的最大并发值;计算初始值与历史交易请求的数量的和,得到当前并发值。
可选地,在计算初始值与历史交易请求的数量的和,得到当前并发值之后,该方法还包括:在接收到交易请求执行完成的响应的情况下,计算当前并发值与已执行完成的交易请求的数量的差值;将目标资源的当前并发值更新为差值。
可选地,确定当前执行的历史交易请求的数量,得到当前执行数量包括:确定目标资源的多个运行实例,并确定每个运行实例当前执行的交易请求的执行数量;计算所有运行实例当前执行的交易请求的执行数量的和,得到当前执行数量。
可选地,在判断目标数量是否小于等于当前并发阈值之后,该方法还包括:在目标数量大于当前并发阈值的情况下,每隔预设时间周期更新当前并发阈值;在目标数量小于等于更新后的当前并发阈值的情况下,执行调用目标资源执行目标数量的当前交易请求的步骤。
可选地,每隔预设时间周期更新当前并发阈值包括:每隔预设时间周期重新确定目标并发值,得到更新后的目标并发值;计算最大并发值与更新后的目标并发值的差值,得到更新后的当前并发阈值。
可选地,调用目标资源执行目标数量的当前交易请求包括:确定目标资源的多个空闲运行实例,并确定目标资源的运行实例的交易请求执行数量阈值;将目标数量的当前交易请求拆分为多组当前交易请求,其中,每组交易请求包含与执行数量阈值相同数量的当前交易请求;控制每个空闲运行实例执行一组当前交易请求。
为了实现上述目的,根据本申请的另一方面,提供了一种交易请求的资源调用系统。该系统包括:数据库,用于存储多种资源,调用目标资源执行从请求处理模块发送的交易请求;协调服务集群,与数据库通信连接,用于获取数据库上报的目标资源的当前执行数量;数据修正服务集群,与协调服务集群通信连接,用于获取协调服务集群推送的当前执行数量;缓存服务集群,与数据修正服务集群通信连接,用于获取当前执行数量,并依据当前执行数量更新当前并发值,得到目标并发值;处理器,与缓存服务集群和数据库通信连接,用于接收交易请求,从缓存服务集群获取目标资源的最大并发值和当前并发值,基于最大并发值和当前并发值判断是否处理交易请求,在处理交易请求的情况下,向数据库转发交易请求。
为了实现上述目的,根据本申请的另一方面,提供了一种交易请求的资源调用装置。该装置包括:接收单元,用于接收目标数量的当前交易请求,确定当前交易请求需要调用的目标资源,获取目标资源的最大并发值和当前并发值,其中,最大并发值是调用目标资源的最大交易请求数量,当前并发值是已调用目标资源的交易请求数量;确定单元,用于确定当前执行的历史交易请求的数量,得到当前执行数量,并依据当前执行数量更新当前并发值,得到目标并发值,其中,历史交易请求为调用目标资源的交易请求;计算单元,用于计算最大并发值与目标并发值的差值,得到当前并发阈值;判断单元,用于判断目标数量是否小于等于当前并发阈值;调用单元,用于在目标数量小于等于当前并发阈值的情况下,调用目标资源执行目标数量的当前交易请求。
通过本申请,采用以下步骤:接收目标数量的当前交易请求,确定当前交易请求需要调用的目标资源,获取目标资源的最大并发值和当前并发值,其中,最大并发值是调用目标资源的最大交易请求数量,当前并发值是已调用目标资源的交易请求数量;确定当前执行的历史交易请求的数量,得到当前执行数量,并依据当前执行数量更新当前并发值,得到目标并发值,其中,历史交易请求为调用目标资源的交易请求;计算最大并发值与目标并发值的差值,得到当前并发阈值;判断目标数量是否小于等于当前并发阈值;在目标数量小于等于当前并发阈值的情况下,调用目标资源执行目标数量的当前交易请求,解决了相关技术中由于资源调用的并发数量不准确,导致资源调用存在风险的问题。通过获取当前执行的历史交易请求的当前执行数量,并依据当前执行数量计算当前并发阈值,从而准确的获取目标资源当前能够执行的交易请求的数量,进而达到了精准调用资源,避免资源调用时由于可调用资源数量不准确产生的资源池耗尽风险的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的交易请求的资源调用方法的流程图;
图2是根据本申请实施例提供的函数运行实例执行交易请求的示意图;
图3是根据本申请实施例提供的交易请求的资源调用系统的示意图;
图4是根据本申请实施例提供的交易请求的资源调用装置的示意图;
图5是根据本申请实施例提供的电子设备的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
下面结合优选的实施步骤对本发明进行说明,图1是根据本申请实施例提供的交易请求的资源调用方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,接收目标数量的当前交易请求,确定当前交易请求需要调用的目标资源,获取目标资源的最大并发值和当前并发值,其中,最大并发值是调用目标资源的最大交易请求数量,当前并发值是已调用目标资源的交易请求数量。
具体地,交易请求可以为调用计算资源的请求,目标资源可以为函数计算资源,如目标函数,目标数量可以为当前收到的交易请求的数量,通过Serverless(无服务器架构)中的函数网关接收当前交易请求,并确定当前交易请求需要调用的目标函数,获取目标函数的最大并发值,也即目标函数同时能够被交易请求调用的最大数量,并获取目标函数的当前并发值,也即当前调用目标函数的交易请求的数量。
需要说明的是,函数计算资源是一种以单个功能为维度的云计算服务,这种云计算服务开发较为简单,通过一个简单的带输入输出的代码片段,就可以直接部署到函数计算平台上,对外提供计算服务。函数网关(Event Queue)承担了外部所有的交易请求。每个函数在系统内运行的时候,考虑到总体资源的性能容量和函数调用第三方服务的并发瓶颈,都会为每个函数设置一个并发数的上限。也即最大并发值,该并发数限制通过分布式缓存服务集群(Redis)实现。
步骤S102,确定当前执行的历史交易请求的数量,得到当前执行数量,并依据当前执行数量更新当前并发值,得到目标并发值,其中,历史交易请求为调用目标资源的交易请求。
具体地,由于当前并发值是记录的是开始执行交易请求的数量,交易请求的执行过程需要一段时间,Serverless中异步处理交易请求的方式在接收到交易请求后即将当前并发值进行更新,然而此时该交易请求可能还未处理完成,因此通过额外的协调服务集群确定系统中当前仍处于执行状态的历史交易请求的数量,也即当前执行数量,将目标资源的当前并发值更新为当前执行数量。
步骤S103,计算最大并发值与目标并发值的差值,得到当前并发阈值。
具体地,通过计算最大并发值与当前执行数量的差值,即可得到目标函数当前实际可执行的交易请求的数量,也即当前并发阈值。
步骤S104,判断目标数量是否小于等于当前并发阈值。
具体地,通过判断当前接收到的交易请求的目标数量是否小于等于目标函数当前实际可执行的交易请求的数量,从而确定是否执行当期接收到的交易请求。
步骤S105,在目标数量小于等于当前并发阈值的情况下,调用目标资源执行目标数量的当前交易请求。
具体地,在目标数量小于等于当前并发阈值时,说明目标函数还可以被目标数量的交易请求进行调用,此时调用目标函数执行目标数量的当前交易请求。
本申请实施例提供的交易请求的资源调用方法,通过接收目标数量的当前交易请求,确定当前交易请求需要调用的目标资源,获取目标资源的最大并发值和当前并发值,其中,最大并发值是调用目标资源的最大交易请求数量,当前并发值是已调用目标资源的交易请求数量;确定当前执行的历史交易请求的数量,得到当前执行数量,并依据当前执行数量更新当前并发值,得到目标并发值,其中,历史交易请求为调用目标资源的交易请求;计算最大并发值与目标并发值的差值,得到当前并发阈值;判断目标数量是否小于等于当前并发阈值;在目标数量小于等于当前并发阈值的情况下,调用目标资源执行目标数量的当前交易请求,解决了相关技术中由于资源调用的并发数量不准确,导致资源调用存在风险的问题。通过获取当前执行的历史交易请求的当前执行数量,并依据当前执行数量计算当前并发阈值,从而准确的获取目标资源当前能够执行的交易请求的数量,进而达到了精准调用资源,避免资源调用时由于可调用资源数量不准确产生的资源池耗尽风险的效果。
目标资源的最大并发值和当前并发值可以通过数据库获取,可选地,在本申请实施例提供的交易请求的资源调用方法中,获取目标资源的最大并发值和当前并发值包括:确定目标数据库中的多种资源,并将每种资源的当前并发值设置为初始值;在接收到交易请求的情况下,确定交易请求调用的资源的资源名称;依据资源名称从多种资源中确定目标资源,并获取目标资源的最大并发值;计算初始值与历史交易请求的数量的和,得到当前并发值。
具体地,目标数据库可以为MySQL(关系型数据库管理系统)数据库。在目标数据库中提前录入各个函数的最大并发值。将目标数据库中的各个函数的最大并发值同步至缓存服务集群(Redis),按照key为max_fn_concurrent_函数名,value为最大并发值的形式记录至Redis,在Redis中同时新建一个当前并发记录,key为current_fn_concurrent_函数名,value为0。也即记录每个函数的当前并发值,初始值设置为0。当外部交易请求(例如超文本传输协议请求)进入函数网关时,通过解析外部交易请求中的需要调用的函数的函数名称,在Redis中的current_fn_concurrent_中确定该函数名称对应的目标函数。并获取该目标函数的最大并发值。在Redis中的当前并发记录中获取目标函数的当前并发值。通过获取目标函数的最大并发值和当前并发值从而来判断目标数量的当前交易请求能否被执行。
需要说明的是,目标函数的当前并发值随着交易请求的发起数量实时更新,目标函数的当前并发值的初始值为0,函数网关每接收到一个调用目标函数的交易请求,并且确定其可以执行时立即在目标函数的当前并发值上加1。
每执行完一个交易请求也需要对当前并发值进行更新,可选地,在本申请实施例提供的交易请求的资源调用方法中,在计算初始值与历史交易请求的数量的和,得到当前并发值之后,该方法还包括:在接收到交易请求执行完成的响应的情况下,计算当前并发值与已执行完成的交易请求的数量的差值;将目标资源的当前并发值更新为差值。
具体地,函数网管确定处理交易请求后,交易请求开始调用目标函数进行执行,当前调用目标函数的交易请求部分处于正在执行的状态,部分处于已执行完的状态。每当存在一个已执行完的交易请求,在Redis的当前并发记录中将目标函数的当前并发值减1。通过及时根据已执行完成的交易请求的数量实时更新目标函数的当前并发值,从而高效的释放被调用的函数资源,提高资源调用的处理效率。
通过获取每个函数下的各个运行实例的交易请求执行数量来确定当前执行数量,可选地,在本申请实施例提供的交易请求的资源调用方法中,确定当前执行的历史交易请求的数量,得到当前执行数量包括:确定目标资源的多个运行实例,并确定每个运行实例当前执行的交易请求的执行数量;计算所有运行实例当前执行的交易请求的执行数量的和,得到当前执行数量。
具体地,每个函数包括多个运行节点(运行实例),每个运行实例可以处理数量阈值个交易请求。因此目标函数的当前执行数量需要通过Zookeeper(协调服务集群)来获取目标函数下的每个运行实例当前执行的交易请求的执行数量,并计算所有运行实例的执行数量的和,得到目标函数的当前执行数量。通过确定当前执行数量来修正目标函数的当前并发值,从而保障当前能够执行的交易请求的数量是准确的,避免函数资源未被释放的情况下被确认为空闲状态。
例如,图2是根据本申请实施例提供的函数运行实例执行交易请求的示意图,如图2所示,函数1存在3个运行节点,也即三个运行实例,函数1的当前执行数量也即10+15+8=33,函数2存在3个运行节点,也即三个运行实例,函数2的当前执行数量也即3+0+0=3,函数3存在3个运行节点,也即三个运行实例,函数3的当前执行数量也即50+40+40=130。
可选地,在本申请实施例提供的交易请求的资源调用方法中,在判断目标数量是否小于等于当前并发阈值之后,该方法还包括:在目标数量大于当前并发阈值的情况下,每隔预设时间周期更新当前并发阈值;在目标数量小于等于更新后的当前并发阈值的情况下,执行调用目标资源执行目标数量的当前交易请求的步骤。
具体地,当current_fn_concurrent_函数名的value>=max_fn_concurrent_函数名的value,也即目标数量大于当前并发阈值时,函数网关阻塞交易请求的执行,预设时间周期可以为60秒,每隔60秒更新当前并发阈值,并循环检查目标数量是否小于等于更新后的当前并发阈值,当目标数量小于等于更新后的当前并发阈值时,调用目标资源继续执行被阻塞的交易请求。通过更新当前并发阈值保障交易请求的执行效率。
可选地,在本申请实施例提供的交易请求的资源调用方法中,每隔预设时间周期更新当前并发阈值包括:每隔预设时间周期重新确定目标并发值,得到更新后的目标并发值;计算最大并发值与更新后的目标并发值的差值,得到更新后的当前并发阈值。
具体地,随着执行进度的完成,交易请求的当前执行数量随之变化,因此每隔预设时间周期对目标并发值进行更新,从而基于更新后的目标并发值计算更新后的当前并发阈值。
执行目标数量的当前交易请求需要将当前交易请求逐一分配至空闲的运行实例,可选地,在本申请实施例提供的交易请求的资源调用方法中,调用目标资源执行目标数量的当前交易请求包括:确定目标资源的多个空闲运行实例,并确定目标资源的运行实例的交易请求执行数量阈值;将目标数量的当前交易请求拆分为多组当前交易请求,其中,每组交易请求包含与执行数量阈值相同数量的当前交易请求;控制每个空闲运行实例执行一组当前交易请求。
例如,如图2所示,目标函数为函数1,函数1的每个运行节点能够执行的交易请求的执行数量阈值为20,目标数量为20,则可以向运行节点3分配12个当前交易请求,向运行节点1分配8个交易请求。通过控制不同的空闲运行实例执行当前交易请求,避免待执行的交易请求堆积影响交易请求执行效率。
根据本申请的另一实施例,提供了一种交易请求的资源调用系统。图3是根据本申请实施例提供的交易请求的资源调用系统的示意图。如图3所示,该系统包括:
数据库301,用于存储多种资源,调用目标资源执行从请求处理模块发送的交易请求;
具体地,资源可以为函数资源,数据库301可以为MySQL数据库。数据库301中存储有每种函数的最大并发值,将各个函数的最大并发值同步至缓存服务集群304和数据修正服务集群303,以判断是否调用目标资源执行从请求处理模块发送的交易请求。
协调服务集群302,与数据库301通信连接,用于获取数据库301上报的目标资源的当前执行数量;
具体地,协调服务集群302也即Zookeeper,实时获取数据库301中各个函数的当前执行数量。并负责将各个函数的当前执行数量推送至数据修正服务集群303以修正当前并发值。
数据修正服务集群303,与协调服务集群302通信连接,用于获取协调服务集群302推送的当前执行数量;
具体地,获取各个函数的当前执行数量,并将缓存服务集群304中记录的各个函数的当前并发值更新为当前执行数量。
例如,数据修正服务集群303订阅Zookeeper里面每个函数的占用资源数,也即当前执行数量,从缓存服务集群304获取并修正目标函数的当前并发值。具体修正逻辑:从数据库301获取每个函数的最大并发数V1,当前每个函数在所有运行节点内的实例数量V2,目标函数的当期并发阈值=V1-V2。
缓存服务集群304,与数据修正服务集群通信连接,用于获取当前执行数量,并依据当前执行数量更新当前并发值,得到目标并发值;
具体地,存储各个函数的最大并发值和当前并发值。
处理器305,与缓存服务集群304和数据库301通信连接,用于接收交易请求,从缓存服务集群304获取目标资源的最大并发值和当前并发值,基于最大并发值和当前并发值判断是否处理交易请求,在处理交易请求的情况下,向数据库301转发交易请求。
具体地,获取目标数量的交易请求,并获取目标函数的最大并发值和当前并发值,计算当期并发阈值,在目标数量小于等于当前并发阈值时,将交易请求转发至数据库301调用目标函数执行交易请求,在转发交易请求的同时将缓存服务集群304中目标函数的当前并发值进行更新,在历史并发值的基础上累加转发的交易请求的数量。
通过本申请实施例提供的交易请求的资源调用系统,通过各函数运行节主动向Zookeeper推送各自运行节点中每个函数的资源占用量,再通过Zookeeper向各网关推送每个函数的资源使用数据,结合Redis的剩余并发数据修正后,来检查并决定是否放行应用请求,从而达到精确控制应用资源使用量的目的。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种交易请求的资源调用装置,需要说明的是,本申请实施例的交易请求的资源调用装置可以用于执行本申请实施例所提供的用于交易请求的资源调用方法。以下对本申请实施例提供的交易请求的资源调用装置进行介绍。
图4是根据本申请实施例提供的交易请求的资源调用装置的示意图。如图4所示,该装置包括:
接收单元10,用于接收目标数量的当前交易请求,确定当前交易请求需要调用的目标资源,获取目标资源的最大并发值和当前并发值,其中,最大并发值是调用目标资源的最大交易请求数量,当前并发值是已调用目标资源的交易请求数量;
确定单元20,用于确定当前执行的历史交易请求的数量,得到当前执行数量,并依据当前执行数量更新当前并发值,得到目标并发值,其中,历史交易请求为调用目标资源的交易请求;
第一计算单元30,用于计算最大并发值与目标并发值的差值,得到当前并发阈值;
判断单元40,用于判断目标数量是否小于等于当前并发阈值;
调用单元50,用于在目标数量小于等于当前并发阈值的情况下,调用目标资源执行目标数量的当前交易请求。
本申请实施例提供的交易请求的资源调用装置,通过接收单元10,接收目标数量的当前交易请求,确定当前交易请求需要调用的目标资源,获取目标资源的最大并发值和当前并发值,其中,最大并发值是调用目标资源的最大交易请求数量,当前并发值是已调用目标资源的交易请求数量;确定单元20,确定当前执行的历史交易请求的数量,得到当前执行数量,并依据当前执行数量更新当前并发值,得到目标并发值,其中,历史交易请求为调用目标资源的交易请求;第一计算单元30,计算最大并发值与目标并发值的差值,得到当前并发阈值;判断单元40,判断目标数量是否小于等于当前并发阈值;调用单元50,在目标数量小于等于当前并发阈值的情况下,调用目标资源执行目标数量的当前交易请求,解决了相关技术中由于资源调用的并发数量不准确,导致资源调用存在风险的问题,通过获取当前执行的历史交易请求的当前执行数量,并依据当前执行数量计算当前并发阈值,从而准确的获取目标资源当前能够执行的交易请求的数量,进而达到了精准调用资源,避免资源调用时由于可调用资源数量不准确产生的资源池耗尽风险的效果。
可选地,在本申请实施例提供的交易请求的资源调用装置中,接收单元10包括:第一确定模块,用于确定目标数据库中的多种资源,并将每种资源的当前并发值设置为初始值;第二确定模块,用于在接收到交易请求的情况下,确定交易请求调用的资源的资源名称;第三确定模块,用于依据资源名称从多种资源中确定目标资源,并获取目标资源的最大并发值;第一计算模块,用于计算初始值与历史交易请求的数量的和,得到当前并发值。
可选地,在本申请实施例提供的交易请求的资源调用装置中,该装置还包括:第二计算单元,用于在接收到交易请求执行完成的响应的情况下,计算当前并发值与已执行完成的交易请求的数量的差值;第一更新单元,用于将目标资源的当前并发值更新为差值。
可选地,在本申请实施例提供的交易请求的资源调用装置中,确定单元20包括:第四确定模块,用于确定目标资源的多个运行实例,并确定每个运行实例当前执行的交易请求的执行数量;第二计算模块,用于计算所有运行实例当前执行的交易请求的执行数量的和,得到当前执行数量。
可选地,在本申请实施例提供的交易请求的资源调用装置中,该装置还包括:第二更新单元,用于在目标数量大于当前并发阈值的情况下,每隔预设时间周期更新当前并发阈值;执行单元,用于在目标数量小于等于更新后的当前并发阈值的情况下,执行调用目标资源执行目标数量的当前交易请求的步骤。
可选地,在本申请实施例提供的交易请求的资源调用装置中,第二更新单元包括:第五确定模块,用于每隔预设时间周期重新确定目标并发值,得到更新后的目标并发值;第三计算模块,用于计算最大并发值与更新后的目标并发值的差值,得到更新后的当前并发阈值。
可选地,在本申请实施例提供的交易请求的资源调用装置中,调用单元50包括:第六确定模块,用于确定目标资源的多个空闲运行实例,并确定目标资源的运行实例的交易请求执行数量阈值;拆分模块,用于将目标数量的当前交易请求拆分为多组当前交易请求,其中,每组交易请求包含与执行数量阈值相同数量的当前交易请求;控制模块,用于控制每个空闲运行实例执行一组当前交易请求。
交易请求的资源调用装置包括处理器和存储器,上述接收单元10、确定单元20、第一计算单元30、判断单元40和调用单元50单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来精准调用资源,避免资源调用时由于可调用资源数量不准确产生的资源池耗尽风险。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现交易请求的资源调用方法。
本发明实施例提供了一种处理器,处理器用于运行程序,其中,程序运行时执行交易请求的资源调用方法。
图5是根据本申请实施例提供的电子设备的示意图。如图5所示,设备501包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:交易请求的资源调用方法。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:交易请求的资源调用方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种交易请求的资源调用方法,其特征在于,包括:
接收目标数量的当前交易请求,确定所述当前交易请求需要调用的目标资源,获取所述目标资源的最大并发值和当前并发值,其中,所述最大并发值是调用所述目标资源的最大交易请求数量,所述当前并发值是已调用所述目标资源的交易请求数量;
确定当前执行的历史交易请求的数量,得到当前执行数量,并依据所述当前执行数量更新所述当前并发值,得到目标并发值,其中,所述历史交易请求为调用所述目标资源的交易请求;
计算所述最大并发值与所述目标并发值的差值,得到当前并发阈值;
判断所述目标数量是否小于等于所述当前并发阈值;
在所述目标数量小于等于所述当前并发阈值的情况下,调用所述目标资源执行所述目标数量的当前交易请求。
2.根据权利要求1所述的方法,其特征在于,获取所述目标资源的最大并发值和当前并发值包括:
确定目标数据库中的多种资源,并将每种资源的当前并发值设置为初始值;
在接收到交易请求的情况下,确定所述交易请求调用的资源的资源名称;
依据所述资源名称从所述多种资源中确定目标资源,并获取所述目标资源的最大并发值;
计算所述初始值与所述历史交易请求的数量的和,得到所述当前并发值。
3.根据权利要求2所述的方法,其特征在于,在计算所述初始值与所述历史交易请求的数量的和,得到所述当前并发值之后,所述方法还包括:
在接收到交易请求执行完成的响应的情况下,计算所述当前并发值与已执行完成的交易请求的数量的差值;
将所述目标资源的当前并发值更新为所述差值。
4.根据权利要求1所述的方法,其特征在于,确定当前执行的历史交易请求的数量,得到当前执行数量包括:
确定所述目标资源的多个运行实例,并确定每个运行实例当前执行的交易请求的执行数量;
计算所有运行实例当前执行的交易请求的执行数量的和,得到所述当前执行数量。
5.根据权利要求1所述的方法,其特征在于,在判断所述目标数量是否小于等于所述当前并发阈值之后,所述方法还包括:
在所述目标数量大于所述当前并发阈值的情况下,每隔预设时间周期更新所述当前并发阈值;
在所述目标数量小于等于更新后的当前并发阈值的情况下,执行调用所述目标资源执行所述目标数量的当前交易请求的步骤。
6.根据权利要求5所述的方法,其特征在于,每隔预设时间周期更新所述当前并发阈值包括:
每隔所述预设时间周期重新确定所述目标并发值,得到更新后的目标并发值;
计算所述最大并发值与所述更新后的目标并发值的差值,得到所述更新后的当前并发阈值。
7.根据权利要求1所述的方法,其特征在于,调用所述目标资源执行所述目标数量的当前交易请求包括:
确定所述目标资源的多个空闲运行实例,并确定所述目标资源的运行实例的交易请求执行数量阈值;
将所述目标数量的当前交易请求拆分为多组当前交易请求,其中,每组交易请求包含与所述执行数量阈值相同数量的当前交易请求;
控制每个空闲运行实例执行一组当前交易请求。
8.一种交易请求的资源调用系统,其特征在于,包括:
数据库,用于存储多种资源,调用目标资源执行从请求处理模块发送的交易请求;
协调服务集群,与所述数据库通信连接,用于获取所述数据库上报的目标资源的当前执行数量;
数据修正服务集群,与所述协调服务集群通信连接,用于获取所述协调服务集群推送的所述当前执行数量;
缓存服务集群,与所述数据修正服务集群通信连接,用于获取所述当前执行数量,并依据所述当前执行数量更新当前并发值,得到目标并发值;
处理器,与所述缓存服务集群和所述数据库通信连接,用于接收交易请求,从所述缓存服务集群获取所述目标资源的最大并发值和当前并发值,基于所述最大并发值和所述当前并发值判断是否处理所述交易请求,在处理所述交易请求的情况下,向所述数据库转发所述交易请求。
9.一种交易请求的资源调用装置,其特征在于,包括:
接收单元,用于接收目标数量的当前交易请求,确定所述当前交易请求需要调用的目标资源,获取所述目标资源的最大并发值和当前并发值,其中,所述最大并发值是调用所述目标资源的最大交易请求数量,所述当前并发值是已调用所述目标资源的交易请求数量;
确定单元,用于确定当前执行的历史交易请求的数量,得到当前执行数量,并依据所述当前执行数量更新所述当前并发值,得到目标并发值,其中,所述历史交易请求为调用所述目标资源的交易请求;
计算单元,用于计算所述最大并发值与所述目标并发值的差值,得到当前并发阈值;
判断单元,用于判断所述目标数量是否小于等于所述当前并发阈值;
调用单元,用于在所述目标数量小于等于所述当前并发阈值的情况下,调用所述目标资源执行所述目标数量的当前交易请求。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的交易请求的资源调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310263713.6A CN116308790A (zh) | 2023-03-10 | 2023-03-10 | 交易请求的资源调用方法、系统、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310263713.6A CN116308790A (zh) | 2023-03-10 | 2023-03-10 | 交易请求的资源调用方法、系统、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116308790A true CN116308790A (zh) | 2023-06-23 |
Family
ID=86786627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310263713.6A Pending CN116308790A (zh) | 2023-03-10 | 2023-03-10 | 交易请求的资源调用方法、系统、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116308790A (zh) |
-
2023
- 2023-03-10 CN CN202310263713.6A patent/CN116308790A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102031471B1 (ko) | 자원 배치 최적화를 위한 기회적 자원 이주 | |
US10338958B1 (en) | Stream adapter for batch-oriented processing frameworks | |
CN113037794B (zh) | 计算资源配置调度方法、装置及系统 | |
CN109408590B (zh) | 分布式数据库的扩容方法、装置、设备及存储介质 | |
CN110008018A (zh) | 一种批量任务处理方法、装置及设备 | |
CN109002357B (zh) | 资源分配方法、装置及物联网系统 | |
CN110636388A (zh) | 一种业务请求分配方法、系统、电子设备及存储介质 | |
US11263184B1 (en) | Partition splitting in a distributed database | |
CN110764930B (zh) | 基于消息模式的请求或应答处理方法及装置 | |
CN109102200B (zh) | 一种定时任务处理方法及装置 | |
CN108647102B (zh) | 异构系统的服务请求处理方法、装置和电子设备 | |
WO2021013185A1 (zh) | 虚机迁移处理及策略生成方法、装置、设备及存储介质 | |
CN112631994A (zh) | 数据迁移方法及系统 | |
CN110413427B (zh) | 订阅数据拉取方法、装置、设备及存储介质 | |
CN116737370A (zh) | 一种多资源调度方法、系统、存储介质及终端 | |
US20200278890A1 (en) | Task management using a virtual node | |
CN111488373A (zh) | 用于处理请求的方法和系统 | |
CN116308790A (zh) | 交易请求的资源调用方法、系统、装置及电子设备 | |
CN115934292A (zh) | 微服务应用的调用方法、装置及设备 | |
CN111435320B (zh) | 一种数据处理方法及其装置 | |
CN113873052B (zh) | Kubernetes集群的域名解析方法、装置及设备 | |
US20240333658A1 (en) | Automated provisioning techniques for distributed applications with independent resource management at constituent services | |
CN109391588B (zh) | 请求处理方法和装置 | |
CN116719632B (zh) | 任务调度方法、装置、设备以及介质 | |
CN110321250B (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 |