CN113792192B - 开源业务函数支撑系统及业务函数的控制方法 - Google Patents
开源业务函数支撑系统及业务函数的控制方法 Download PDFInfo
- Publication number
- CN113792192B CN113792192B CN202110911307.7A CN202110911307A CN113792192B CN 113792192 B CN113792192 B CN 113792192B CN 202110911307 A CN202110911307 A CN 202110911307A CN 113792192 B CN113792192 B CN 113792192B
- Authority
- CN
- China
- Prior art keywords
- function
- function instance
- target
- instance
- scaling
- 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
- 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/903—Querying
-
- 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
-
- 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/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种开源业务函数支撑系统及业务函数的控制方法,包括主节点和与主节点通信连接的工作节点,主节点运行有容器编排器模块,工作节点运行有伸缩决策模块;伸缩决策模块,用于从预设的业务函数指标数据库中查询目标业务函数实例的业务指标,据目标业务函数实例的业务指标和预设的目标业务函数实例的函数实例伸缩规则确定针对目标业务函数实例的伸缩策略,并向容器编排器模块发送伸缩策略;容器编排器模块,用于接收来自伸缩决策模块的针对目标业务函数实例的伸缩策略,按照针对目标业务函数实例的伸缩策略进行伸缩处理。本申请实施例有利于提高开源业务函数支撑系统中进行函数实例的伸缩控制的灵活性和效率。
Description
技术领域
本申请涉及开源的函数计算技术领域,具体涉及一种开源业务函数支撑系统及业务函数的控制方法。
背景技术
目前,开源业务函数支撑系统中,在多种业务函数实例处理不同业务请求时,业务函数的函数实例的伸缩规则是整体配置的,无法支持不同业务函数实例的动态伸缩配置,资源调整不够灵活,难以满足使用需求。
发明内容
本申请提供一种开源业务函数支撑系统及业务函数的控制方法,以期提高开源业务函数支撑系统中进行函数实例的伸缩控制的灵活性和效率。
第一方面,本申请实施例提供一种开源业务函数支撑系统,包括主节点和与所述主节点通信连接的工作节点,所述主节点运行有容器编排器模块,所述工作节点运行有伸缩决策模块及至少一个处理目标业务请求的业务函数实例;
所述伸缩决策模块,用于从预设的业务函数指标数据库中查询目标业务函数实例的业务指标,根据所述目标业务函数实例的业务指标和预设的所述目标业务函数实例的函数实例伸缩规则确定针对所述目标业务函数实例的伸缩策略,并向所述容器编排器模块发送所述伸缩策略;所述目标业务函数实例伸缩规则因不同的业务函数实例而不同;
所述容器编排器模块,用于接收来自所述伸缩决策模块的针对所述目标业务函数实例的伸缩策略,按照所述针对所述目标业务函数实例的伸缩策略进行伸缩处理。
第二方面,本申请实施例提供一种业务函数的控制方法,应用于开源业务函数支撑系统,所述开源业务函数支撑系统包括主节点和与所述主节点通信连接的工作节点,所述主节点运行有容器编排器模块,所述工作节点运行有伸缩决策模块及至少一个处理目标业务请求的业务函数实例;所述方法包括:
所述伸缩决策模块从预设的业务函数指标数据库中查询目标业务函数实例的业务指标,根据所述目标业务函数实例的业务指标和预设的所述目标业务函数实例的函数实例伸缩规则确定针对所述目标业务函数实例的伸缩策略,并向所述容器编排器模块发送所述伸缩策略;所述目标业务函数实例伸缩规则因不同的业务函数实例而不同;
所述容器编排器模块接收来自所述伸缩决策模块的针对所述目标业务函数实例的伸缩策略,按照所述针对所述目标业务函数实例的伸缩策略进行伸缩处理。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行本申请实施例第一方面任一方法中的步骤的指令。
第四方面,本申请实施例提供了一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。
第六方面,本申请实施例提供了一种计算机程序,其中,所述计算机程序可操作来使计算机执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。该计算机程序可以为一个软件安装包。
可以看出,本申请实施例中,开源业务函数支撑系统的伸缩决策模块能够从预设的业务函数指标数据库中查询目标业务函数实例的业务指标,据目标业务函数实例的业务指标和预设的目标业务函数实例的函数实例伸缩规则确定针对目标业务函数实例的伸缩策略,并向容器编排器模块发送伸缩策略,容器编排器模块接收来自伸缩决策模块的针对目标业务函数实例的伸缩策略,按照针对目标业务函数实例的伸缩策略进行伸缩处理,从而开源业务函数支撑系统支持单个业务函数层级的伸缩配置,能够提高开源业务函数支撑系统中进行函数实例的伸缩控制的灵活性和效率。
附图说明
图1a是本申请实施例提供的一种开源业务函数支撑系统的系统架构示意图;
图1b是本申请实施例提供的一种电子设备的结构示意图;
图1c是本申请实施例提供的一种函数实例的示例图;
图2是本申请实施例提供的一种业务函数的控制方法的流程示意图;
图3是本申请实施例提供的一种开源业务函数支撑系统的数据流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
请参阅图1a,图1a是本申请实施例提供的一种开源业务函数支撑系统10的系统架构示意图,该开源业务函数支撑系统10包括主节点100和与所述主节点100通信连接的工作节点200,所述主节点100运行有容器编排器模块110,所述工作节点200运行有伸缩决策模块210、指标分析模块220、业务请求管理模块230、网关模块240。
其中,所述主节点100的数量可以是一个或者多个,所述工作节点200的分量可以是多个,且每个工作节点200所运行的模块的类型不做唯一限定,如第一工作节点可以运行伸缩决策模块210和网关模块240,第二工作节点可以运行网关模块240和指标分析模块220、业务请求管理模块230等。
其中,所述开源业务函数支撑系统10可以是OpenFaaS框架,所述主节点100和所述工作节点200均匀性有开源的应用容器引擎Docker,所述容器编排器模块110可以是Kubernetes模块,所述网关模块240可以是应用程序接口API网关模块,所述指标分析模块220可以是FaasMetric指标模块,所述业务请求管理模块230可以是FaasWorker模块,工作节点的业务函数指标数据库可以是Prometheus指标数据库。
具体实现中,所述伸缩决策模块210,用于从预设的业务函数指标数据库中查询目标业务函数实例的业务指标,根据所述目标业务函数实例的业务指标和预设的所述目标业务函数实例的函数实例伸缩规则确定针对所述目标业务函数实例的伸缩策略,并向所述容器编排器模块110发送所述伸缩策略;
其中,所述目标业务函数实例可以包括审图业务中的图纸推断函数、图元识别函数、结构规则审查函数等,此处不做唯一限定。
所述容器编排器模块110,用于接收来自所述伸缩决策模块210的针对所述目标业务函数实例的伸缩策略,按照所述针对所述目标业务函数实例的伸缩策略进行伸缩处理。
其中,所述伸缩处理包括针对目标业务函数实例的函数实例进行扩容处理和缩容处理。
在一个可能的示例中,所述业务请求管理模块230接收业务请求形成消息队列;
所述指标分析模块220,还用于从所述业务请求管理模块230获取所述目标业务函数实例的已配置函数实例的个数,以及从所述消息队列中获取所述目标业务函数实例的业务请求的个数;以及用于根据所述目标业务函数实例的已配置函数实例的个数和所述目标业务函数实例的业务请求的个数确定所述目标业务函数实例的函数实例平均处理任务量;以及用于将所述目标业务函数实例的函数实例平均处理任务量存储在所述业务函数指标数据库中。
具体实现中,指标分析模块220能够周期性从业务请求管理模块以及消息队列获取需要的信息。业务请求管理模块230用于从网关模块240获取用户请求形成消息队列,按照一定的策略将用户请求分发给函数实例进行处理,此外,该模块还用于记录请求的处理进度,消息队列的获取进度等信息。
可见,本示例中,指标分析模块220能够从业务请求管理模块以及消息队列中获取用于生成业务函数的函数实例平均处理任务量的信息,并预存,便于查询使用。
在本可能的示例中,所述伸缩决策模块210具体用于:将所述目标业务函数实例的函数实例平均处理任务量与预设的所述目标业务函数实例的函数实例平均处理任务数量阈值进行比较;
若所述函数实例平均处理任务量大于所述函数实例平均处理任务数量阈值,则所述伸缩决策模块210确定针对所述目标业务函数实例的扩容策略;
若所述函数实例平均处理任务量小于所述函数实例平均处理任务数量阈值,则所述伸缩决策模块210确定针对所述目标业务函数实例的缩容策略。
具体实现中,在消息队列中新增业务请求,伸缩决策模板根据指标分析模块的数据判断满足扩容策略时,在工作节点上新增一个或多个处理该业务请求的业务处理函数实例。
例如,系统可以提前为目标业务函数实例配置预设的伸缩表达式,表达式包括指标分析模块220收集的指标以及指标所需满足的条件,如业务请求数/函数实例数>10,表示函数实例平均处理超过10个业务请求,需要进行函数实例的增加(扩容)。
在本可能的示例中,在所述确定针对所述目标业务函数实例的扩容策略方面,所述伸缩决策模块210具体用于:获取所述目标业务函数实例的已配置的函数实例的数量;以及使用所述函数实例平均处理任务量减去所述函数实例平均处理任务数量阈值得到平均处理任务数量超额;以及将所述平均处理任务数量超额乘以所述已配置的函数实例的数量得到总处理任务数量超额;以及将所述总处理任务数量超额除以所述函数实例平均处理任务数量阈值并取整得到需要增加的函数示例的数量;以及根据所述需要增加的函数示例的数量确定针对所述目标业务函数实例的扩容策略。
具体实现中,伸缩决策模板根据指标分析模块的数据判断某一业务函数实例的满足缩容策略时,在工作节点上删除一个或多个目标业务处理函数实例。
举例来说,假设函数实例平均处理任务数量阈值为10,函数实例平均处理任务量为20,已配置的函数实例的数量为15个,则需要增加的函数示例的数量为15×(20-10)÷10=15个。
在本可能的示例中,在所述确定针对所述目标业务函数实例的缩容策略方面,所述伸缩决策模块210具体用于:获取所述目标业务函数实例的已配置的函数实例的数量;以及使用所述函数实例平均处理任务数量阈值减去所述函数实例平均处理任务量得到平均处理任务数量差额;以及将所述平均处理任务数量差额乘以所述已配置的函数实例的数量得到总处理任务数量差额;以及将所述总处理任务数量差额除以所述函数实例平均处理任务数量阈值并取整得到需要减少的函数示例的数量;以及根据所述需要减少的函数示例的数量确定针对所述目标业务函数实例的缩容策略。
举例来说,假设函数实例平均处理任务数量阈值为20,函数实例平均处理任务量为15,已配置的函数实例的数量为20个,则需要减少的函数示例的数量为20×(20-15)÷20=5个。
可见,本示例中,系统的伸缩决策模块210能够根据函数实例平均处理任务量的情况确定精确的伸缩策略,提高精确度。
在一个可能的示例中,所述伸缩策略包括针对所述目标业务函数实例的目标函数实例的删除策略;在所述接收来自所述伸缩决策模块的针对所述目标业务函数实例的伸缩策略,按照所述针对所述目标业务函数实例的伸缩策略进行伸缩处理方面,所述容器编排器模块110具体用于:
检测所述目标函数实例在预设时段内是否已完成任务;
若在所述预设时段内已完成任务,则删除所述目标函数实例;
若在所述预设时段内未完成任务,则等待所述目标函数实例中的进程继续处理任务;
若在超过所述预设时段后仍未完成任务,则控制强制性删除所述目标函数实例。
其中,所述预设时段例如可以是30秒等。
具体实现中,所述删除所述目标函数实例,包括:关闭目标函数实例中的目标函数进程。
此外,所述关闭目标函数实例中的目标函数进程之后,可以通过watchdog反馈关闭信息。
此外,所述容器编排器还用于:通过所述网关模块控制每个工作节点删除本端预存的运行态函数实例地址集合中所述目标函数实例的地址。
在本可能的示例中,在所述删除所述目标函数实例方面,包括:通过所述网关模块240向所述目标函数实例发送第一停止指令,所述第一停止指令用于触发所述目标函数实例终止所述目标函数实例的进程。
其中,所述第一停止指令包括SIGTERM信号。
在本可能的示例中,在所述控制强制性删除所述目标函数实例方面,所述容器编排器模块110具体用于:通过所述网关模块240向所述目标函数实例发送第二停止指令,所述第二停止指令用于触发所述目标函数实例所属的操作系统终止所述目标函数实例的进程。
其中,所述第二停止指令包括SIGKILL信号。
可见,本示例中,系统缩容时,会先针对需要删除的函数实例的业务情况进行安全性控制,确保该函数实例的业务请求能够尽可能在预设时段内执行完成,从而提高缩容安全性。
在一个可能的示例中,如图1c所示,所述目标业务函数实例的每个函数实例示例的容器集合中包括运行于第一容器的业务函数进程和运行于第二容器的看门狗进程;
所述看门狗进程用于在所述业务函数进程异常情况下代理所述业务函数进程向消息队列反馈所述业务函数进程的异常信息;
所述工作节点运行的网关用于监听所述消息队列的所述业务函数进程的异常信息,并向调度中心用户设备反馈所述业务函数进程的异常信息。
可见,本示例中,由于函数实例中将业务函数进程和看门狗进程解耦到两个容器中运行,从而可以避免业务函数进程的容器运行异常而影响到看门狗进程所处的容器的状态,在第一容器的业务函数进程关闭之后,第二容器的看门狗进程可向消息队列反馈信息,可以有效避免OOM问题,提高稳定性。
可以看出,本申请实施例中,开源业务函数支撑系统的伸缩决策模块能够从预设的业务函数指标数据库中查询目标业务函数实例的业务指标,据目标业务函数实例的业务指标和预设的目标业务函数实例的函数实例伸缩规则确定针对目标业务函数实例的伸缩策略,并向容器编排器模块发送伸缩策略,容器编排器模块接收来自伸缩决策模块的针对目标业务函数实例的伸缩策略,按照针对目标业务函数实例的伸缩策略进行伸缩处理,从而开源业务函数支撑系统支持单个业务函数层级的伸缩配置,能够提高开源业务函数支撑系统中进行函数实例的伸缩控制的灵活性和效率。
请参阅图1b,图1b是本申请实施例提供的一种电子设备110的示意图。所述电子设备110包括应用处理器120、存储器130、通信模块140、以及一个或多个程序131,所述应用处理器120通过内部通信总线与所述存储器130、所述通信模块140均通信连接。
具体实现中,所述一个或多个程序131被存储在上述存储器130中,且被配置由上述应用处理器120执行,所述一个或多个程序131包括用于执行本申请实施例中任一步骤的指令。
其中,所述通信模块140可以包括蜂窝通信模块等。
其中,应用处理器120例如可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,单元和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元可以是通信模块140、收发器、收发电路等,存储单元可以是存储器130。
所述存储器130可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double datarate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
请参阅图2,图2是本申请实施例提供的一种业务函数的控制方法的流程示意图,应用于开源业务函数支撑系统,所述开源业务函数支撑系统包括主节点和与所述主节点通信连接的工作节点,所述主节点运行有容器编排器模块,所述工作节点运行有伸缩决策模块及至少一个处理目标业务请求的业务函数实例;如图所示,本业务函数的控制方法包括以下操作。
步骤201,所述伸缩决策模块从预设的业务函数指标数据库中查询目标业务函数实例的业务指标,根据所述目标业务函数实例的业务指标和预设的所述目标业务函数实例的函数实例伸缩规则确定针对所述目标业务函数实例的伸缩策略,并向所述容器编排器模块发送所述伸缩策略;所述目标业务函数实例伸缩规则因不同的业务函数实例而不同;
步骤202,所述容器编排器模块接收来自所述伸缩决策模块的针对所述目标业务函数实例的伸缩策略,按照所述针对所述目标业务函数实例的伸缩策略进行伸缩处理。
在一个可能的示例中,所述工作节点还运行有指标分析模块、业务请求管理模块;所述方法还包括:所述业务请求管理模块接收业务请求形成消息队列;所述指标分析模块从所述业务请求管理模块获取所述目标业务函数实例的已配置函数实例的个数,以及从所述消息队列中获取所述目标业务函数实例的业务请求的个数;所述指标分析模块根据所述目标业务函数实例的已配置函数实例的个数和所述目标业务函数实例的业务请求的个数确定所述目标业务函数实例的函数实例平均处理任务量;所述指标分析模块将所述目标业务函数实例的函数实例平均处理任务量存储在所述业务函数指标数据库中。
在一个可能的示例中,所述伸缩决策模块根据所述目标业务函数实例的业务指标和预设的所述目标业务函数实例的函数实例伸缩规则确定针对所述目标业务函数实例的伸缩策略,包括:所述伸缩决策模块将所述目标业务函数实例的函数实例平均处理任务量与预设的所述目标业务函数实例的函数实例平均处理任务数量阈值进行比较;若所述函数实例平均处理任务量大于所述函数实例平均处理任务数量阈值,则所述伸缩决策模块确定针对所述目标业务函数实例的扩容策略;若所述函数实例平均处理任务量小于所述函数实例平均处理任务数量阈值,则所述伸缩决策模块确定针对所述目标业务函数实例的缩容策略。
在本可能的示例中,所述伸缩决策模块确定针对所述目标业务函数实例的扩容策略,包括:所述伸缩决策模块获取所述目标业务函数实例的已配置的函数实例的数量;所述伸缩决策模块使用所述函数实例平均处理任务量减去所述函数实例平均处理任务数量阈值得到平均处理任务数量超额;所述伸缩决策模块将所述平均处理任务数量超额乘以所述已配置的函数实例的数量得到总处理任务数量超额;所述伸缩决策模块将所述总处理任务数量超额除以所述函数实例平均处理任务数量阈值并取整得到需要增加的函数示例的数量;所述伸缩决策模块根据所述需要增加的函数示例的数量确定针对所述目标业务函数实例的扩容策略。
在本可能的示例中,所述伸缩决策模块确定针对所述目标业务函数实例的缩容策略,包括:所述伸缩决策模块获取所述目标业务函数实例的已配置的函数实例的数量;所述伸缩决策模块使用所述函数实例平均处理任务数量阈值减去所述函数实例平均处理任务量得到平均处理任务数量差额;所述伸缩决策模块将所述平均处理任务数量差额乘以所述已配置的函数实例的数量得到总处理任务数量差额;所述伸缩决策模块将所述总处理任务数量差额除以所述函数实例平均处理任务数量阈值并取整得到需要减少的函数示例的数量;所述伸缩决策模块根据所述需要减少的函数示例的数量确定针对所述目标业务函数实例的缩容策略。
在一个可能的示例中,所述伸缩策略包括针对所述目标业务函数实例的目标函数实例的删除策略;所述容器编排器模块接收来自所述伸缩决策模块的针对所述目标业务函数实例的伸缩策略,按照所述针对所述目标业务函数实例的伸缩策略进行伸缩处理,包括:所述容器编排器检测所述目标函数实例在预设时段内是否已完成任务;
若在所述预设时段内已完成任务,则所述容器编排器模块控制关闭所述目标函数实例中的进程;
若在所述预设时段内未完成任务,则所述容器编排器模块等待所述目标函数实例中的进程继续处理任务;
若在超过所述预设时段后仍未完成任务,则所述容器编排器模块控制强制性删除所述目标函数实例中的进程。
此外,所述方法还包括:所述容器编排器通过所述网关模块控制每个工作节点删除本端预存的运行态函数实例地址集合中所述目标函数实例的地址。
在本可能的示例中,所述工作节点还运行有网关模块;所述容器编排器模块控制关闭所述目标函数实例中的进程,包括:所述容器编排器通过所述网关模块向所述目标函数实例发送第一停止指令,所述第一停止指令用于触发所述目标函数实例终止所述目标函数实例的进程。
在本可能的示例中,所述容器编排器模块控制强制性删除所述目标函数实例中的进程,包括:所述容器编排器通过所述网关模块向所述目标函数实例发送第二停止指令,所述第二停止指令用于触发所述目标函数实例所属的操作系统终止所述目标函数实例的进程。
在一个可能的示例中,所述目标业务函数实例的每个函数实例的容器集合中包括运行于第一容器的业务函数进程和运行于第二容器的看门狗进程;
所述看门狗进程用于在所述业务函数进程异常情况下代理所述业务函数进程向消息队列反馈所述业务函数进程的异常信息;
所述工作节点运行的网关用于监听所述消息队列的所述业务函数进程的异常信息,并向调度中心用户设备反馈所述业务函数进程的异常信息。
如图3所示,本申请提供的开源业务函数支撑系统的数据流程示意图。
(1)本申请实施例的请求流程如下:
调度中心模块首先向网关FaasGateway(Faas:功能作为服务,Functions as aService的简称)模块发送消息1(例如:用户请求);
网关FaasGateway模块接收消息1,向消息队列发送消息2(图示步骤①,例如:用户请求);
消息队列接收消息2,向FaasWorker(Worker:工作节点)模块发送消息3(图示步骤②,例如:用户请求);
FaasWorker模块接收消息3,向图纸推断函数Funciotn发送消息4(图示步骤③,例如:分配后的用户请求);具体从消息队列中获取用户请求,按照一定的业务分配策略将用户请求分发给业务函数实例进行处理。此外,该模块记录请求的处理进度,消息队列的获取进度等信息。
图纸推断函数Funciotn接收消息4,由对应的函数实例(Function Instance)处理后,向消息队列发送消息5(图示步骤④,例如:业务处理结果)。
消息队列接收消息5,向网关FassGateway返回消息6(图示步骤⑤,例如:业务处理结果)。
(2)现有的伸缩方案架构中,
采用报警管理器AlertManager伸缩组件模块管理弹性伸缩事件,时间规则通过伸缩规则配置文件进行配置,伸缩规则配置文件可以使用promethus语法进行指标阈值设置,一旦超过阈值就会触发告警,进而进行弹性伸缩。伸缩规则配置文件作为一个全局的配置,无法对每个函数定制。
本申请实施例的伸缩方案架构中,keda(中文直译:科达)伸缩组件模块能够实现针对每个函数进行缩容和扩容,具体将伸缩规则通知到容器编排器模块去实现,FaasMetric指标模块能够从FaasWorker模块、消息队列收集业务相关的实时指标,并将指标以应用程序接口API调用的方式对外部模块同步。FaasMetric指标数据库模块能够存储业务分配策略和业务相关的指标的数据。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,可轻易想到变化或替换,均可作各种更动与修改,包含上述不同功能、实施步骤的组合,包含软件和硬件的实施方式,均在本发明的保护范围。
Claims (8)
1.一种开源业务函数支撑系统,其特征在于,包括主节点和与所述主节点通信连接的工作节点,所述主节点运行有容器编排器模块,所述工作节点运行有伸缩决策模块及至少一个处理目标业务请求的业务函数实例;
所述伸缩决策模块,用于从预设的业务函数指标数据库中查询目标业务函数实例的业务指标,根据所述目标业务函数实例的业务指标和预设的所述目标业务函数实例的函数实例伸缩规则确定针对所述目标业务函数实例的伸缩策略,具体包括如下步骤:将所述目标业务函数实例的函数实例平均处理任务量与预设的所述目标业务函数实例的函数实例平均处理任务数量阈值进行比较;若所述函数实例平均处理任务量大于所述函数实例平均处理任务数量阈值,则确定针对所述目标业务函数实例的扩容策略,其中,所述目标业务函数实例包括以下至少一种:审图业务中的图纸推断函数、图元识别函数、结构规则审查函数;若所述函数实例平均处理任务量小于所述函数实例平均处理任务数量阈值,则确定针对所述目标业务函数实例的缩容策略;向所述容器编排器模块发送所述伸缩策略;所述目标业务函数实例伸缩规则因不同的业务函数实例而不同;
所述容器编排器模块,用于接收来自所述伸缩决策模块的针对所述目标业务函数实例的伸缩策略,其中,所述伸缩策略包括针对所述目标业务函数实例的目标函数实例的删除策略;以及用于,按照所述针对所述目标业务函数实例的伸缩策略进行伸缩处理,若所述伸缩策略为所述删除策略,则所述伸缩处理具体包括如下步骤:检测所述目标函数实例在预设时段内是否已完成任务;若在所述预设时段内已完成任务,则删除所述目标函数实例;若在所述预设时段内未完成任务,则等待所述目标函数实例中的进程继续处理任务;若在超过所述预设时段后仍未完成任务,则控制强制性删除所述目标函数实例。
2.根据权利要求1所述的系统,其特征在于,所述工作节点还运行有指标分析模块、业务请求管理模块;
所述业务请求管理模块接收业务请求形成消息队列;
所述指标分析模块,用于从所述业务请求管理模块获取所述目标业务函数实例的已配置函数实例的个数,以及从所述消息队列中获取所述目标业务函数实例的业务请求的个数;以及用于根据所述目标业务函数实例的已配置函数实例的个数和所述目标业务函数实例的业务请求的个数确定所述目标业务函数实例的函数实例平均处理任务量;以及用于将所述目标业务函数实例的函数实例平均处理任务量存储在所述业务函数指标数据库中。
3.根据权利要求2所述的系统,其特征在于,在所述确定针对所述目标业务函数实例的扩容策略方面,所述伸缩决策模块具体用于:
获取所述目标业务函数实例的已配置的函数实例的数量;
使用所述函数实例平均处理任务量减去所述函数实例平均处理任务数量阈值得到平均处理任务数量超额;
将所述平均处理任务数量超额乘以所述已配置的函数实例的数量得到总处理任务数量超额;
将所述总处理任务数量超额除以所述函数实例平均处理任务数量阈值并取整得到需要增加的函数示例的数量;
根据所述需要增加的函数示例的数量确定针对所述目标业务函数实例的扩容策略。
4.根据权利要求3所述的系统,其特征在于,在所述确定针对所述目标业务函数实例的缩容策略方面,所述伸缩决策模块具体用于:
获取所述目标业务函数实例的已配置的函数实例的数量;
使用所述函数实例平均处理任务数量阈值减去所述函数实例平均处理任务量得到平均处理任务数量差额;
将所述平均处理任务数量差额乘以所述已配置的函数实例的数量得到总处理任务数量差额;
将所述总处理任务数量差额除以所述函数实例平均处理任务数量阈值并取整得到需要减少的函数示例的数量;
根据所述需要减少的函数示例的数量确定针对所述目标业务函数实例的缩容策略。
5.根据权利要求1所述的系统,其特征在于,所述工作节点还运行有网关模块;在所述删除所述目标函数实例方面,包括:
通过所述网关模块向所述目标函数实例发送第一停止指令,所述第一停止指令用于触发所述目标函数实例终止所述目标函数实例的进程。
6.根据权利要求5所述的系统,其特征在于,所述工作节点还运行有网关模块;在所述控制强制性删除所述目标函数实例方面,所述容器编排器模块具体用于:
通过所述网关模块向所述目标函数实例发送第二停止指令,所述第二停止指令用于触发所述目标函数实例所属的操作系统终止所述目标函数实例的进程。
7.根据权利要求1-6任一项所述的系统,其特征在于,所述目标业务函数实例的每个函数实例的容器集合中包括运行于第一容器的业务函数进程和运行于第二容器的看门狗进程;
所述看门狗进程用于在所述业务函数进程异常情况下代理所述业务函数进程向消息队列反馈所述业务函数进程的异常信息;
所述工作节点运行的网关用于监听所述消息队列的所述业务函数进程的异常信息,并向调度中心用户设备反馈所述业务函数进程的异常信息。
8.一种业务函数的控制方法,其特征在于,应用于开源业务函数支撑系统,所述开源业务函数支撑系统包括主节点和与所述主节点通信连接的工作节点,所述主节点运行有容器编排器模块,所述工作节点运行有伸缩决策模块及至少一个处理目标业务请求的业务函数实例;所述方法包括:
所述伸缩决策模块从预设的业务函数指标数据库中查询目标业务函数实例的业务指标,根据所述目标业务函数实例的业务指标和预设的所述目标业务函数实例的函数实例伸缩规则确定针对所述目标业务函数实例的伸缩策略,具体包括如下步骤:将所述目标业务函数实例的函数实例平均处理任务量与预设的所述目标业务函数实例的函数实例平均处理任务数量阈值进行比较;若所述函数实例平均处理任务量大于所述函数实例平均处理任务数量阈值,则确定针对所述目标业务函数实例的扩容策略,其中,所述目标业务函数实例包括以下至少一种:审图业务中的图纸推断函数、图元识别函数、结构规则审查函数;若所述函数实例平均处理任务量小于所述函数实例平均处理任务数量阈值,则确定针对所述目标业务函数实例的缩容策略;向所述容器编排器模块发送所述伸缩策略;所述目标业务函数实例伸缩规则因不同的业务函数实例而不同;
所述容器编排器模块接收来自所述伸缩决策模块的针对所述目标业务函数实例的伸缩策略,其中,所述伸缩策略包括针对所述目标业务函数实例的目标函数实例的删除策略;以及用于,按照所述针对所述目标业务函数实例的伸缩策略进行伸缩处理,若所述伸缩策略为所述删除策略,则所述伸缩处理具体包括如下步骤:检测所述目标函数实例在预设时段内是否已完成任务;若在所述预设时段内已完成任务,则删除所述目标函数实例;若在所述预设时段内未完成任务,则等待所述目标函数实例中的进程继续处理任务;若在超过所述预设时段后仍未完成任务,则控制强制性删除所述目标函数实例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110911307.7A CN113792192B (zh) | 2021-08-09 | 2021-08-09 | 开源业务函数支撑系统及业务函数的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110911307.7A CN113792192B (zh) | 2021-08-09 | 2021-08-09 | 开源业务函数支撑系统及业务函数的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113792192A CN113792192A (zh) | 2021-12-14 |
CN113792192B true CN113792192B (zh) | 2022-12-30 |
Family
ID=78875873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110911307.7A Active CN113792192B (zh) | 2021-08-09 | 2021-08-09 | 开源业务函数支撑系统及业务函数的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113792192B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067862A (zh) * | 2018-07-23 | 2018-12-21 | 北京邮电大学 | API Gateway自动伸缩的方法与装置 |
CN112199194A (zh) * | 2020-10-14 | 2021-01-08 | 广州虎牙科技有限公司 | 基于容器集群的资源调度方法、装置、设备和存储介质 |
CN112559173A (zh) * | 2020-12-07 | 2021-03-26 | 北京知道创宇信息技术股份有限公司 | 资源调节方法、装置、电子设备和可读存储介质 |
CN112955869A (zh) * | 2018-11-08 | 2021-06-11 | 英特尔公司 | 功能即服务(faas)系统增强 |
CN113110939A (zh) * | 2021-05-12 | 2021-07-13 | 腾讯数码(深圳)有限公司 | 运行数据的处理方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10944689B2 (en) * | 2018-06-29 | 2021-03-09 | Intel Corporation | Scalable edge computing |
US10908977B1 (en) * | 2019-10-03 | 2021-02-02 | Splunk Inc. | Efficient message queuing service |
CN112506444A (zh) * | 2020-12-28 | 2021-03-16 | 南方电网深圳数字电网研究院有限公司 | 基于Kubernetes集群的扩缩容控制方法和装置、电子设备 |
-
2021
- 2021-08-09 CN CN202110911307.7A patent/CN113792192B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067862A (zh) * | 2018-07-23 | 2018-12-21 | 北京邮电大学 | API Gateway自动伸缩的方法与装置 |
CN112955869A (zh) * | 2018-11-08 | 2021-06-11 | 英特尔公司 | 功能即服务(faas)系统增强 |
CN112199194A (zh) * | 2020-10-14 | 2021-01-08 | 广州虎牙科技有限公司 | 基于容器集群的资源调度方法、装置、设备和存储介质 |
CN112559173A (zh) * | 2020-12-07 | 2021-03-26 | 北京知道创宇信息技术股份有限公司 | 资源调节方法、装置、电子设备和可读存储介质 |
CN113110939A (zh) * | 2021-05-12 | 2021-07-13 | 腾讯数码(深圳)有限公司 | 运行数据的处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113792192A (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704020B2 (en) | Precisely tracking memory usage in multi-process computing environment | |
US10242022B1 (en) | Systems and methods for managing delayed allocation on clustered file systems | |
JP6637620B2 (ja) | エージェント割振りの方法、装置、サーバーおよび記録媒体 | |
CN109787908B (zh) | 服务器限流方法、系统、计算机设备及存储介质 | |
CN108509501B (zh) | 一种查询处理方法、服务器及计算机可读存储介质 | |
CN113010260A (zh) | 容器数量弹性伸缩方法以及容器数量弹性伸缩方法系统 | |
CN111104208B (zh) | 进程调度管理方法、装置、计算机设备及存储介质 | |
CN110704177B (zh) | 计算任务处理方法、装置、计算机设备和存储介质 | |
CN111078733A (zh) | 批量任务处理方法、装置、计算机设备和存储介质 | |
US8499138B2 (en) | Demand-based memory management of non-pagable data storage | |
CN111597272A (zh) | 工程造价数据的存储方法、装置、数据服务器和存储介质 | |
CN108984754B (zh) | 客户信息更新方法、装置、计算机设备及存储介质 | |
CN110659272A (zh) | 数据清洗方法和系统 | |
CN113792192B (zh) | 开源业务函数支撑系统及业务函数的控制方法 | |
CN113065887A (zh) | 资源处理方法、装置、计算机设备和存储介质 | |
CN110825732A (zh) | 数据查询方法、装置、计算机设备和可读存储介质 | |
US20230063541A1 (en) | Determining computer resource usage at multiple levels of a container orchestration system hierarchy | |
CN111045790A (zh) | 虚拟机部署方法及装置 | |
CN106888244B (zh) | 一种业务处理方法及装置 | |
US9652393B1 (en) | Managing shared memory in database server | |
CN111523002B (zh) | 一种主键分配方法、装置、服务器及存储介质 | |
CN113901018A (zh) | 一种待迁移文件识别方法、装置、计算机设备及存储介质 | |
CN113515376A (zh) | 一种内存管理方法、装置、电子设备及存储介质 | |
KR101383793B1 (ko) | 시스템 온 칩에서 메모리 할당 방법 및 장치 | |
CN110764916B (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 |