发明内容
本公开实施例至少提供一种请求处理方法、装置、计算机设备和存储介质。
第一方面,本公开实施例提供了一种请求处理方法,包括:
获取应用使用请求;
利用流量调度器,向可扩容服务集群转发所述应用使用请求;所述可扩容服务集群用于运行与各种应用使用请求匹配的已创建实例;
若接收到所述可扩容服务集群反馈的非空闲状态指示信息,利用所述流量调度器,将所述应用使用请求转发至预留服务集群,通过所述预留服务集群运行与所述应用使用请求匹配的预留实例;
其中,所述非空闲状态指示信息用于指示所述可扩容服务集群当前不存在空闲可使用的已创建实例。
在一种可能的实施方式中,在接收到所述可扩容服务集群反馈的非空闲状态指示信息之后,还包括:
利用所述可扩容服务集群对应的服务扩容功能,创建所述应用使用请求对应的新的目标应用服务;
在所述目标应用服务中部署所述目标应用对应的至少一个目标应用实例;
将成功部署所述目标应用实例的所述目标应用服务,添加至所述可扩容服务集群中,其中,所述目标应用实例用于响应新的针对所述目标应用的应用使用请求。
在一种可能的实施方式中,在所述目标应用服务中部署所述目标应用对应的至少一个应用实例,包括:
获取所述目标应用对应的应用代码,并将所述应用代码加载至所述目标应用服务对应的存储位置;
在所述应用代码成功加载的情况下,对所述应用代码对应的应用端口执行端口信息获取操作;
在所述端口信息获取操作执行完成的情况下,确定所述目标应用实例部署成功;所述应用端口用于目标应用服务和所述目标应用实例之间的信息传输。
在一种可能的实施方式中,所述利用流量调度器,向可扩容服务集群转发所述应用使用请求,包括:
利用流量调度器,确定所述应用使用请求中携带的标识信息;
利用所述标识信息,从多个不同的可扩容服务集群中,筛选出与所述标识信息指示的目标应用相对应的、待使用的可扩容服务集群,并向所述待使用的可扩容服务集群转发所述应用使用请求。
在一种可能的实施方式中,所述方法还包括创建所述预留服务集群的步骤:
根据所述应用使用请求对应的目标应用在各时间段的请求接收峰值,以及所述目标应用对应的预留实例的处理资源量,确定待部署的预留实例的第一数量;
根据预留服务对应的最大实例部署数量和所述第一数量,确定待创建的预留服务的第二数量;
创建所述第二数量的预留服务,并在创建完成的每个所述预留服务中部署第三数量的预留实例,将成功部署预留实例的所述第二数量的预留服务,作为所述预留服务集群,其中,每个所述预留服务对应的预留实例的第三数量之和等于所述第一数量。
在一种可能的实施方式中,所述创建所述第二数量的预留服务,并在创建完成的每个所述预留服务中部署第三数量的预留实例,包括:
从多个服务容器中,为所述第二数量的预留服务中的每个所述预留服务选取可使用的目标服务容器;
针对每个所述预留服务,在该预留服务对应的目标服务容器中创建该预留服务,并在目标服务容器中,为该预留服务部署第三数量的预留实例。
在一种可能的实施方式中,在所述通过所述预留服务集群运行与所述应用使用请求匹配的预留实例之后,包括:
获取与所述应用使用请求匹配的预留实例,针对所述应用使用请求确定的响应结果,并将所述响应结果反馈至发送所述应用使用请求的用户端。
第二方面,本公开实施例还提供一种请求处理装置,包括:
获取模块,用于获取应用使用请求;
第一转发模块,用于利用流量调度器,向可扩容服务集群转发所述应用使用请求;所述可扩容服务集群用于运行与各种应用使用请求匹配的已创建实例;
第二转发模块,用于若接收到所述可扩容服务集群反馈的非空闲状态指示信息,利用所述流量调度器,将所述应用使用请求转发至预留服务集群,通过所述预留服务集群运行与所述应用使用请求匹配的预留实例;
其中,所述非空闲状态指示信息用于指示所述可扩容服务集群当前不存在空闲可使用的已创建实例。
在一种可能的实施方式中,所述装置还包括:
第一创建模块,用于在接收到所述可扩容服务集群反馈的非空闲状态指示信息之后,利用所述可扩容服务集群对应的服务扩容功能,创建所述应用使用请求对应的新的目标应用服务;
在所述目标应用服务中部署所述目标应用对应的至少一个目标应用实例;
将成功部署所述目标应用实例的所述目标应用服务,添加至所述可扩容服务集群中,其中,所述目标应用实例用于响应新的针对所述目标应用的应用使用请求。
在一种可能的实施方式中,所述第一创建模块,用于获取所述目标应用对应的应用代码,并将所述应用代码加载至所述目标应用服务对应的存储位置;
在所述应用代码成功加载的情况下,对所述应用代码对应的应用端口执行端口信息获取操作;
在所述端口信息获取操作执行完成的情况下,确定所述目标应用实例部署成功;所述应用端口用于目标应用服务和所述目标应用实例之间的信息传输。
在一种可能的实施方式中,所述第一转发模块,用于利用流量调度器,确定所述应用使用请求中携带的标识信息;
利用所述标识信息,从多个不同的可扩容服务集群中,筛选出与所述标识信息指示的目标应用相对应的、待使用的可扩容服务集群,并向所述待使用的可扩容服务集群转发所述应用使用请求。
在一种可能的实施方式中,所述装置还包括:
第二创建模块,用于按照以下步骤创建所述预留服务集群:
根据所述应用使用请求对应的目标应用在各时间段的请求接收峰值,以及所述目标应用对应的预留实例的处理资源量,确定待部署的预留实例的第一数量;
根据预留服务对应的最大实例部署数量和所述第一数量,确定待创建的预留服务的第二数量;
创建所述第二数量的预留服务,并在创建完成的每个所述预留服务中部署第三数量的预留实例,将成功部署预留实例的所述第二数量的预留服务,作为所述预留服务集群,其中,每个所述预留服务对应的预留实例的第三数量之和等于所述第一数量。
在一种可能的实施方式中,所述第二创建模块,用于从多个服务容器中,为所述第二数量的预留服务中的每个所述预留服务选取可使用的目标服务容器;
针对每个所述预留服务,在该预留服务对应的目标服务容器中创建该预留服务,并在目标服务容器中,为该预留服务部署第三数量的预留实例。
在一种可能的实施方式中,所述装置还包括:
反馈模块,用于在所述通过所述预留服务集群运行与所述应用使用请求匹配的预留实例之后,获取与所述应用使用请求匹配的预留实例,针对所述应用使用请求确定的响应结果,并将所述响应结果反馈至发送所述应用使用请求的用户端。
第三方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述请求处理装置、计算机设备、及计算机可读存储介质的效果描述参见上述请求处理方法的说明,这里不再赘述。
本公开实施例提供的请求处理方法、装置、计算机设备和存储介质,在确定可扩容服务集群当前不存在空闲可使用的已创建实例的情况下,利用流量调度器,将应用使用请求发送至预先创建的预留服务集群,并通过运行预留服务集群中与应用使用请求匹配的预留实例的方式,能够实现利用已创建的预留实例对应用使用请求进行快速响应,提高了请求响应的速度和效率,与现有技术中,在确定可扩容服务集群当前不存在空闲可使用的已创建实例的情况下,需要等待重新创建新的实例,再利用创建的新的实例对应用使用请求进行响应,降低了请求响应的速度和效率相比,通过预先创建预留服务集群,以及利用流量调度器将应用使用请求,在可扩容服务集群和预留服务集群中灵活转发的方式,能够有效提高请求响应的速度和效率。
进一步,本公开实施例提供的请求处理方法、装置、计算机设备和存储介质,还可以在确定可扩容服务集群当前不存在空闲可使用的已创建实例后,通过在可扩容服务集群中,创建新的目标应用服务以及部署应用实例的方式,增加了可扩容服务集群中空闲可使用的应用实例的数量,从而实现利用该空闲可使用的应用实例,对流量调度器在后续转发的新的应用使用请求进行快速响应,提高了响应新的应用使用请求的速度和效率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
经研究发现,在并发出现较多的应用使用请求的情况下,如果已经创建的可扩容服务集群中,不存在空闲可使用的且能够用于对上述应用使用请求进行处理的FaaS应用实例,或者,可扩容服务集群中空闲可使用的FaaS应用实例无法实现对并发出现全部应用使用请求进行响应,则需要进行应用的冷启动,在可扩容服务集群创建一定数量的新的FaaS应用实例,实现对可扩容服务集群的自动扩容,从而最终实现对全部应用使用请求的响应。但创建新的FaaS应用实例需要一定的时间,从而增加了响应应用使用请求的时间,降低了请求响应的速度和效率。
基于上述研究,本公开提供了一种请求处理方法、装置、计算机设备和存储介质,通过预先创建预留服务集群,以及利用流量调度器将应用使用请求,在可扩容服务集群和预留服务集群中灵活转发的方式,避免了等待创建新的应用实例才可以对应用使用请求进行响应,增加了响应应用使用请求的时间的问题,有效提高了请求响应的速度和效率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种请求处理方法进行详细介绍,本公开实施例所提供的请求处理方法的执行主体一般为具有一定计算能力的计算机设备,在一些可能的实现方式中,该请求处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为计算机设备为例对本公开实施例提供的请求处理方法加以说明。
如图1所示,为本公开实施例提供的一种请求处理方法的流程图,可以包括以下步骤:
S101:获取应用使用请求。
这里,应用使用请求可以为用户端发起的使用目标应用的请求。例如,加载目标应用对应的应用页面的请求,访问目标应用的请求等。
具体实施时,获取的应用使用请求可以包括一个或多个,在获取的应用使用请求包括多个情况下,多个应用使用请求可以为在同一时刻,以并发的方式发起的。
S102:利用流量调度器,向可扩容服务集群转发应用使用请求;可扩容服务集群用于运行与各种应用使用请求匹配的已创建实例。
这里,流量调度器用于将获取的各个应用使用请求,转发至对应的可扩容服务集群。具体的,流量调度器可以为Gateway调度器。
可扩容服务集群中可以包括一个或多个已创建的应用服务,每个应用服务中可以包括一个或多个已创建实例,可扩容服务集群用于运行所包括的各个已创建实例,运行的各个已创建实例可以用于响应各种应用使用请求。具体的,可扩容服务集群中的已创建的应用服务的数量,以及每个已创建的应用服务中的已创建实例的数量,可以根据该可扩容服务集群所服务的应用决定。
可扩容服务集群可以包括一个或多个,每个可扩容服务集群对应的应用不同,同一个可扩容服务集群中的各个已创建的应用服务对应的应用相同,也即,针对任一个可扩容服务集群,该可扩容服务集群中包括的各个已创建的应用服务,均为针对同一个应用的服务,且该可扩容服务集群中包括的各个已创建的应用服务中的各个已创建实例,均用于响应针对同一个应用的各种应用使用请求。例如,可扩容服务集群A所服务的应用为应用A,则可扩容服务集群A中的各个已创建的应用服务A,均为针对应用A的服务,且各个已创建的应用服务A中的各个已创建实例A,均用于响应针对应用A的各种应用使用请求。
具体的,可扩容服务集群可以为Serverless自动扩缩容集群,其中,Serverless全称为Serverless computing无服务器运算,又被称为FaaS,Serverless自动扩缩容集群是一种依赖Serverless提供方所提供的函数进行自动扩缩容,完全弹性的服务集群。
具体实施时,在获取到应用使用请求后,可以先利用流量调度器,确定应用使用请求对应的可扩容服务集群,并向该可扩容服务集群发送应用使用请求。
这里,如果获取的应用使用请求包括多个,针对每个应用使用请求,可以利用流量调度器,确定该应用使用请求可扩容服务集群,再向该可扩容服务集群发送该应用使用请求。
S103:若接收到可扩容服务集群反馈的非空闲状态指示信息,利用流量调度器,将应用使用请求转发至预留服务集群,通过预留服务集群运行与应用使用请求匹配的预留实例。
其中,非空闲状态指示信息用于指示可扩容服务集群当前不存在空闲可使用的已创建实例,其为可扩容服务集群反馈的信息。
预留服务集群为预先创建的服务集群,该预留服务集群中包括一个或多个预先创建的空闲的预留服务,每个预留服务中包括一个或多个空闲的预留实例。
预留服务集群可以作为一个兜底的服务集群,流量调度器仅在将应用使用请求转发至可扩容服务集群并接收到非空闲状态指示信息后,将该应用使用请求转发至该应用使用请求对应的预留服务集群,以实现利用预留服务集群中的空闲的预留实例,对该应用使用请求进行响应。
具体实施时,在可扩容服务集群接收到流量调度器发送的应用使用请求后,如果可扩容服务集群中存在空闲可使用的已创建实例的情况下,则可以通过可扩容服务集群运行空闲可使用的已创建实例,并利用运行的空闲可使用的已创建实例,对应用使用请求进行响应,从而确定应用使用请求对应的响应结果。
反之,如果确定不存在空闲可使用的已创建实例的情况下,也即在确定无法直接对应用使用请求进行响应的情况下,可扩容服务集群可以生成非空闲状态指示信息并反馈给流量调度器。这里,非空闲状态指示信息具体可以为状态码。
进而,流量调度器在接收到非空闲状态指示信息后,可以确定出能够用于对应用使用请求进行响应的预留服务集群,并将应用使用请求转发至确定出的该预留服务集群。
进一步的,预留服务集群在接收到流量调度器转发的应用使用请求后,可以运行与应用使用请求匹配的预留实例,并利用运行的预留实例,对应用使用请求进行响应,从而确定应用使用请求对应的响应结果。
这样,在确定可扩容服务集群当前不存在空闲可使用的已创建实例的情况下,利用流量调度器,将应用使用请求发送至预先创建的预留服务集群,并通过运行预留服务集群中与应用使用请求匹配的预留实例的方式,能够实现利用已创建的预留实例对应用使用请求进行快速响应,提高了请求响应的速度和效率,与现有技术中,在确定可扩容服务集群当前不存在空闲可使用的已创建实例的情况下,需要等待重新创建新的实例,再利用创建的新的实例对应用使用请求进行响应,降低了请求响应的速度和效率相比,通过预先创建预留服务集群,以及利用流量调度器将应用使用请求,在可扩容服务集群和预留服务集群中灵活转发的方式,能够有效提高请求响应的速度和效率。
在一种实施例中,在通过预留服务集群运行与应用使用请求匹配的预留实例之后,还可以获取与应用使用请求匹配的预留实例,针对应用使用请求确定的响应结果,并将响应结果反馈至发送应用使用请求的用户端。
这里,响应结果即为预留实例对应用使用请求进行响应后,确定的针对该请求的结果。例如,响应结果可以为确定出的与应用使用请求所对应的应用页面信息、与应用使用请求所对应的功能信息等等。用户端可以为中终端设备、浏览器、个人移动终端等等,具体的用户端本公开实施例不进行限定。
具体的,在利用预留实例对应用使用请求进行响应,确定应用使用请求对应的响应结果之后,可以获取到该响应结果,并将响应结果反馈给发起应用使用请求的用户端。例如,可以将获取的应用页面信息反馈给浏览器,进而,浏览器端可以根据应用页面信息进行应用页面的渲染并展示。
并且,在利用预留实例完成对应用使用请求的响应之后,可以对该预留实例中的计算资源进行释放,得到空闲可使用的该预留实例。
在一种实施例中,在接收到可扩容服务集群反馈的非空闲状态指示信息之后,除可以利用预留集群中的预留实例对应用使用请求进行响应之外,还可以异步执行在可扩容服务集群中进行服务扩容的步骤,具体的,可以按照以下步骤进行服务扩容:
步骤一、利用可扩容服务集群对应的服务扩容功能,创建应用使用请求对应的新的目标应用服务。
这里,上述服务扩容功能即可扩容服务集群对应的自动扩缩容能力,上述新的目标应用服务即为针对所述应用试用请求对应的目标应用的服务,具体的,创建的新的目标应用服务即为与可扩容服务集群中已创建的应用服务相同的服务。
具体实施时,可以先确定出应用使用请求对应的目标应用,然后直接利用可扩容服务集群对应的服务扩容功能,在可扩容服务集群中创建新的目标应用服务。
步骤二、在目标应用服务中部署目标应用对应的至少一个目标应用实例。
这里,目标应用实例与可扩容服务集群中的已创建实例的功能一致,用于响应针对目标应用的各种应用使用请求。具体的,可以在目标应用服务中部署目标应用对应的至少一个目标应用实例,具体部署的目标应用实例的数量,可以根据实际的开发需要进行设置,此处不进行限定。例如,可以根据目标应用服务所能支持部署的目标应用实例的最大数量进行部署。或者,可以根据当前获取的应用使用请求的数量,确定对全部应用使用请求进行响应所需要的目标应用实例的数量,按照该数量部署目标应用实例。
在一种实施例中,本步骤二可以按照以下子步骤实施:
子步骤一、获取目标应用对应的应用代码,并将应用代码加载至目标应用服务对应的存储位置。
这里,应用代码即为加载目标应用所需的代码。目标应用服务对应的存储位置即为可扩容服务集群对应的内存。
示例性的,可以直接在存储目标应用对应的应用代码的位置处拉取应用代码,并将拉取到的应用代码加载至目标应用服务对应的内存。
子步骤二、在应用代码成功加载的情况下,对应用代码对应的应用端口执行端口信息获取操作。
这里,每个目标应用实例可以对应分配一个应用端口,应用端口用于目标应用服务和目标应用实例之间的信息传输,例如,应用使用请求的传输,应用使用请求对应的响应结果的传输。应用代码对应的应用端口即为目标应用实例的端口。
具体的,在应用代码成功加载至内存的情况下,可以对分配给目标应用实例的应用端口执行端口信息获取操作,也即执行端口监听操作。
子步骤三、在端口信息获取操作执行完成的情况下,确定目标应用实例部署成功。
示例性的,在端口监听操作完成的情况下,确定目标应用实例在目标应用服务中部署成功。
在部署多个目标应用实例的情况下,每个目标应用实例的部署过程均可以参照上述子步骤一~子步骤三。
步骤三、将成功部署目标应用实例的目标应用服务,添加至可扩容服务集群中,其中,目标应用实例用于响应新的针对目标应用的应用使用请求。
示例性的,可以将成功部署了至少一个目标应用实例的目标应用服务,作为可扩容服务集群中的新扩容的服务。这样,在可扩容服务集群中新创建的目标应用服务可以作为可扩容服务集群中的新的已创建的应用服务,每个部署成功的目标应用实例可以作为可扩容服务集群中的新的已创建实例,从而,可以利用上述部署成功的目标应用实例,对后续新接收到的应用使用请求进行响应。
或者,在一种实施方式中,也可以利用可扩容服务集群对应的服务扩容功能,创建应用使用请求对应的多个新的目标应用服务,并按照上述步骤,在每个新的目标应用服务中部署至少一个目标应用实例。
在一种实施例中,针对S102,可以按照以下步骤实施:
S102-1:利用流量调度器,确定应用使用请求中携带的标识信息。
这里,标识信息可以为应用使用请求对应的目标应用的应用标识,例如,可以为应用身份标识号(Identity Document,ID)、应用名称等等。
具体实施时,可以利用流量调度器,对应用使用请求进行解析,确定出其中携带的应用标识。
S102-2:利用标识信息,从多个不同的可扩容服务集群中,筛选出与标识信息指示的目标应用相对应的、待使用的可扩容服务集群,并向待使用的可扩容服务集群转发应用使用请求。
这里,可扩容服务集群可以包括多个,不同的可扩容服务集群可以服务于不同的应用,也即,不同的应用可以对应于不同的可扩容服务集群,而每个应用均可以对应于不用的标识信息,因此,不同的标识信息可以指向服务该标识信息对应的可扩容服务集群。
具体实施时,在确定应用使用请求对应的标识信息后,可以从多个不同的可扩容服务集群中,筛选出标识信息指向的待使用的可扩容服务集群,并向该待使用的可扩容服务集群转发应用使用请求。
在一种实施例中,本公开实施例所提供的请求处理方法还包括创建预留服务集群的步骤:
S1:根据应用使用请求对应的目标应用在各时间段的请求接收峰值,以及目标应用对应的预留实例的处理资源量,确定待部署的预留实例的第一数量。
这里,请求接收峰值即为目标应用在各时间段接收到的应用使用请求的最大数量。预留实例的处理资源量用于表征预留实例同时能够响应的应用使用请求的最大数量。例如,可以根据每个处理每个应用使用请求所需的资源量,以及预留实例的处理资源量,确定出征预留实例同时能够响应的应用使用请求的最大数量。时间段的数量可以根据实际开发需要进行设置。例如,每个时间段对应的时间间隔为10分钟,1小时等,在时间间隔为1小时的情况下,一天可以设置24个时间段。第一数量即为需要部署的预留实例的数量。
具体实施时,在确定出目标应用在各时间段的请求接收峰值后,可以从多个请求接收峰值中确定最大请求接收峰值。然后,根据目标应用对应的可扩容服务集群中的已创建实例能够同时处理的应用使用请求的第一最大数量,利用最大请求接收峰值减去第一最大数量,确定出预留实例需要同时处理的应用使用请求的第二最大数量。根据每个预留实例的处理资源量和处理第二最大数量的应用使用请求所需的资源量,确定待部署的预留实例的第一数量。
S2:根据预留服务对应的最大实例部署数量和第一数量,确定待创建的预留服务的第二数量。
这里,最大实例部署数量即为每个预留服务所能部署的预留实例的最大数量。
S3:创建第二数量的预留服务,并在创建完成的每个预留服务中部署第三数量的预留实例,将成功部署预留实例的第二数量的预留服务,作为预留服务集群,其中,每个所述预留服务对应的预留实例的第三数量之和等于第一数量。
这里,可以先创建第二数量的预留服务,并在创建完成的每个预留服务中部署第三数量的预留实例。其中,每个预留服务中部署的预留实例的第三数量小于等于最大实例部署数量,每个预留服务对应的预留实例的第三数量之和等于第一数量。并且,在一种实施方式中,创建的第二数量的预留服务中的每个预留服务均可以为不可扩容的服务。
进一步的,可以将成功部署预留实例的第二数量的预留服务,作为预留服务集群。这里,在每个预留服务均为不可扩容的服务的情况下,预留服务集群也为不可自动扩容的服务集群。
在一种实施例中,针对创建第二数量的预留服务,并在创建完成的每个预留服务中部署第三数量的预留实例的步骤,还可以从多个服务容器中,为第二数量的预留服务中的每个预留服务选取可使用的目标服务容器。这里,服务容器可以为docker容器,创建在docker容器中的预留服务可以为能够扩容的服务。每个服务容器中可以创建预设数量的预留服务。目标服务容器即为筛选出的用于创建预留服务的服务容器,每个目标服务容器均处于空闲可使用的状态。其中,Docker容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上。
具体的,可以根据预设数量和第二数量,确定需要使用的目标服务容器的目标数量。然后从多个服务容器中,选取出可使用的目标数量的目标服务容器。
进一步的,针对每个预留服务,在该预留服务对应的目标服务容器中创建该预留服务,并在目标服务容器中,为该预留服务部署第三数量的预留实例。
这里,针对每个预留服务,选取出的任一目标服务容器均可以为该预留服务对应的目标服务容器。具体实施时,可以在每个目标服务容器中创建预留服务,并为创建成功的预留服务部署第三数量的预留实例,最后实现在目标数量的目标服务容器中,成功创建出第二数量的预留服务,并未每个预留服务,部署第三数量的预留实例。
示例性的,可以使用kubernetes,创建第二数量的预留服务,并在每个预留服务中部署第三数量的预留实例。其中,kubernetes,简称K8s,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效。
如图2所示,为本公开实施例所提供的一种请求处理方法的具体实施流程图,可以包括以下步骤:
S201:获取应用使用请求。
S202:利用流量调度器,向可扩容服务集群转发应用使用请求。
S203:确定是否接受到可扩容服务集群反馈的非空闲状态指示信息。
如果是,执行S204以及S206,如果否,则执行S208。
S204:利用流量调度器,将应用使用请求转发至预留服务集群,通过预留服务集群运行与应用使用请求匹配的预留实例。
这里,可以利用运行的预留实例,对应用使用请求进行响应,从而确定应用使用请求的响应结果。
S205:获取应用使用请求的响应结果,并将响应结果反馈至发送应用使用请求的用户端。
S206:利用可扩容服务集群对应的服务扩容功能,创建应用使用请求对应的新的目标应用服务,并在目标应用服务中部署目标应用对应的至少一个目标应用实例。
S207:将成功部署目标应用实例的目标应用服务,添加至可扩容服务集群。
这里,目标应用实例用于响应新的针对目标应用的应用使用请求,以确定新的针对目标应用的应用使用请求对应的响应结果。进一步的,在利用目标应用实例确定新的应用使用请求的响应结果后,可以执行上述S205。
S208:通过可扩容服务集群运行与应用使用请求匹配的已创建实例。
这里,可以利用运行的已创建实例,对应用使用请求进行响应,从而确定应用使用请求的响应结果。之后,可以执行上述S205,以将确定的响应结果反馈给用户端。
关于上述S201~S208的具体实施过程,可以参照上述各实施例,此处不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与请求处理方法对应的请求处理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述请求处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图3所示,为本公开实施例提供的一种请求处理装置的示意图,包括:
获取模块301,用于获取应用使用请求;
第一转发模块302,用于利用流量调度器,向可扩容服务集群转发所述应用使用请求;所述可扩容服务集群用于运行与各种应用使用请求匹配的已创建实例;
第二转发模块303,用于若接收到所述可扩容服务集群反馈的非空闲状态指示信息,利用所述流量调度器,将所述应用使用请求转发至预留服务集群,通过所述预留服务集群运行与所述应用使用请求匹配的预留实例;
其中,所述非空闲状态指示信息用于指示所述可扩容服务集群当前不存在空闲可使用的已创建实例。
在一种可能的实施方式中,所述装置还包括:
第一创建模块304,用于在接收到所述可扩容服务集群反馈的非空闲状态指示信息之后,利用所述可扩容服务集群对应的服务扩容功能,创建所述应用使用请求对应的新的目标应用服务;
在所述目标应用服务中部署所述目标应用对应的至少一个目标应用实例;
将成功部署所述目标应用实例的所述目标应用服务,添加至所述可扩容服务集群中,其中,所述目标应用实例用于响应新的针对所述目标应用的应用使用请求。
在一种可能的实施方式中,所述第一创建模块304,用于获取所述目标应用对应的应用代码,并将所述应用代码加载至所述目标应用服务对应的存储位置;
在所述应用代码成功加载的情况下,对所述应用代码对应的应用端口执行端口信息获取操作;
在所述端口信息获取操作执行完成的情况下,确定所述目标应用实例部署成功;所述应用端口用于目标应用服务和所述目标应用实例之间的信息传输。
在一种可能的实施方式中,所述第一转发模块302,用于利用流量调度器,确定所述应用使用请求中携带的标识信息;
利用所述标识信息,从多个不同的可扩容服务集群中,筛选出与所述标识信息指示的目标应用相对应的、待使用的可扩容服务集群,并向所述待使用的可扩容服务集群转发所述应用使用请求。
在一种可能的实施方式中,所述装置还包括:
第二创建模块305,用于按照以下步骤创建所述预留服务集群:
根据所述应用使用请求对应的目标应用在各时间段的请求接收峰值,以及所述目标应用对应的预留实例的处理资源量,确定待部署的预留实例的第一数量;
根据预留服务对应的最大实例部署数量和所述第一数量,确定待创建的预留服务的第二数量;
创建所述第二数量的预留服务,并在创建完成的每个所述预留服务中部署第三数量的预留实例,将成功部署预留实例的所述第二数量的预留服务,作为所述预留服务集群,其中,每个所述预留服务对应的预留实例的第三数量之和等于所述第一数量。
在一种可能的实施方式中,所述第二创建模块305,用于从多个服务容器中,为所述第二数量的预留服务中的每个所述预留服务选取可使用的目标服务容器;
针对每个所述预留服务,在该预留服务对应的目标服务容器中创建该预留服务,并在目标服务容器中,为该预留服务部署第三数量的预留实例。
在一种可能的实施方式中,所述装置还包括:
反馈模块306,用于在所述通过所述预留服务集群运行与所述应用使用请求匹配的预留实例之后,获取与所述应用使用请求匹配的预留实例,针对所述应用使用请求确定的响应结果,并将所述响应结果反馈至发送所述应用使用请求的用户端。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种计算机设备,如图4所示,为本公开实施例提供的一种计算机设备结构示意图,包括:
处理器41和存储器42;所述存储器42存储有处理器41可执行的机器可读指令,处理器41用于执行存储器42中存储的机器可读指令,所述机器可读指令被处理器41执行时,处理器41执行下述步骤:S101:获取应用使用请求;S102:利用流量调度器,向可扩容服务集群转发应用使用请求;可扩容服务集群用于运行与各种应用使用请求匹配的已创建实例以及S103:若接收到可扩容服务集群反馈的非空闲状态指示信息,利用流量调度器,将应用使用请求转发至预留服务集群,通过预留服务集群运行与应用使用请求匹配的预留实例。
上述存储器42包括内存421和外部存储器422;这里的内存421也称内存储器,用于暂时存放处理器41中的运算数据,以及与硬盘等外部存储器422交换的数据,处理器41通过内存421与外部存储器422进行数据交换。
上述指令的具体执行过程可以参考本公开实施例中所述的请求处理方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的请求处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的请求处理方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的请求处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。