CN110764903B - 弹性执行热容器方法、装置、设备和存储介质 - Google Patents

弹性执行热容器方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN110764903B
CN110764903B CN201910886055.XA CN201910886055A CN110764903B CN 110764903 B CN110764903 B CN 110764903B CN 201910886055 A CN201910886055 A CN 201910886055A CN 110764903 B CN110764903 B CN 110764903B
Authority
CN
China
Prior art keywords
container
target
queue
thermal
hot
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
Application number
CN201910886055.XA
Other languages
English (en)
Other versions
CN110764903A (zh
Inventor
宋杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910886055.XA priority Critical patent/CN110764903B/zh
Priority to PCT/CN2019/117876 priority patent/WO2021051576A1/zh
Publication of CN110764903A publication Critical patent/CN110764903A/zh
Application granted granted Critical
Publication of CN110764903B publication Critical patent/CN110764903B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及运维领域,尤其涉及一种弹性执行热容器方法、装置、设备和存储介质。方法包括:创建预热容器以及预热队列;根据所述预热容器创建初始热容器,通过将初始热容器加上预置标识ID得到目标热容器,并将目标热容器放至热队列中;执行存储在目标热容器中的可执行脚本,并计算可执行脚本的运行结果,基于运行结果在热队列中提取目标热容器并启用目标热容器;若目标热容器在超时时长内接收到第一请求,则将目标热容器的状态设置为运行中,并处理第一请求;计算目标热容器的运行时长,得到容器存在时长;若容器存在时长大于或等于容器阈值时长,则通过所预置ID索引到目标热容器,并释放目标热容器。以解决波谷时间段资源闲置浪费。

Description

弹性执行热容器方法、装置、设备和存储介质
技术领域
本申请涉及运维领域,尤其涉及一种弹性执行热容器方法、装置、设备和存储介质。
背景技术
规则引擎由推理引擎发展而来,嵌入到应用程序中,将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决。规则引擎经常使用在信用卡额度审批、保险承保、风险控制等场景。已有的规则引擎平台,支持用户在线编写业务规则,但是用户通过热队列(warmpool)搭建热容器时还需要准备规则运行环境,搭建相对复杂,同时规则的使用频率存在波峰波谷,从而导致资源分配的不合理。
发明内容
本申请提供了一种通过配置弹性执行热容器的方法,能够解决现有技术中资源分配不合理的问题。
第一方面,本申请提供一种弹性执行热容器的方法,包括:
接收用户的访问请求;
根据所述用户的访问请求创建预热容器以及预热队列,所述预热容器用于部署运行环境,所述预热队列是指用于存放所述预热容器的队列;
根据所述预热容器创建初始热容器,通过将所述初始热容器加上预置标识ID得到目标热容器,并将所述目标热容器放至热队列中,所述热队列是指用于存放所述目标热容器的队列,所述初始热容器是指运行环境以及运行规则;
执行存储在所述目标热容器中的可执行脚本,并计算所述可执行脚本的运行结果,基于所述运行结果在所述热队列中提取所述目标热容器并启用所述目标热容器,所述可执行脚本用于计算所述目标热容器中可用的资源,所述资源包括图形处理器资源、中央处理器资源、内存资源、缓存资源、存储资源中的至少一种;
在所述运行结果返回后,将所述目标热容器的状态设置为准备中,并根据所述可用的资源或用户输入的参数设置超时时长与容器阈值时长,所述超时时长小于所述容器阈值时长,所述超时时长是指响应的最大时长,所述容器阈值时长是指所述容器允许存在的最大时长;
若所述目标热容器在所述超时时长内没有接收到第一请求,则将所述目标热容器的状态设置为暂停,并将所述目标热容器存放至所述热队列;所述第一请求是指用户访问所述目标热容器的请求;
若所述目标热容器在所述超时时长内接收到所述第一请求,则将所述目标热容器的状态设置为运行中,并处理所述第一请求;
计算所述目标热容器的运行时长,得到容器存在时长;
若所述容器存在时长大于或等于所述容器阈值时长,则通过所述预置ID索引到所述目标热容器,并释放所述目标热容器。
在一些可能的设计中,所述执行存储在所述目标热容器中的可执行脚本,并计算所述可执行脚本的运行结果,基于所述运行结果在所述热队列中提取所述目标热容器并启用所述目标热容器,包括:
通过可执行脚本将中央处理器和内存的值进行Base64运算后作为所述预热队列的键key,基于所述key从所述预热队列中查询是否存在所述预热容器;
若存在所述预热容器,则通过所述预热容器获取所述目标热容器的ID,基于所述目标热容器的ID提取并启动所述目标热容器;
创建一个与所述目标热容器具有相同属性的热容器存放至所述热队列;
或者,
根据命名空间、所述可执行脚本以及版本号计算所述目标热容器的ID,并基于所述目标热容器的ID查询所述热队列中存在的目标热容器,提取并启用存在的所述目标热容器。
在一些可能的设计中,所述根据命名空间、所述可执行脚本以及版本号计算所述目标热容器的ID,并基于所述目标热容器的ID查询所述热队列中存在的目标热容器,提取并启用存在的所述目标热容器,包括:
获取所述可执行脚本的运行结果;
基于所述运行结果中对应的资源数量及资源类型,确定预置设备中的可用资源;
调用与所述可执行脚本的运行结果相应的命名空间、所述可执行脚本以及版本号,计算得到所述目标热容器的ID,查询所述热队列中存在的目标热容器;
基于所述可用资源提取并启用所述目标热容器。
在一些可能的设计中,所述创建一个与所述目标热容器具有相同属性的热容器存放至所述热队列,包括:
将所述目标热容器放入所述热队列中,所述热队列包括并行处理队列和串行处理队列;
获取所述热队列中的头节点链表,所述头节点链表为所述热队列中每个key对应的消息链表的节点连接在一起的链表,所述头节点链表包括所述并行处理队列中的并行头节点链表以及串行处理队列中的串行头节点链表;
基于每个key处理所述串行头节点链表或者所述并行头节点链表。
在一些可能的设计中,所述基于所述运行结果在所述热队列中提取所述目标热容器并启用所述目标热容器,包括:
当在预设时长中接收到的所述用户的访问请求数量大于第一阈值时,采用第一阈值个数的线程池启用所述目标热容器;
当在预设时长中接收到的所述用户的访问请求数量小于或等于第一阈值时,根据所述到所述用户的访问请求个数的线程池启用所述目标热容器。
在一些可能的设计中,所述接收用户的访问请求之后,所述根据所述用户的访问请求创建预热容器以及预热队列之前,所述方法还包括:
分析用户的访问信息,并判断用户是否为非正常用户;
若所述用户的访问信息中出现不良访问记录,则确定所述用户为非正常用户,并禁止所述用户进行访问。
在一些可能的设计中,所述分析用户的访问信息,并判断用户是否为非正常用户之前,所述方法还包括:
响应所述用户的访问请求,获取所述用户的访问请求所中携带的数据;
将所述携带的数据写入后端的存储器中,向所述用户的访问请求的发送端反馈请求完成指令。
第二方面,本申请提供一种弹性执行热容器的装置,具有实现对应于上述第一方面提供的弹性执行热容器的平台的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
所述弹性执行热容器装置包括:
输入输出模块,用于接收用户的访问请求;
处理模块:用于根据所述用户的访问请求创建预热容器以及预热队列,所述预热容器用于部署运行环境,所述预热队列是指用于存放所述预热容器的队列;根据所述预热容器创建初始热容器,通过将所述初始热容器加上预置标识ID得到目标热容器,并将所述目标热容器放至热队列中,所述热队列是指用于存放所述目标热容器的队列,所述初始热容器是指运行环境以及运行规则;执行存储在所述目标热容器中的可执行脚本,并计算所述可执行脚本的运行结果,基于所述运行结果在所述热队列中提取所述目标热容器并启用所述目标热容器,所述可执行脚本用于计算所述目标热容器中可用的资源,所述资源包括图形处理器资源、中央处理器资源、内存资源、缓存资源、存储资源中的至少一种;在所述运行结果返回后,将所述目标热容器的状态设置为准备中,并根据所述可用的资源或用户输入的参数设置超时时长与容器阈值时长,所述超时时长小于所述容器阈值时长,所述超时时长是指响应的最大时长,所述容器阈值时长是指所述容器允许存在的最大时长;若所述目标热容器在所述超时时长内没有接收到第一请求,则将所述目标热容器的状态设置为暂停,并将所述目标热容器存放至所述热队列;所述第一请求是指用户访问所述目标热容器的请求;若所述目标热容器在所述超时时长内接收到所述第一请求,则将所述目标热容器的状态设置为运行中,并处理所述第一请求;计算所述目标热容器的运行时长,得到容器存在时长;若所述容器存在时长大于或等于所述容器阈值时长,则通过所述预置ID索引到所述目标热容器,并释放所述目标热容器。
在一些可能的设计中,所述处理模块还用于:
通过可执行脚本将中央处理器和内存的值进行Base64运算后作为所述预热队列的键key,基于所述key从所述预热队列中查询是否存在所述预热容器;
若存在所述预热容器,则通过所述预热容器获取所述目标热容器的ID,基于所述目标热容器的ID提取并启动所述目标热容器;
创建一个与所述目标热容器具有相同属性的热容器存放至所述热队列;
或者,
根据命名空间、所述可执行脚本以及版本号计算所述目标热容器的ID,并基于所述目标热容器的ID查询所述热队列中存在的目标热容器,提取并启用存在的所述目标热容器。
在一些可能的设计中,所述处理模块还用于:
获取所述可执行脚本的运行结果;
基于所述运行结果中对应的资源数量及资源类型,确定预置设备中的可用资源;
调用与所述可执行脚本的运行结果相应的命名空间、所述可执行脚本以及版本号,计算得到所述目标热容器的ID,查询所述热队列中存在的目标热容器;
基于所述可用资源提取并启用所述目标热容器。
在一些可能的设计中,所述处理模块还用于:
所述目标热容器放入所述热队列中,所述热队列包括并行处理队列和串行处理队列;
获取所述热队列中的头节点链表,所述头节点链表为所述热队列中每个key对应的消息链表的节点连接在一起的链表,所述头节点链表包括所述并行处理队列中的并行头节点链表以及串行处理队列中的串行头节点链表;
在一些可能的设计中,所述处理模块还用于:
当在预设时长中接收到的所述用户的访问请求数量大于第一阈值时,采用第一阈值个数的线程池启用所述目标热容器;
当在预设时长中接收到的所述用户的访问请求数量小于或等于第一阈值时,根据所述到所述用户的访问请求个数的线程池启用所述目标热容器。
在一些可能的设计中,所述处理模块还用于:
分析用户的访问信息,并判断用户是否为非正常用户;
若所述用户的访问信息中出现不良访问记录,则确定所述用户为非正常用户,并禁止所述用户进行访问。
在一些可能的设计中,所述处理模块还用于:
响应所述用户的访问请求,获取所述用户的访问请求所中携带的数据;
将所述携带的数据写入后端的存储器中,向所述用户的访问请求的发送端反馈请求完成指令。
本申请又一方面提供了一种弹性执行热容器的设备,其包括至少一个连接的处理器、存储器、输入输出单元,其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行上述各方面所述的方法。
本申请又一方面提供了一种计算机存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
相较于现有技术,本申请通过设置容器阈值时长以及预热队列,让用户从资源管理释放出来,高效率节约人力成本。通过高可靠的规则弹性执行方法,灵活调度系统资源,让多个租户复用相同配置的热容器,通过容器阈值时长解决波谷时间段资源闲置浪费,从容应对峰值流量。
附图说明
图1为本申请实施例中弹性执行热容器的方法的流程示意图;
图2为本申请实施例中弹性执行热容器的装置的结构示意图;
图3为本申请实施例中计算机设备的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行。
为解决上述技术问题,本申请主要提供以下技术方案
本发明实施例通过设置有效时长以及预热队列,让用户从资源管理释放出来,高效率节约人力成本。通过高可靠的规则弹性执行方法,灵活调度系统资源,让多个租户复用资源,解决波谷时间段资源闲置浪费,支持弹性扩容,从容应对峰值流量。
请参照图1,以下对本申请提供一种弹性执行热容器的方法进行举例说明,所述方法包括:
101、接收用户的访问请求。
用户的访问请求至少包括统一资源定位符、客户端的网际协议地址、储存在用户本地终端上的数据、用户标识和超文本传输协议报头中的来源链接字段。
102、根据用户的访问请求创建预热容器以及预热队列。
预热容器用于部署运行环境,预热队列是指用于存放预热容器的队列。
服务器通过使用预热容器,减少容器的启动时间。
103、据预热容器创建初始热容器,通过将初始热容器加上预置标识ID得到目标热容器,并将目标热容器放至热队列中。
热队列是指用于存放目标热容器的队列,初始热容器是指运行环境以及运行规则。
运行环境是指热容器运行所需要的硬件支持。例如windows运行环境,Linux运行环境。
104、执行存储在目标热容器中的可执行脚本,并计算可执行脚本的运行结果,基于运行结果在热队列中提取目标热容器并启用目标热容器。
可执行脚本用于计算目标热容器中可用的资源,资源包括图形处理器资源、中央处理器资源、内存资源、缓存资源、存储资源中的至少一种。
服务器通过容器IP访问目标热容器并初始化接口,将可执行脚本放入容器中执行。中央处理器资源用于解释计算机指令以及处理计算机软件中的数据。内存资源在运行状态时内存中可存储数据,停止运行后将自动清空其中的所有数据。存储资源用于存储数据。形处理器资源用于显示信息进行转换驱动。
105、在运行结果返回后,将目标热容器的状态设置为准备中,并根据可用的资源或用户输入的参数设置超时时长与容器阈值时长,超时时长小于容器阈值时长;
超时时长是指响应的最大时长,容器阈值时长是指容器允许存在的最大时长;
例如用户输入主机名8C,最大响应时间不超过1分钟,需要持续时间2天的容器,则根据用户的输入生成对应的容器。
106、若目标热容器在超时时长内没有接收到第一请求,则将目标热容器的状态设置为暂停,并将目标热容器存放至热队列。
第一请求是指用户访问目标热容器的请求。
107、若目标热容器在超时时长内接收到第一请求,则将目标热容器的状态设置为运行中,并处理第一请求。
第一请求是指用户访问所述目标热容器的请求。
服务器通过将容器状态设置为运行中,防止请求要被执行时,其他请求访问导致容器运行被打断。
108、计算目标热容器的运行时长,得到容器存在时长。
服务器通过获取目标热容器的历史运行时长,以及通过计时器获取此次的运行时长,通过将这将获取的两个数做累加,以得到容器的存在时长。
109、若容器存在时长大于或等于容器阈值时长,则通过预置ID索引到目标热容器,并释放目标热容器。
释放目标热容器是指将容器销毁。
本申请通过设置容器阈值时长以及预热队列,让用户从资源管理释放出来,高效率节约人力成本。通过高可靠的规则弹性执行方法,灵活调度系统资源,让多个租户复用相同配置的热容器,通过容器阈值时长解决波谷时间段资源闲置浪费,从容应对峰值流量。
一些实施方式中,执行存储在目标热容器中的可执行脚本,并计算可执行脚本的运行结果,基于运行结果在热队列中提取目标热容器并启用目标热容器,包括:
通过可执行脚本将中央处理器和内存的值进行Base64运算后作为预热队列的键key,基于key从预热队列中查询是否存在预热容器;
若存在预热容器,则通过预热容器获取目标热容器的ID,基于目标热容器的ID提取并启动目标热容器;
创建一个与目标热容器具有相同属性的热容器存放至热队列;
或者,
根据命名空间、可执行脚本以及版本号计算目标热容器的ID,并基于目标热容器的ID查询热队列中存在的目标热容器,提取并启用存在的目标热容器。
上述实施方式中,以主机名4C,内存8G的服务器为例,内存8G的服务器为例,将4C以及8G转换成2进制,通过编码表得到计算后得到NGM4Zw==,即NGM4Zw==,NGM4Zw==为预热队列中的key,通过这个key查询预热队列中是否存在对应的预热容器,通过对应的预热容器调取目标热容器ID启动目标热容器,如果没有对应的热容器,则通过key创建对应主机名和对应内存的目标热容器。
通过预热容器加快了热容器的创建,以及通过BASE64对容器信息进行加密,以增加容器的安全性。
一些实施方式中,根据命名空间、可执行脚本以及版本号计算目标热容器的ID,并基于目标热容器的ID查询热队列中存在的目标热容器,提取并启用存在的目标热容器,包括:
获取可执行脚本的运行结果;
基于运行结果中对应的资源数量及资源类型,确定预置设备中的可用资源;
调用与可执行脚本的运行结果相应的命名空间、可执行脚本以及版本号,计算得到目标热容器的ID,查询热队列中存在的目标热容器;
基于可用资源提取并启用目标热容器。
上述实施方式中,以用户请求中,用户请求创建4G内存的容器为例,服务器根据资源的命名空间,服务器判断是否存在Memory:4G的热容器,当服务器判断存在则直接启用该热容器,若不存在则调用。
一些实施方式中,创建一个与目标热容器具有相同属性的热容器存放至热队列,包括:
将目标热容器放入热队列中,热队列包括并行处理队列和串行处理队列;
获取热队列中的头节点链表,头节点链表为热队列中每个key对应的消息链表的节点连接在一起的链表,头节点链表包括并行处理队列中的并行头节点链表以及串行处理队列中的串行头节点链表;
基于每个key处理串行头节点链表或者并行头节点链表。
上述实施方式中,服务器通过用户请求选择串行处理或者并行处理,可以减少企业支出和减少用户的等待时间。
一些实施方式中,基于运行结果在热队列中提取目标热容器并启用目标热容器,包括:
当在预设时长中接收到的用户的访问请求数量大于第一阈值时,采用第一阈值个数的线程池启用目标热容器;
当在预设时长中接收到的用户的访问请求数量小于或等于第一阈值时,根据到用户的访问请求个数的线程池启用目标热容器。
上述实施方式中,通过当同时多个用户要调用热容器时,服务器通过多线程技术提高容器的生成速度。
一些实施方式中,接收用户的访问请求之后,根据用户的访问请求创建预热容器以及预热队列之前,方法还包括:
分析用户的访问信息,并判断用户是否为非正常用户;
若用户的访问信息中出现不良访问记录,则确定用户为非正常用户,并禁止用户进行访问。
上述实施方式中,若服务器发现用户不是正常访问,则拒绝用户访问,保证目标热容器的正常运行和启动。以维护服务器正常运行。
一些实施方式中,分析用户的访问信息,并判断用户是否为非正常用户之前,方法还包括:
响应用户的访问请求,获取用户的访问请求所中携带的数据;
将携带的数据写入后端的存储器中,向用户的访问请求的发送端反馈请求完成指令。
上述实施方式中,服务器通过上述方式,可以将用户输入的数据保存至数据库中。
如图2所示的一种弹性执行热容器的装置20的结构示意图,其可应用于弹性执行热容器。本申请实施例中的弹性执行热容器的装置能够实现对应于上述图1所对应的实施例中所执行的弹性执行热容器的方法的步骤。弹性执行热容器的装置20实现的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。所述弹性执行热容器的装置可包括输入输出模块201和处理模块202,所述处理模块202和输入输出模块201的功能实现可参考图1所对应的实施例中所执行的操作,此处不作赘述。输入输出模块201可用于控制所述输入输出模块201的输入、输出以及获取操作。
一些实施方式中,所述输入输出模块201可用于接收用户的访问请求。
所述处理模块202可用于根据所述用户的访问请求创建预热容器以及预热队列,所述预热容器用于部署运行环境,所述预热队列是指用于存放所述预热容器的队列;根据所述预热容器创建初始热容器,通过将所述初始热容器加上预置标识ID得到目标热容器,并将所述目标热容器放至热队列中,所述热队列是指用于存放所述目标热容器的队列,所述初始热容器是指运行环境以及运行规则;执行存储在所述目标热容器中的可执行脚本,并计算所述可执行脚本的运行结果,基于所述运行结果在所述热队列中提取所述目标热容器并启用所述目标热容器,所述可执行脚本用于计算所述目标热容器中可用的资源,所述资源包括图形处理器资源、中央处理器资源、内存资源、缓存资源、存储资源中的至少一种;在所述运行结果返回后,将所述目标热容器的状态设置为准备中,并根据所述可用的资源或用户输入的参数设置超时时长与容器阈值时长,所述超时时长小于所述容器阈值时长,所述超时时长是指响应的最大时长,所述容器阈值时长是指所述容器允许存在的最大时长;若所述目标热容器在所述超时时长内没有接收到第一请求,则将所述目标热容器的状态设置为暂停,并将所述目标热容器存放至所述热队列;若所述目标热容器在所述超时时长内接收到所述第一请求,则将所述目标热容器的状态设置为运行中,并处理所述第一请求,所述第一请求是指用户访问所述目标热容器的请求;计算所述目标热容器的运行时长,得到容器存在时长;若所述容器存在时长大于或等于所述容器阈值时长,则通过所述预置ID索引到所述目标热容器,并释放所述目标热容器。
一些实施方式中,所述处理模块202还用于:
通过可执行脚本将中央处理器和内存的值进行Base64运算后作为所述预热队列的键key,基于所述key从所述预热队列中查询是否存在所述预热容器;
若存在所述预热容器,则通过所述预热容器获取所述目标热容器的ID,基于所述目标热容器的ID提取并启动所述目标热容器;
创建一个与所述目标热容器具有相同属性的热容器存放至所述热队列;
或者,
根据命名空间、所述可执行脚本以及版本号计算所述目标热容器的ID,并基于所述目标热容器的ID查询所述热队列中存在的目标热容器,提取并启用存在的所述目标热容器。
一些实施方式中,所述处理模块202还用于:
获取所述可执行脚本的运行结果;
基于所述运行结果中对应的资源数量及资源类型,确定预置设备中的可用资源;
调用与所述可执行脚本的运行结果相应的命名空间、所述可执行脚本以及版本号,计算得到所述目标热容器的ID,查询所述热队列中存在的目标热容器;
基于所述可用资源提取并启用所述目标热容器。
一些实施方式中,所述处理模块202还用于:
将所述目标热容器放入所述热队列中,所述热队列包括并行处理队列和串行处理队列;
获取所述热队列中的头节点链表,所述头节点链表为所述热队列中每个key对应的消息链表的节点连接在一起的链表,所述头节点链表包括所述并行处理队列中的并行头节点链表以及串行处理队列中的串行头节点链表;
基于每个key处理所述串行头节点链表或者所述并行头节点链表。
一些实施方式中,一些实施方式中,所述处理模块202还用于:
当在预设时长中接收到的所述用户的访问请求数量大于第一阈值时,采用第一阈值个数的线程池启用所述目标热容器;
当在预设时长中接收到的所述用户的访问请求数量小于或等于第一阈值时,根据所述到所述用户的访问请求个数的线程池启用所述目标热容器。
一些实施方式中,所述处理模块202还用于:
分析用户的访问信息,并判断用户是否为非正常用户;
若所述用户的访问信息中出现不良访问记录,则确定所述用户为非正常用户,并禁止所述用户进行访问。
一些实施方式中,所述处理模块202还用于:
响应所述用户的访问请求,获取所述用户的访问请求所中携带的数据;
将所述携带的数据写入后端的存储器中,向所述用户的访问请求的发送端反馈请求完成指令
上面从模块化功能实体的角度分别介绍了本申请实施例中的创建装置,以下从硬件角度介绍一种弹性执行热容器设备,如图3所示,其包括:处理器、存储器、输入输出单元(也可以是收发器,图3中未标识出)以及存储在所述存储器中并可在所述处理器上运行的计算机程序。例如,该计算机程序可以为图1所对应的实施例中弹性执行热容器的方法对应的程序。例如,当计算机设备实现如图2所示的弹性执行热容器的装置20的功能时,所述处理器执行所述计算机程序时实现上述图2所对应的实施例中由弹性执行热容器的装置20执行的弹性执行热容器的方法中的各步骤。或者,所述处理器执行所述计算机程序时实现上述图2所对应的实施例的弹性执行热容器的装置20中各模块的功能。又例如,该计算机程序可以为图1所对应的实施例中弹性执行热容器的方法对应的程序。
所称处理器可以是中央处理单元(central processingunit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述输入输出单元也可以用接收器和发送器代替,可以为相同或者不同的物理实体。为相同的物理实体时,可以统称为输入输出单元。该输入输出可以为收发器。
所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本申请的保护之内。

Claims (10)

1.一种弹性执行热容器的方法,其特征在于,所述方法包括:
接收用户的访问请求;
根据所述用户的访问请求创建预热容器以及预热队列,所述预热容器用于部署运行环境,所述预热队列是指用于存放所述预热容器的队列;
根据所述预热容器创建初始热容器,通过将所述初始热容器加上预置标识ID得到目标热容器,并将所述目标热容器放至热队列中,所述热队列是指用于存放所述目标热容器的队列,所述初始热容器是指运行环境以及运行规则;
执行存储在所述目标热容器中的可执行脚本,并计算所述可执行脚本的运行结果,基于所述运行结果在所述热队列中提取所述目标热容器并启用所述目标热容器,所述可执行脚本用于计算所述目标热容器中可用的资源,所述资源包括图形处理器资源、中央处理器资源、内存资源、缓存资源、存储资源中的至少一种;
在所述运行结果返回后,将所述目标热容器的状态设置为准备中,并根据所述可用的资源或用户输入的参数设置超时时长与容器阈值时长,所述超时时长小于所述容器阈值时长,所述超时时长是指响应的最大时长,所述容器阈值时长是指所述容器允许存在的最大时长;
若所述目标热容器在所述超时时长内没有接收到第一请求,则将所述目标热容器的状态设置为暂停,并将所述目标热容器存放至所述热队列,所述第一请求是指用户访问所述目标热容器的请求;
若所述目标热容器在所述超时时长内接收到所述第一请求,则将所述目标热容器的状态设置为运行中,并处理所述第一请求;
计算所述目标热容器的运行时长,得到容器存在时长;
若所述容器存在时长大于或等于所述容器阈值时长,则通过所述预置ID索引到所述目标热容器,并释放所述目标热容器。
2.根据权利要求1所述的方法,其特征在于,所述执行存储在所述目标热容器中的可执行脚本,并计算所述可执行脚本的运行结果,基于所述运行结果在所述热队列中提取所述目标热容器并启用所述目标热容器,包括:
通过可执行脚本将中央处理器和内存的值进行Base64运算后作为所述预热队列的键key,基于所述key从所述预热队列中查询是否存在所述预热容器;
若存在所述预热容器,则通过所述预热容器获取所述目标热容器的ID,基于所述目标热容器的ID提取并启动所述目标热容器;
创建一个与所述目标热容器具有相同属性的热容器存放至所述热队列;
或者,
根据命名空间、所述可执行脚本以及版本号计算所述目标热容器的ID,并基于所述目标热容器的ID查询所述热队列中存在的目标热容器,提取并启用存在的所述目标热容器。
3.根据权利要求2所述的方法,其特征在于,所述根据命名空间、所述可执行脚本以及版本号计算所述目标热容器的ID,并基于所述目标热容器的ID查询所述热队列中存在的目标热容器,提取并启用存在的所述目标热容器,包括:
获取所述可执行脚本的运行结果;
基于所述运行结果中对应的资源数量及资源类型,确定预置设备中的可用资源;
调用与所述可执行脚本的运行结果相应的命名空间、所述可执行脚本以及版本号,计算得到所述目标热容器的ID,查询所述热队列中存在的目标热容器;
基于所述可用资源提取并启用所述目标热容器。
4.根据权利要求2所述的方法,其特征在于,所述创建一个与所述目标热容器具有相同属性的热容器存放至所述热队列,包括:
将所述目标热容器放入所述热队列中,所述热队列包括并行处理队列和串行处理队列;
获取所述热队列中的头节点链表,所述头节点链表为所述热队列中每个key对应的消息链表的节点连接在一起的链表,所述头节点链表包括所述并行处理队列中的并行头节点链表以及串行处理队列中的串行头节点链表;
基于每个key处理所述串行头节点链表或者所述并行头节点链表。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述基于所述运行结果在所述热队列中提取所述目标热容器并启用所述目标热容器,包括:
当在预设时长中接收到的所述用户的访问请求数量大于第一阈值时,采用第一阈值个数的线程池启用所述目标热容器;
当在预设时长中接收到的所述用户的访问请求数量小于或等于第一阈值时,根据所述到所述用户的访问请求个数的线程池启用所述目标热容器。
6.根据权利要求1所述的方法,其特征在于,所述接收用户的访问请求之后,所述根据所述用户的访问请求创建预热容器以及预热队列之前,所述方法还包括:
分析用户的访问信息,并判断用户是否为非正常用户;
若所述用户的访问信息中出现不良访问记录,则确定所述用户为非正常用户,并禁止所述用户进行访问。
7.根据权利要求6所述的方法,其特征在于,所述分析用户的访问信息,并判断用户是否为非正常用户之前,所述方法还包括:
响应所述用户的访问请求,获取所述用户的访问请求所中携带的数据;
将所述携带的数据写入后端的存储器中,向所述用户的访问请求的发送端反馈请求完成指令。
8.一种弹性执行热容器的装置,其特征在于,所述装置包括:
输入输出模块,用于接收用户的访问请求;
处理模块,用于根据所述用户的访问请求创建预热容器以及预热队列,所述预热容器用于部署运行环境,所述预热队列是指用于存放所述预热容器的队列;根据所述预热容器创建初始热容器,通过将所述初始热容器加上预置标识ID得到目标热容器,并将所述目标热容器放至热队列中,所述热队列是指用于存放所述目标热容器的队列,所述初始热容器是指运行环境以及运行规则;执行存储在所述目标热容器中的可执行脚本,并计算所述可执行脚本的运行结果,基于所述运行结果在所述热队列中提取所述目标热容器并启用所述目标热容器,所述可执行脚本用于计算所述目标热容器中可用的资源,所述资源包括图形处理器资源、中央处理器资源、内存资源、缓存资源、存储资源中的至少一种;在所述运行结果返回后,将所述目标热容器的状态设置为准备中,并根据所述可用的资源或用户输入的参数设置超时时长与容器阈值时长,所述超时时长小于所述容器阈值时长,所述超时时长是指响应的最大时长,所述容器阈值时长是指所述容器允许存在的最大时长;若所述目标热容器在所述超时时长内没有接收到第一请求,则将所述目标热容器的状态设置为暂停,并将所述目标热容器存放至所述热队列;所述第一请求是指用户访问所述目标热容器的请求;若所述目标热容器在所述超时时长内接收到所述第一请求,则将所述目标热容器的状态设置为运行中,并处理所述第一请求;计算所述目标热容器的运行时长,得到容器存在时长;若所述容器存在时长大于或等于所述容器阈值时长,则通过所述预置ID索引到所述目标热容器,并释放所述目标热容器。
9.一种弹性执行热容器设备,其特征在于,所述计算机设备包括:
至少一个处理器、存储器和输入输出单元;
其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中存储的程序代码来执行如权利要求1-7中任一项所述的方法。
10.一种计算机存储介质,其特征在于,其包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-7中任一项所述的方法。
CN201910886055.XA 2019-09-19 2019-09-19 弹性执行热容器方法、装置、设备和存储介质 Active CN110764903B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910886055.XA CN110764903B (zh) 2019-09-19 2019-09-19 弹性执行热容器方法、装置、设备和存储介质
PCT/CN2019/117876 WO2021051576A1 (zh) 2019-09-19 2019-11-13 弹性执行热容器方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910886055.XA CN110764903B (zh) 2019-09-19 2019-09-19 弹性执行热容器方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN110764903A CN110764903A (zh) 2020-02-07
CN110764903B true CN110764903B (zh) 2023-06-16

Family

ID=69329970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910886055.XA Active CN110764903B (zh) 2019-09-19 2019-09-19 弹性执行热容器方法、装置、设备和存储介质

Country Status (2)

Country Link
CN (1) CN110764903B (zh)
WO (1) WO2021051576A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114860203A (zh) * 2022-04-22 2022-08-05 北京达佳互联信息技术有限公司 项目创建方法、装置、服务器及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018153256A1 (zh) * 2017-02-21 2018-08-30 贵州白山云科技有限公司 一种动态资源访问加速方法、装置、介质及设备
CN109684092A (zh) * 2018-12-24 2019-04-26 新华三大数据技术有限公司 资源分配方法及装置
CN109710402A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 处理资源获取请求的方法、装置、计算机设备和存储介质
CN109753356A (zh) * 2018-12-25 2019-05-14 北京友信科技有限公司 一种容器资源调度方法、装置及计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880475B (zh) * 2012-10-23 2015-08-12 普元信息技术股份有限公司 计算机软件系统中基于云计算的实时事件处理系统及方法
US9256467B1 (en) * 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
US9921885B2 (en) * 2015-06-19 2018-03-20 Vmware, Inc. Resource management for containers in a virtualized environment
US10892942B2 (en) * 2016-01-22 2021-01-12 Equinix, Inc. Container-based cloud exchange disaster recovery
CN108337314B (zh) * 2018-02-07 2019-07-09 北京百度网讯科技有限公司 分布式系统、用于主服务器的信息处理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018153256A1 (zh) * 2017-02-21 2018-08-30 贵州白山云科技有限公司 一种动态资源访问加速方法、装置、介质及设备
CN109710402A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 处理资源获取请求的方法、装置、计算机设备和存储介质
CN109684092A (zh) * 2018-12-24 2019-04-26 新华三大数据技术有限公司 资源分配方法及装置
CN109753356A (zh) * 2018-12-25 2019-05-14 北京友信科技有限公司 一种容器资源调度方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
WO2021051576A1 (zh) 2021-03-25
CN110764903A (zh) 2020-02-07

Similar Documents

Publication Publication Date Title
CN108449410B (zh) 一种云平台中消息管理方法、系统及相关装置
CN105516086B (zh) 业务处理方法及装置
CN103780679A (zh) 基于http协议的长延时远程调用方法
CN109472540B (zh) 业务处理方法和装置
CN111210340B (zh) 一种自动任务处理方法、装置、服务器及存储介质
CN109461234A (zh) 预约访问方法、装置、计算机设备及存储介质
CN107026871A (zh) 一种基于云计算的Web漏洞扫描方法
CN110930003A (zh) 工单的处理方法及装置
CN111666539A (zh) 一种房地产资源管理方法、装置、服务器及存储介质
CN110764903B (zh) 弹性执行热容器方法、装置、设备和存储介质
CN111294377B (zh) 一种依赖关系的网络请求发送方法、终端装置及存储介质
CN113326104A (zh) 一种虚拟机内部配置的修改方法、系统及装置
US20100175065A1 (en) Workflow management device, workflow management method, and program
CN111327680B (zh) 认证数据同步方法、装置、系统、计算机设备和存储介质
CN112019452B (zh) 一种业务需求的处理方法、系统及相关装置
CN110474954B (zh) 基于区块链的文件分享方法、装置、计算机设备及可读存储介质
CN113590308A (zh) 一种申请云资源的工作流处理方法、装置、设备及介质
CN115018509A (zh) 一种对象的处理方法、装置、电子设备及存储介质
CN107704557B (zh) 操作互斥数据的处理方法、装置、计算机设备和存储介质
CN112596882A (zh) 一种延时任务调度的方法、设备及系统
US20140280347A1 (en) Managing Digital Files with Shared Locks
CN107967549B (zh) 多流程任务处理装置与方法
CN110673931A (zh) 单证合成的分布式计算方法、单证合成系统及其控制装置
CN110740151A (zh) 一种微服务调整方法、装置、服务器及计算机存储介质
CN114518844B (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