CN114257597A - 用于函数计算的并发控制方法、装置、设备及介质 - Google Patents
用于函数计算的并发控制方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114257597A CN114257597A CN202111584496.8A CN202111584496A CN114257597A CN 114257597 A CN114257597 A CN 114257597A CN 202111584496 A CN202111584496 A CN 202111584496A CN 114257597 A CN114257597 A CN 114257597A
- Authority
- CN
- China
- Prior art keywords
- function
- gateway
- concurrency
- grouping
- control method
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004364 calculation method Methods 0.000 title claims abstract description 27
- 230000006870 function Effects 0.000 claims abstract description 407
- 238000004590 computer program Methods 0.000 claims abstract description 17
- 230000015654 memory Effects 0.000 claims description 13
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 6
- 108010001267 Protein Subunits Proteins 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000007488 abnormal function Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Mathematical Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供一种用于函数计算的并发控制方法,涉及函数计算技术领域,可应用金融科技领域,包括:配置至少一个服务器负载均衡节点及至少一个函数网关;对函数进行分组,得到分组信息,其中,所述分组信息用于表示所述函数对应的函数网关;响应于业务请求,以使得所述服务器负载均衡节点根据所述分组信息确定目标函数网关;将函数对应的并发配置信息发送至所述目标函数网关,以使得所述目标函数网关根据所述并发配置信息将所述业务请求路由到对应的函数实例。本公开还提供一种用于函数计算的并发控制装置、电子设备、计算机可读存储介质及计算机程序产品。
Description
技术领域
本公开涉及函数计算技术领域,可应用金融科技领域或其他领域,具体涉及一种用于函数计算的并发控制方法、装置、设备及介质。
背景技术
函数计算作为实现Severless架构的主要形式,将应用与基础设施彻底分离,开发人员无需关心基础设施的运维工作,只需专注于应用逻辑的开发,仅在事件触发时才调用计算资源,真正做到了弹性伸缩与按需付费。
而现有的函数计算过程中,函数网关(Event Queue)承担了外部所有的请求。考虑到总体资源的性能容量和函数调用第三方服务的并发瓶颈,每个函数在系统内运行的时候,都会为每个函数设置一个并发数的上限,该并发数限制通过分布式缓存Redis实现。由于所有交易必须经过通过Redis,而函数计算平台会部署大量的函数,所有函数都会经过该函数网关,因此函数网关访问Redis会存在性能瓶颈问题和风险安全问题。一旦Redis出现异常,会导致并发数无法更新,从而将所有请求阻塞在网关,直到交易超时,会对系统产生了较大的风险。
公开内容
有鉴于此,本公开提供一方面提供一种用于函数计算的并发控制方法,包括:配置至少一个服务器负载均衡节点及至少一个函数网关;对函数进行分组,得到分组信息,其中,所述分组信息用于表示所述函数对应的函数网关;响应于业务请求,以使得所述服务器负载均衡节点根据所述分组信息确定目标函数网关;将函数对应的并发配置信息发送至所述目标函数网关,以使得所述目标函数网关根据所述并发配置信息将所述业务请求路由到对应的函数实例。
根据本公开的实施例,其中,所述对函数进行分组,得到分组信息包括:根据函数对应的并发配置信息对所述函数进行分组;或根据函数的应用类型对所述函数进行分组。
根据本公开的实施例,其中,每一个函数对应至少一个函数网关,所述服务器负载均衡节点根据所述分组信息确定目标函数网关包括:获取所述函数的函数名;根据所述函数名和所述分组信息获取所述函数对应的函数网关;根据所述业务请求包含的应用从所述函数对应的函数网关中确定至少一个目标函数网关。
根据本公开的实施例,其中,每一个函数对应至少一个函数网关,所述并发控制方法还包括:根据所述函数的并发配置信息为所述函数对应的至少一个函数网关配置并发数。
根据本公开的实施例,其中,将所述函数对应的每个函数网关的并发数配置为所述函数的总并发数与所述函数对应的函数网关数的商。
根据本公开的实施例,其中,所述目标函数网关根据所述并发配置信息将所述业务请求路由到对应的函数实例包括:判断所述目标函数网关当前并发数是否小于所述目标函数网关配置的最大并发数;若是,则将所述业务请求路由到对应的函数实例;若否,在所述函数实例执行函数计算完成后,将所述业务请求路由到对应的函数实例。
根据本公开的实施例,其中,采用分布式存储系统将所述分组信息发送至所述服务器负载均衡节点,将所述并发配置信息发送至所述目标函数网关。
根据本公开的实施例,其中,所述分布式存储系统包括ETCD分布式存储系统。
根据本公开的实施例,其中,采用关系数据库存储所述分组信息和所述并发配置信息。
根据本公开的实施例,其中,所述并发控制方法还包括:对所述至少一个函数网关的性能进行监测,在函数网关出现异常的情况下,从所述分组信息中剔除该函数网关。
本公开另一方面提供一种用于函数计算的并发控制装置,包括:配置模块,用于配置至少一个服务器负载均衡节点及至少一个函数网关;分组模块,用于对函数进行分组,得到分组信息,其中,所述分组信息用于表示所述函数对应的函数网关;响应模块,用于响应于业务请求,以使得所述服务器负载均衡节点根据所述分组信息确定目标函数网关;发送模块,用于将函数对应的并发配置信息发送至所述目标函数网关,以使得所述目标函数网关根据所述并发配置信息将所述业务请求路由到对应的函数实例。
本公开的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
图1示意性示出了根据本公开实施例的用于函数计算的并发控制方法及装置的系统架构100;
图2示意性示出了根据本公开一实施例的用于函数计算的并发控制方法的应用场景图;
图3示意性示出了根据本公开一实施例的用于函数计算的并发控制方法的流程图;
图4示意性示出了根据本公开一实施例的函数分组方法的流程图;
图5示意性示出了根据本公开实施例的分布式函数网关的部署图;
图6示意性示出了根据本公开又一实施例的函数分组方法的流程图;
图7示意性示出了根据本公开实施例的操作S303的流程图;
图8示意性示出了根据本公开实施例的操作S304的流程图;
图9示意性示出了根据本公开又一实施例的用于函数计算的并发控制方法的流程图;
图10示意性示出了根据本公开一实施例的用于函数计算的并发控制装置的框图;
图11示意性示出了根据本公开实施例的分组模块的框图;
图12示意性示出了根据本公开实施例的响应模块的框图;
图13示意性示出了根据本公开实施例的发送模块的框图;
图14示意性示出了根据本公开又一实施例的用于函数计算的并发控制系统的框图;
图15示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
在本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
本公开实施例提供的用于函数计算的并发控制方法,可以应用于金融科技领域。应当理解是,本公开实施例提供的用于函数计算的并发控制方法不仅限于应用于金融科技领域,上述描述只是示例性的,对于需要进行用于函数计算的并发控制的其他领域,例如销售领域、电子商务领域、物流领域、商贸领域等等,都可以应用本公开实施例的用于函数计算的并发控制方法进行用于函数计算的并发控制。
本公开的实施例提供一种用于函数计算的并发控制方法,包括:配置至少一个服务器负载均衡节点及至少一个函数网关。对函数进行分组,得到分组信息,其中,分组信息用于表示函数对应的函数网关。响应于业务请求,以使得服务器负载均衡节点根据分组信息确定目标函数网关。将函数对应的并发配置信息发送至目标函数网关,以使得目标函数网关根据并发配置信息将业务请求路由到对应的函数实例。
图1示意性示出了根据本公开实施例的用于函数计算的并发控制方法及装置的系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括客户端101、存储模块102,网络103及服务器104。网络103用于在客户端101、存储模块102和服务器104之间提供通信链路。
客户端101例如可以是具有显示屏并且可接入输入设备以进行信息输入的各种电子设备,包括但不限于智能手机、平板电脑、台式PC、膝上型PC、上网本计算机、工作站、服务器、游戏机等,电子设备可用于用户发送业务交易请求等。存储模块102可以是利用半导体、磁性介质等技术制成的存储数据的电子设备,也可以使缓存。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。其中有线方式例如可以是采用线缆及以下多种接口中的任一种连接:光纤通道、红外线接口、D型数据接口、串行接口、USB接口、USBType-C接口或Dock接口,无线方式例如可以是采用无线通信方式连接的,其中的无线通信例如可采用蓝牙、Wi-Fi、Infrared、ZigBee等多个无线技术标准中的任一个。服务器104可以是能够配置至少一个服务器负载均衡节点及至少一个函数网关,并通过网络103接收客户端101发送的业务交易请求,响应于该业务交易请求,从存储模块102中获取用于执行该业务请求的函数对应的并发配置信息和分组信息,以使得服务器负载均衡节点根据分组信息确定目标函数网关,目标函数网关根据并发配置信息将业务请求路由到对应的函数实例。
需要说明的是,本公开实施例所提供的用于函数计算的并发控制方法可以由服务器104执行。相应地,本公开实施例所提供的用于函数计算的并发控制装置可以设置于服务器104中。或者,本公开实施例所提供的用于函数计算的并发控制方法也可以由不同于服务器104且能够与客户端101、存储模块102和/或服务器104通信的服务器或服务器集群执行。相应地,本公开实施例所提供的用于函数计算的并发控制装置也可以设置于不同于服务器104且能够与客户端101、存储模块102和/或服务器104通信的服务器或服务器集群中。或者,本公开实施例所提供的用于函数计算的并发控制方法也可以部分由服务器104执行,部分由客户端101、存储模块102执行。相应的,本公开实施例所提供的用于函数计算的并发控制装置也可以部分设置于服务器104中,部分设置于客户端101、存储模块中。
应该理解,图1中的客户端、存储模块、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端、网络存储模块、和服务器。
图2示意性示出了根据本公开一实施例的用于函数计算的并发控制方法的应用场景图。
如图2所示,该应用场景的并发控制流程为:在业务系统启动执行业务交易需要进行函数计算时,会将最大的并发值写入Redis,key为max_fn_concurrent_函数名,value为最大并发值,同时新建一个当前并发记录,key为current_fn_concurrent_函数名,value为0。当外部交易请求进入系统时,current_fn_concurrent_函数名+1,当交易结束时,current_fn_concurrent_函数名-1。当current_fn_concurrent_函数名>=max_fn_concurrent_函数名时,阻塞交易,并循环检查current_fn_concurrent_函数名,当其值小于max_fn_concurrent_函数名时,继续执行交易请求。与此同时,会有一个独立的现成,间歇性地将MySQL中各函数的最大并发值,更新到Redis的max_fn_concurrent_函数名里面,来保持修改后的最大并发数同步。
由此可以看出,该控制流程在每个交易进来,都要访问至少四次Redis,请求当前并发一次,请求当前最大并发值一次,当前并发数+1一次,当前并发数-1一次,首先会导致交易额外的耗时。其次,Redis性能问题,会随着业务量的增加,以4倍的规模进行放大。也即,函数网关访问Redis会存在性能瓶颈问题和风险安全问题,一旦Redis出现异常,会导致并发数无法更新,从而将所有请求阻塞在网关,直到交易超时,会对系统产生了较大的风险。基于该场景,采用本公开实施例提供的并发控制方法,至少可以部分解决该技术问题。
图3示意性示出了根据本公开一实施例的用于函数计算的并发控制方法的流程图。
如图3所示,该用于函数计算的并发控制方法例如可以包括操作S301~S304。
在操作S301,配置至少一个服务器负载均衡节点及至少一个函数网关。
在操作S302,对函数进行分组,得到分组信息,其中,分组信息用于表示函数对应的函数网关。
在操作S303,响应于业务请求,以使得服务器负载均衡节点根据分组信息确定目标函数网关。
在操作S304,将函数对应的并发配置信息发送至目标函数网关,以使得目标函数网关根据并发配置信息将业务请求路由到对应的函数实例。
根据本公开的实施例,该并发控制方法通过配置至少一个服务器负载均衡节点及至少一个函数网关,将传统技术中的一层函数服务网关拆分成分布式服务器负载均衡节点+函数网关的形式,即使其中一些函数网关出现异常,服务器负载均衡节点也会根据最近一次使用的分组信息确定正常的目标函数网关,使得正常的目标网光根据并发配置信息将业务请求路由到对应的函数实例执行业务交易,从而实现精确地、高可靠地并发控制。并且,由于将传统技术中的一层函数服务网关拆分成分布式服务器负载均衡节点+函数网关的形式,可以自由地设置不同函数在不同函数网关内进行路由,避免了不同交易之间的影响。
下面结合附图4-图9对图3所示的并发控制方法进行详细说明。
图4示意性示出了根据本公开一实施例的函数分组方法的流程图。图5示意性示出了根据本公开实施例的分布式函数网关的部署图。
如图4所示,该方法例如可以包括操作S401~操作S402。
在操作S401,获取函数的并发配置信息。
在本公开实施例中,每个函数对应并发配置信息设置(例如最大并发值设置)及存储可以基于关系数据库进行设置及存储。关系数据库例如可以为MySQL数据库。
在操作S402,根据函数对应的并发配置信息对函数进行分组。
在本公开实施例中,函数的分组及分组信息的及存储也可以关系数据库进行设置及存储。关系数据库例如可以为MySQL数据库。分组的目的是为了确定一函数可以有哪一个或多个函数网关进行路由。如图5所示,例如,假设当前有三个可用的函数网关:函数网关1、函数网关2、函数网关3,有5个可以进行函数计算的函数:函数A、函数B、函数C、函数D以及函数E,其对应的并发数分别为:A:50,B:100,C:200,D:100,E:150。可以按照每个网关对应函数的并发数总数进行分数,由于函数A与函数E的并发数之和为200,函数B与函数D的并发数之和为200,函数C的并发数为200,则可以将函数C、函数D以及函数E分配三个网关的函数组为:AE、BD、C。也可以按照并发数的平均值对不同并发的函数进行分组,具体本公开不做限制。
图6示意性示出了根据本公开又一实施例的函数分组方法的流程图。
如图6所示,该方法例如可以包括操作S601~操作S602。
在操作S601,获取函数的并发配置信息。
在本公开实施例中,每个函数对应并发配置信息设置(例如最大并发值设置)及存储可以基于关系数据库进行设置经存储。关系数据库例如可以为MySQL数据库。
在操作S602,根据函数的应用类型对所述函数进行分组。
在本公开实施例中,函数的分组及分组信息的及存储也可以关系数据库进行设置及存储。关系数据库例如可以为MySQL数据库。分组的目的是为了确定一函数可以有哪一个或多个函数网关进行路由。例如,假设当前有三个可用的函数网关:函数网关1、函数网关2、函数网关3,有5个可以进行函数计算的函数:函数A、函数B、函数C、函数D以及函数E,而函数A与函数E用于同一应用的函数计算,函数B与函数D用于同一应用的函数计算,则可以将函数A、函数B、函数C、函数D以及函数E分配三个网关的函数组为:AE、BD、C。
应当理解,一个函数可以对应一个或多个函数网关。例如,函数A可以同时对应函数网关1、函数网关2及函数网关3,也即函数网关1、函数网关2及函数网关3可以都是函数A的路由的目标函数网关。
由此,通过预先对函数进行分组,便于后续路由至目标函数网关。
图7示意性示出了根据本公开实施例的操作S303的流程图。
操作S303整体过程可以为:当一个业务交易请求进入函数计算平台时,先通过F5负载均衡进行负载均衡路由到服务器负载均衡节点。负服务器载均衡节点通过检查业务交易请求上下文,结合分组数据,来判断路由到哪个函数网关。具体的,如图7所示,可以进一步包括操作S701~S703。
在操作S701,获取函数的函数名。
在本公开实施例中,函数名可以从业务请求中获取。例如,http业务请求为:http://fn.icbc/fc-proxy/fn/f-paas/get_user_data,服务器负载均衡节点可以检查http请求的信息,获取函数名(get_user_data)。
在操作S702,根据函数名和分组信息获取函数对应的函数网关。
在本公开实施例中,由于前述分组信息包含了函数与函数网关的对应关系,则基于获取的函数名便可从分组信息中获取该函数所对应的函数网关。该函数网关可能包括一个或多个。
在操作S703,根据业务请求包含的应用从函数对应的函数网关中确定至少一个目标函数网关。
在本公开实施例中,一个函数可能可以应用于多个业务应用的函数计算,不同的业务也用可以分配不同的函数网关,页面不同业务之间产生影响,因此,在最终确定将业务请求路由到那个函数网关还需要考虑业务请求包含的业务应用,基于应用及分组信息,最终决定路由的目标函数网关。
图8示意性示出了根据本公开实施例的操作S304的流程图。
如图8所示,操作S304例如可以进一步包括操作S801~S803。
在操作S801,判断目标函数网关当前并发数是否小于目标函数网关配置的最大并发数。
在本公开实施例中,由于每一个函数可能分配有多个函数网关,因此可以根据函数的并发配置信息为函数对应的至少一个函数网关配置并发数。可以将函数对应的每个函数网关的并发数配置为函数的总并发数与函数对应的函数网关数的商。
例如,假设一个函数的总并发数为100,同时为该函数设置了4个函数网关,基于负载均衡,每个函数网关的并发数可以配置为25。当目标函数网关当前的并发数小于25时,表示目标函数网关当前存在空余,则可以执行操作S802。当目标函数网关当前的并发数不小于25时,表示目标函数网关当前不存在空余,则可以执行操作S803。
在操作S802,将业务请求路由到对应的函数实例。
在操作S803,在函数实例执行函数计算完成后,将业务请求路由到对应的函数实例。
在本公开实施例中,每个函数网关对应多个函数实例,每个函数实例可以执行一函数计算。
根据本公开的实施例,可以采用分布式存储系统将分组信息发送至服务器负载均衡节点,将并发配置信息发送至目标函数网关。分布式系统可以采用ETCD分布式存储系统。也即,ETCD分布式存储系统从定时从MySQL数据库获取每个函数的并发值数和分组信息,并将并发数同步到函数网关,将分组信息同步服务器负载均衡。当ETCD分布式存储系统出现异常时,函数网关和服务器负载均衡会使用最近一次从ETCD分布式存储系统获取的并发数及分组信息执行业务交易,不会因为ETCD的问题导致无法执行业务交易。
图9示意性示出了根据本公开又一实施例的用于函数计算的并发控制方法的流程图。
如图9所示,该函数计算的并发控制方法例如可以包括操作S901~操作S902。
在操作S901,对至少一个函数网关的性能进行监测。
在本公开实施例中,个别函数网关可能出现异常的情况,导致无法执行正常的业务交易,因而需要对函数网关的性能进行监测。
在操作S902,在函数网关出现异常的情况下,从分组信息中剔除该函数网关。
在本公开实施例中,由于一个函数可以分配多个函数网关,当其中一函数网关出现异常时,可以在MySQL数据库中快速从分组信息中将该函数网关剔除,将业务交易请求路由到可以正常工作的函数网关。
综上所述,本公开实施例提供的用于函数计算的并发控制方法,当分布式存储系统出现异常时,函数网关和服务器负载均衡会使用最近一次从分布式存储系统获取的值并发配置信息和分组信息执行业务交易,而不会因为分布式存储系统的问题导致无法执行业务交易。解决了现有方案中在Redis异常时,会出现交易不能执行的情况。同时,由于将原本的一层服务网关划分分布式服务器负载均衡节点+函数网关的形式,从而可以自由地设置不同函数在不同函数网关内进行路由,避免了不同交易之间的影响。此外,如果有个别函数网关出现异常,出现无法工作的情况,也可以在MySQL数据库中,快速地将异常函数网关进行剔除,保证业务交易请求可以路由到可以正常工作的函数网关。
图10示意性示出了根据本公开一实施例的用于函数计算的并发控制装置的框图。
如图10所示,用于函数计算的并发控制装置1000例如可以包括配置模块1010、分组模块1020、响应模块1030及发送模块1040。
配置模块1010,用于配置至少一个服务器负载均衡节点及至少一个函数网关。
分组模块1020,用于对函数进行分组,得到分组信息,其中,分组信息用于表示函数对应的函数网关。
响应模块1030,用于响应于业务请求,以使得服务器负载均衡节点根据分组信息确定目标函数网关。
发送模块1040,用于将函数对应的并发配置信息发送至目标函数网关,以使得目标函数网关根据并发配置信息将业务请求路由到对应的函数实例。
图11示意性示出了根据本公开实施例的分组模块的框图。
如图11所示,分组模块1010例如可以包括第一分组单元1011及第二分组单元1012。
第一分组单元1011,用于根据函数对应的并发配置信息对函数进行分组。
第二分组单元1012,用于根据函数的应用类型对所述函数进行分组。
图12示意性示出了根据本公开实施例的响应模块的框图。
如图12所示,响应模块1030例如可以包括第一获取单元1031、第二获取单元1032及确定单元1033。
第一获取单元1031,用于获取函数的函数名。
第二获取单元1032,用于根据函数名和分组信息获取函数对应的函数网关。
确定单元1033,用于根据业务请求包含的应用从函数对应的函数网关中确定至少一个目标函数网关。
图13示意性示出了根据本公开实施例的发送模块的框图。
如图13所示,发送模块1040例如可以包括判断单元1041及路由单兀1042。
判断单元1041,用于判断目标函数网关当前并发数是否小于目标函数网关配置的最大并发数。
路由单元1042,用于在目标函数网关当前并发数小于目标函数网关配置的最大并发数的情况下,将业务请求路由到对应的函数实例,在目标函数网关当前并发数不小于目标函数网关配置的最大并发数的情况下,在函数实例执行函数计算完成后,将业务请求路由到对应的函数实例。
图14示意性示出了根据本公开又一实施例的用于函数计算的并发控制系统的框图。
如图14所示,用于函数计算的并发控制装置1000例如还可以包括监测模块1050及剔除模块1060。
监测模块1050,用于对至少一个函数网关的性能进行监测。
剔除模块1060,用于在函数网关出现异常的情况下,从分组信息中剔除该函数网关。
根据本公开的实施例,该并发控制方法通过配置至少一个服务器负载均衡节点及至少一个函数网关,将传统技术中的一层函数服务网关拆分成分布式服务器负载均衡节点+函数网关的形式,即使其中一些函数网关出现异常,服务器负载均衡节点也会根据最近一次使用的分组信息确定正常的目标函数网关,使得正常的目标网光根据并发配置信息将业务请求路由到对应的函数实例执行业务交易,从而实现精确地、高可靠地并发控制。并且,由于将传统技术中的一层函数服务网关拆分成分布式服务器负载均衡节点+函数网关的形式,可以自由地设置不同函数在不同函数网关内进行路由,避免了不同交易之间的影响。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,配置模块1010、分组模块1020、响应模块1030及推荐发送模块1040、监测模块1050及剔除模块1060中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,配置模块1010、分组模块1020、响应模块1030及推荐发送模块1040、监测模块1050及剔除模块1060中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,配置模块1010、分组模块1020、响应模块1030及推荐发送模块1040、监测模块1050及剔除模块1060中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中用于函数计算的并发控制装置部分与本公开的实施例中用于函数计算的并发控制方法部分是相对应的,其具体实施细节也是相同的,在此不再赘述。
图15示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。图15示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图15所示,根据本公开实施例的电子设备1500包括处理器1501,其可以根据存储在只读存储器(ROM)1502中的程序或者从存储部分1508加载到随机访问存储器(RAM)1503中的程序而执行各种适当的动作和处理。处理器1501例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1501还可以包括用于缓存用途的板载存储器。处理器1501可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1503中,存储有电子设备1500操作所需的各种程序和数据。处理器1501、ROM 1502以及RAM1503通过总线1504彼此相连。处理器1501通过执行ROM 1502和/或RAM1503中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1502和RAM 1503以外的一个或多个存储器中。处理器1501也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1500还可以包括输入/输出(I/O)接口1505,输入/输出(I/O)接口1505也连接至总线1504。电子设备1500还可以包括连接至I/O接口1505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1507;包括硬盘等的存储部分1508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至I/O接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。在该计算机程序被处理器1501执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM1502和/或RAM 1503和/或ROM 1502和RAM 1503以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
Claims (14)
1.一种用于函数计算的并发控制方法,包括:
配置至少一个服务器负载均衡节点及至少一个函数网关;
对函数进行分组,得到分组信息,其中,所述分组信息用于表示所述函数对应的函数网关;
响应于业务请求,以使得所述服务器负载均衡节点根据所述分组信息确定目标函数网关;
将所述函数对应的并发配置信息发送至所述目标函数网关,以使得所述目标函数网关根据所述并发配置信息将所述业务请求路由到对应的函数实例。
2.根据权利要求1所述的用于函数计算的并发控制方法,其中,所述对函数进行分组,得到分组信息包括:
根据函数对应的并发配置信息对所述函数进行分组;或
根据函数的应用类型对所述函数进行分组。
3.根据权利要求1所述的用于函数计算的并发控制方法,其中,每一个函数对应至少一个函数网关,所述服务器负载均衡节点根据所述分组信息确定目标函数网关包括:
获取所述函数的函数名;
根据所述函数名和所述分组信息获取所述函数对应的函数网关;
根据所述业务请求包含的应用从所述函数对应的函数网关中确定至少一个目标函数网关。
4.根据权利要求1所述的用于函数计算的并发控制方法,其中,每一个函数对应至少一个函数网关,所述并发控制方法还包括:
根据所述函数的并发配置信息为所述函数对应的至少一个函数网关配置并发数。
5.根据权利要求4所述的用于函数计算的并发控制方法,其中,将所述函数对应的每个函数网关的并发数配置为所述函数的总并发数与所述函数对应的函数网关数的商。
6.根据权利要求4或5所述的用于函数计算的并发控制方法,其中,所述目标函数网关根据所述并发配置信息将所述业务请求路由到对应的函数实例包括:
判断所述目标函数网关当前并发数是否小于所述目标函数网关配置的最大并发数;
若是,则将所述业务请求路由到对应的函数实例;若否,在所述函数实例执行函数计算完成后,将所述业务请求路由到对应的函数实例。
7.根据权利要求1所述的用于函数计算的并发控制方法,其中,采用分布式存储系统将所述分组信息发送至所述服务器负载均衡节点,将所述并发配置信息发送至所述目标函数网关。
8.根据权利要求7所述的用于函数计算的并发控制方法,其中,所述分布式存储系统包括ETCD分布式存储系统。
9.根据权利要求1所述的用于函数计算的并发控制方法,其中,采用关系数据库存储所述分组信息和所述并发配置信息。
10.根据权利要求1所述用于函数计算的并发控制方法,其中,所述并发控制方法还包括:
对所述至少一个函数网关的性能进行监测,在函数网关出现异常的情况下,从所述分组信息中剔除该函数网关。
11.一种用于函数计算的并发控制装置,包括:
配置模块,用于配置至少一个服务器负载均衡节点及至少一个函数网关;
分组模块,用于对函数进行分组,得到分组信息,其中,所述分组信息用于表示所述函数对应的函数网关;
响应模块,用于响应于业务请求,以使得所述服务器负载均衡节点根据所述分组信息确定目标函数网关;
发送模块,用于将函数对应的并发配置信息发送至所述目标函数网关,以使得所述目标函数网关根据所述并发配置信息将所述业务请求路由到对应的函数实例。
12.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至10中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至10中任一项所述的方法。
14.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111584496.8A CN114257597B (zh) | 2021-12-22 | 2021-12-22 | 用于函数计算的并发控制方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111584496.8A CN114257597B (zh) | 2021-12-22 | 2021-12-22 | 用于函数计算的并发控制方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114257597A true CN114257597A (zh) | 2022-03-29 |
CN114257597B CN114257597B (zh) | 2023-12-29 |
Family
ID=80794448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111584496.8A Active CN114257597B (zh) | 2021-12-22 | 2021-12-22 | 用于函数计算的并发控制方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114257597B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104932932A (zh) * | 2014-03-20 | 2015-09-23 | 腾讯科技(深圳)有限公司 | 一种业务异步处理方法、装置和系统 |
CN110162413A (zh) * | 2018-02-12 | 2019-08-23 | 华为技术有限公司 | 事件驱动方法及装置 |
CN111737059A (zh) * | 2020-07-02 | 2020-10-02 | 中国工商银行股份有限公司 | 数据备份方法、装置、电子设备和介质 |
-
2021
- 2021-12-22 CN CN202111584496.8A patent/CN114257597B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104932932A (zh) * | 2014-03-20 | 2015-09-23 | 腾讯科技(深圳)有限公司 | 一种业务异步处理方法、装置和系统 |
CN110162413A (zh) * | 2018-02-12 | 2019-08-23 | 华为技术有限公司 | 事件驱动方法及装置 |
CN111737059A (zh) * | 2020-07-02 | 2020-10-02 | 中国工商银行股份有限公司 | 数据备份方法、装置、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114257597B (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106489251B (zh) | 应用拓扑关系发现的方法、装置和系统 | |
US9843533B2 (en) | Elastic compute cloud based on underutilized server resources using a distributed container system | |
US10019391B2 (en) | Preventing software thread blocking due to interrupts | |
CN110399271B (zh) | 日志处理设备、方法、电子设备及计算机可读存储介质 | |
US11656959B2 (en) | Disaster recovery region recommendation system and method | |
CN110443593B (zh) | 交易处理方法及装置、交易处理系统和计算机系统 | |
CN113110963A (zh) | 业务处理方法、业务处理装置、电子设备及可读存储介质 | |
Shen et al. | Performance modeling of big data applications in the cloud centers | |
WO2022134809A1 (zh) | 模型训练处理方法、装置、计算机设备及介质 | |
CN114257597B (zh) | 用于函数计算的并发控制方法、装置、设备及介质 | |
US20120260246A1 (en) | Software application installation | |
CN112346870B (zh) | 模型处理方法及系统 | |
US11775654B2 (en) | Anomaly detection with impact assessment | |
CN115437794A (zh) | I/o请求调度方法、装置、电子设备及存储介质 | |
US20210357302A1 (en) | Dynamically mapping software infrastructure utilization | |
US11307889B2 (en) | Schedule virtual machines | |
CN117201496A (zh) | 任务调度方法、任务提交方法、装置、设备及介质 | |
CN112995307A (zh) | 日志处理方法、系统、装置、电子设备及存储介质 | |
US10387210B2 (en) | Resource schedule optimization | |
JP6944799B2 (ja) | 情報処理装置 | |
JP2020052906A (ja) | 監視システム、監視装置、監視方法、及びプログラム | |
US11916742B1 (en) | System and method for an auction-based scheme for service function chain placement | |
CN115878586B (zh) | Ipfs存储封装方法、装置、电子设备及可读存储介质 | |
CN115174588B (zh) | 带宽控制方法、装置、设备、存储介质和程序产品 | |
CN113900823A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |