一种多租户函数计算服务的并发控制方法与流程

文档序号:16811104发布日期:2019-02-10 13:39阅读:187来源:国知局
一种多租户函数计算服务的并发控制方法与流程

本发明涉及云计算技术领域,尤其涉及一种多租户函数计算服务的并发控制方法。



背景技术:

函数计算服务是一种基于事件驱动的函数托管服务。它能够让用户将编写的逻辑代码以函数的形式托管到云主机,使得云主机在接收到租户发送的运行函数的请求时调度计算节点运行函数,并向租户返回运行结果;其中,计算节点部署于计算服务器中。

如图1所示,是现有技术中函数计算服务的模型结构示意图。在该模型结构中,计算服务器和调度器均部署在云主机上,当调度器接收到租户发送的请求时,调度器根据预设的调度策略将请求转发至计算节点。为了实现每个租户的可用计算资源按可以按预先设定的大小进行分配,现有的计算服务通常在调度器上设置有rps(requestpersecond,每秒接收请求)的请求数量阈值,进而可限定每个租户每秒能新运行的函数数量。然而,由于函数的运行是一个时间持续的过程,且该持续时间长短不一,虽每秒新运行的函数通过请求数量阈值进行了限制,但是由于运行函数释放计算资源的时间不固定,导致租户占用的计算资源可能会超过预先设定的大小。现有的方法无法准确实现并发控制,使得用户体验较差。



技术实现要素:

针对上述问题,本发明的一种多租户函数计算服务的并发控制方法,可有效提高函数的运行效率,精准控制同一时刻下每个租户分配的函数计算服务资源均衡,改善用户使用体验。

为解决上述技术问题,本发明的一种多租户函数计算服务的并发控制方法,包括如下步骤:

计算节点在接收到云平台中租户发送的运行函数的请求时,对所述请求进行标识并向并发控制服务集群发送标识后的请求;

所述并发控制服务集群根据所述标识后的请求分别对第一运行数量和第二运行数量进行加1运算,并向所述计算节点返回运算后的第一运行数量及运算后的第二运行数量;所述第一运行数量为租户的函数运行数量,所述第二运行数量为租户请求的函数的运行总数,所述租户请求的函数由租户托管至云平台中;

所述计算节点在判定运算后的第一运行数量小于第一数量阈值,且运算后的第二运行数量小于第二数量阈值时,根据所述请求运行所述租户请求的函数,并向对应的租户返回运行结果,实现函数计算服务的并发控制。

与现有技术相比,本发明的并发控制方法中,计算节点在接收到云平台中租户发送的运行函数的请求时,对该请求进行唯一性标识后,再将标识后的请求发送给并发控制服务集群;并发控制服务集群根据标识后的请求分别对租户的函数运行数量和租户请求的函数的运行总数进行加1运算,使得每个租户正在运行的函数运行数量和租户请求的函数的运行总数都记录在并发控制服务中,使得计算节点能够在判定运算后的第一运行数量小于第一数量阈值,且第二运行数量小于第二数量阈值时,才运行与运行函数的请求向对应的函数。由于在计算节点中针对每个租户预设有第一数量阈值,以及针对函数预设有第二数量阈值,可对每个租户在同一时刻运行的函数运行数量及该租户请求的函数在同一时刻的运行总数进行限制,可精准控制同一时刻下对每个租户进行函数计算服务资源分配,使得函数计算服务资源分配均衡,改善用户使用体验。

作为上述方案的改进,所述请求包括超时时间;

所述并发控制服务集群根据所述标识后的请求分别对第一运行数量和第二运行数量进行加1运算之前,还包括如下步骤:

所述并发控制服务集群接收所述标识后的请求,并按照超时时间由小到大的顺序将所述标识后的请求存储于请求队列中。

作为上述方案的改进,在计算节点根据所述请求运行所述租户请求的的函数时,还包括如下步骤:

按照预设的更新周期更新所述超时时间,并向所述并发控制服务集群发送更新后的超时时间;所述更新周期包括多个判断周期;

当所述并发控制服务集群在任一判断周期内判定所述更新后的超时时间大于当前时间时,分别对所述第一运算数量和所述第二运行数量进行减1运算,并从所述请求队列中删除所述标识后的请求。

作为上述方案的改进,所述并发控制服务集群通过如下步骤判断所述更新后的超时时间是否大于当前时间:

在每个所述判定周期内,依次判断所述请求队列中标识后的请求的超时时间是否大于所述当前时间;

在判断到任一标识后的请求的超时时间大于所述当前时间时,判定所述任一标识后的请求至所述请求队列中最后一个标识后的请求的超时时间均大于当前时间。

作为上述方案的改进,所述请求包括租户id和函数id;

所述计算节点在接收到云平台中租户发送的运行函数的请求时,通过如下步骤对所述请求进行标识:

获取所述租户id、所述函数id和所述超时时间,并随机生成标识所述运行请求的请求id;

所述计算节点将所述请求id、所述租户id、所述函数id和所述超时时间封装为标识后的请求。

作为上述方案的改进,所述并发控制服务集群设置有加1运算接口和更新接口;

所述计算节点在接收到云平台中租户发送的运行函数的请求时,通过所述加1运算接口向所述并发控制服务集群发送标识后的请求;

或者,所述计算节点通过所述更新接口向所述并发控制服务集群发送所述更新后的超时时间。

作为上述方案的改进,所述并发控制服务集群设置有减1运算接口;

所述计算节点在向对应的租户返回运行结果之后,通过所述减1运算接口向所述并发控制服务集群发送减运算指令,以使所述并发控制服务集群根据所述减运算指令,分别对所述第一运算数量和所述第二运行数量进行减1运算,并从所述请求队列中删除所述标识后的请求。

作为上述方案的改进,所述并发控制集群采用raft协议作为分布式一致性协议,以提供并发控制服务。

作为上述方案的改进,在所述计算节点在接收到云平台中租户发送的运行函数的请求之前,还包括如下步骤:

在调度器接收到所述请求时,根据预设的调度方式向对应的计算节点转发所述请求。

作为上述方案的改进,所述调度方式包括:

按照预设的计算节点先后顺序将接收到的所述请求轮流分配至对应的计算节点;

或者,按照预设的计算节点权重分数的大小顺序,将接收到的所述请求轮流分配至对应的计算节点。

附图说明

图1是现有技术中函数计算服务的模型结构示意图。

图2是本发明中函数计算服务的模型结构示意图。

图3是本发明实施例1的一种多租户函数计算服务的并发控制方法的流程示意图。

图4是本发明实施例2的一种多租户函数计算服务的并发控制方法的流程示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于此描述的其他方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。

如图2所示,是本发明中函数计算服务的模型结构示意图。

在本发明中,并发控制服务集群由至少两个并发控制服务器组成,该并发控制服务集群采用raft(replicatedandfaulttolerant)协议作为分布式一致性协议以提供并发控制服务,避免本发明的并发控制服务出现单点故障问题。计算节点可向并发控制服务集群中的任一并发控制服务器进行通信。

下面结合具体实施例和附图对本发明的技术方案进行清楚、完整的描述。

实施例1

如图3所示,是本发明实施例1的一种多租户函数计算服务的并发控制方法的流程示意图。

该一种多租户函数计算服务的并发控制方法,包括如下步骤:

s1、计算节点在接收到云平台中租户发送的运行函数的请求时,对该请求进行标识,并向并发控制服务集群发送标识后的请求;

其中,租户发送的运行函数的请求包括租户id、函数id和超时时间,在步骤s1中,计算节点通过如下步骤对该请求进行标识:

s11、获取租户id、函数id和超时时间,并随机生成标识运行请求的请求id;

s12、将请求id、租户id、函数id和超时时间封装为标识后的请求。

s2、并发控制服务集群根据标识后的请求分别对第一运行数量和第二运行数量进行加1运算,并向计算节点返回运算后的第一运行数量及运算后的第二运行数量;第一运行数量为租户的函数运行数量,第二运行数量为租户请求的函数的运行总数,租户请求的函数由租户托管至云平台中;

s3、计算节点在判定运算后的第一运行数量小于第一数量阈值,且运算后的第二运行数量小于第二数量阈值时,根据该请求运行租户请求的函数,并向对应的租户返回运行结果,实现函数计算服务的并发控制。

下面结合一个具体的示例,对实施例1的并发控制方法进行说明。

在租户a在云平台上创建了一个名为function的函数,且设定租户a的第一数量阈值为100、第二数量阈值为10的情况下,当租户a发送运行function的请求时,且计算节点在接收到该请求时,对该请求标识唯一的请求id,并向并发控制服务集群发送标识后的请求;并发控制服务集群根据标识后的请求分别对第一运行数量和第二运行数量进行加1运算,并向计算节点发送运算后的第一运行数量及运算后的第二运行数量;计算节点在判定运算后的第一运行数量小于100,且运算后的第二运行数量小于10时,运行function,并向租户a返回对应的运行结果。

与现有技术相比,本发明的并发控制方法中,计算节点在接收到云平台中租户发送的运行函数的请求时,对该请求进行唯一性标识后,再将标识后的请求发送给并发控制服务集群;并发控制服务集群根据标识后的请求分别对租户的函数运行数量和函数的运行总数进行加1运算,使得每个租户正在运行的函数运行数量和租户请求的函数的运行总数都记录在并发控制服务中,使得计算节点能够在判定运算后的第一运行数量小于第一数量阈值,且第二运行数量小于第二数量阈值时,才运行与运行函数的请求相对应的函数。由于在计算节点中针对每个租户预设有第一数量阈值,以及针对租户请求的函数预设有第二数量阈值,可对每个租户在同一时刻运行的函数运行数量及租户请求的函数在同一时刻的运行总数进行限制,可精准控制同一时刻下对每个租户进行函数计算服务资源分配,使得函数计算服务资源分配均衡,改善用户使用体验。

实施例2

如图4所示,是本发明实施例2的一种多租户函数计算服务的并发控制方法的流程示意图。

该并发控制方法除了包括实施例1中全部步骤之外,在并发控制服务集群根据标识后的请求分别对第一运行数量和第二运行数量进行加1运算之前,还包括如下步骤:

s21、并发控制服务集群接收标识后的请求,并按照超时时间由小到大的顺序将标识后的请求存储于请求队列中;

其中,在步骤s21中,并发控制服务集群可按照如下形式对标识后的请求进行存储:

在步骤s3中,计算节点根据请求运行对应的函数时,还包括如下步骤:

s31、按照预设的更新周期更新超时时间,并向并发控制服务集群发送更新后的超时时间;更新周期包括多个判断周期;

在步骤s31中,更新周期可设置为5秒,判断周期可设置为1秒,更新周期的时间长度应大于判断周期的时间长度。

s32、当并发控制服务集群在任一判断周期内判定更新后的超时时间大于当前时间时,分别对第一运算数量和第二运行数量进行减1运算,并从请求队列中删除标识后的请求;

其中,在步骤s32中,并发控制服务集群通过如下步骤判断更新后的超时时间是否大于当前时间:

s321、在每个判定周期内,依次判断请求队列中标识后的请求的超时时间是否大于当前时间;

s322、在判断到任一标识后的请求的超时时间大于当前时间时,判定任一标识后的请求至请求队列中最后一个标识后的请求的超时时间均大于当前时间。

s33、当并发控制服务集群在任一判断周期内判定更新后的超时时间小于当前时间时,则更新请求队列中对应的超时时间。

在步骤s33中,并发控制服务集群通过如下步骤更新请求队列中对应的超时时间:

s331、从请求队列中获取对应的标识后的请求;

s332、将更新后的超时时间替换标识后的请求中的超时时间。

在实施例2的并发控制方法中,计算节点按照更新周期更新超时时间,并发控制服务集群按照判断周期实时判断请求是否超时,并在任一判断周期判定请求超时的情况下,分别对第一运算数量和第二运行数量进行减1运算,并从请求队列中删除标识后的请求。由于计算节点和并发控制服务集群建立了请求运行的超时时间检查机制,使得计算节点即时在发生掉线、宕机或无法提供计算的情况下,都可以准确调整函数计算服务。

进一步地,在本发明的上述实施例中,并发控制服务集群设置有加1运算接口和更新接口;

计算节点在接收到云平台中租户发送的运行函数的请求时,通过加1运算接口向并发控制服务集群发送标识后的请求;

或者,计算节点通过更新接口向并发控制服务集群发送更新后的超时时间。

进一步地,在本发明的上述实施例中,并发控制服务集群设置有减1运算接口;

计算节点在向对应的租户返回运行结果之后,通过减1运算接口向并发控制服务集群发送减运算指令,以使并发控制服务集群根据减运算指令,分别对第一运算数量和第二运行数量进行减1运算,并从请求队列中删除标识后的请求。

优选地,在本发明的上述实施例中,计算节点在获取租户id、函数id和超时时间,并随机生成标识运行请求的请求id之后,还包括如下步骤:

将请求id、租户id、函数id和超时时间解析为调用参数,进而通过以请求id作为调用参数的方式分别调用并发控制服务集群的加1运算接口、更新接口或减1运算接口的来实现两者之间的通信。

优选地,在计算节点在接收到云平台中租户发送的运行函数的请求之前,还包括如下步骤:

在调度器接收到请求时,根据预设的调度方式向对应的计算节点转发该请求。

其中,调度方式包括:按照预设的计算节点先后顺序将接收到的请求轮流分配至对应的计算节点;

或者,按照预设的计算节点权重分数的大小顺序,将接收到的请求按权重轮流分配至对应的计算节点。

以上所述,仅是本发明的较佳实施例而已,并非对本发明做任何形式上的限制,故凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1