一种应用实例的管理方法、装置及计算机可读存储介质与流程

文档序号:18142148发布日期:2019-07-10 11:11阅读:171来源:国知局
一种应用实例的管理方法、装置及计算机可读存储介质与流程

本发明涉及云计算技术领域,尤其涉及一种应用实例的管理方法、装置及计算机可读存储介质。



背景技术:

应用调度框架是一种通过对应用实例的管理,进行应用编排的框架。其将每个实例视为应用的一个实现的拷贝,每个实例功能和服务都是一样的,同时为外部提供服务。通过对每个应用进行创建、修改、删除、重启,实现对整体的应用进行管理。而在应用发布升级时,通过重启操作,来实现底层应用实例的全部更新和升级。

应用调度框架的调度结构如图1所示,调度框架对所有实例进行统一操作管理,当负载/服务发现接收到用户的访问请求时,负载/服务发现根据可用实例列表中的可用实例的信息将用户的访问请求发送到当前运行的实例,由当前运行的实例对接收的访问请求进行处理。

现有的应用调度框架,采用的重启策略是通过以下步骤进行的:1、启动n个的新应用实例,并待进行健康检测通过。2、从原有容器中,随机选择n个进行退出。通过上述步骤,应用可以在持续提供服务的情况下,进行重启操作。保障了业务的连续性。

现有的应用调度框架虽然能够保障业务的连续性,即保证每个时刻底层都有正常提供服务的实例,从而使得应用持续对外提供服务,但是这并不意味着能保障用户访问的连续性。所谓用户访问的连续性,就是所有用户随时进行访问,而不会出现访问异常的情况。由于应用持续对外提供服务,所以当实例被退出时,往往仍存在于前端负载或服务发现程序的可用实例列表中。当用户发出访问请求时,由于退出实例未被健康检测发现,所以在负载、服务发现程序检测到实例退出为止,仍然会将用户请求发送到退出的实例当中,而造成该时间段内用户请求得不到正常的响应。根据现有应用重启方式来计算,采用轮询方式的负载会造成健康检测时间内,约1/3的用户请求失败。而即使是实时同步更新调度框架,也仅能缩短不可用实例存在时间至大约0.01s左右。当用户基数较大,并发请求较高时,应用重启所消耗的0.01s可能会造成的请求失败情况就会被放大到不可接受的地步,对用户体验有严重的影响。

因此,亟需一种应用实例的管理的技术方案,能够有效解决容器退出时信息同步滞后导致的请求失败情况,实现用户无感知的应用管理。



技术实现要素:

有鉴于此,本发明实施例希望提供一种应用实例的管理的方法、装置和计算机可读存储介质,能够有效解决容器退出时信息同步滞后导致的请求失败情况,实现用户无感知的应用管理。

本发明实施例的技术方案是这样实现的:

本发明实施例提供一种应用实例的管理方法,所述方法包括:

接收到退出指令时,获取所述退出指令指示的退出数量和退出步长,所述退出步长为每批退出实例的数量;

根据所述退出步长在当前运行的实例中选择待退出实例,将所述待退出实例的实例信息通知给可用实例列表,以指示所述可用实例列表移除所述待退出实例,并检查所述待退出实例的任务执行状态;

确定所述待退出实例的任务执行状态为空闲时,删除所述待退出实例,直到删除的待退出实例的数量满足所述退出数量。

上述方案中,所述方法还包括:

接收到应用重启指令时,获取所述重启指令指示的重启数量和重启步长,所述重启步长为每批启动实例的数量;

针对每一批,根据所述重启数量和所述重启步长选择待重启实例;

启动所述待重启实例,直到启动的实例的数量满足所述重启数量。

上述方案中,所述根据所述重启数量和所述重启步长选择待重启实例包括:

获取候选实例的指标和所述指标对应的权重;

根据所述重启数量、所述指标和所述指标对应的权重确定所述重启步长个待重启实例。

上述方案中,所述根据所述重启数量、所述指标和所述指标对应的权重确定所述重启步长个待重启实例包括:

根据计算各候选实例的实例分值α,其中,m为重启数量,m为指标,xm为指标m对应的权重;

根据各候选实例的实例分值对各候选实例进行排序,根据排序的结果选择重启步长个候选实例作为待重启实例。

上述方案中,所述根据所述退出步长在当前运行的实例中选择待退出实例包括:

获取当前运行的实例的运行信息,根据所述当前运行的实例的运行信息选择所述退出步长个待退出实例。

上述方案中,所述方法还包括:

确定所述待退出实例的任务执行状态为忙时,等待设定的时长后,再次检查所述待退出实例的任务执行状态。

本发明实施例还提供一种应用实例的管理装置,所述装置包括:选择模块、预退出模块和重启模块;其中,

所述接收模块,用于接收到退出指令时,获取所述退出指令指示的退出数量和退出步长,所述退出步长为每批退出实例的数量;

所述预退出模块,用于根据所述退出步长在当前运行的实例中选择待退出实例,将所述待退出实例的实例信息通知给可用实例列表,以指示所述可用实例列表移除所述待退出实例,并检查所述待退出实例的任务执行状态;

所述退出模块,用于确定所述待退出实例的任务执行状态为空闲时,删除所述待退出实例,直到删除的待退出实例的数量满足所述退出数量。

本发明实施例还一种应用实例的管理装置所述装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行:

接收到退出指令时,获取所述退出指令指示的退出数量和退出步长,所述退出步长为每批退出实例的数量;

根据所述退出步长在当前运行的实例中选择待退出实例,将所述待退出实例的实例信息通知给可用实例列表,以指示所述可用实例列表移除所述待退出实例,并检查所述待退出实例的任务执行状态;

确定所述待退出实例的任务执行状态为空闲时,删除所述待退出实例,直到删除的待退出实例的数量满足所述退出数量。

上述方案中,所述处理器用于运行所述计算机程序时,还执行:

接收到应用重启指令时,获取所述重启指令指示的重启数量和重启步长,所述重启步长为每批启动实例的数量;

针对每一批,根据所述重启数量和所述重启步长选择待重启实例;

启动所述待重启实例,直到启动的实例的数量满足所述重启数量。

上述方案中,所述处理器用于运行所述计算机程序时,执行所述根据所述重启数量和所述重启步长选择待重启实例包括:

获取候选实例的指标和所述指标对应的权重;

根据所述重启数量、所述指标和所述指标对应的权重确定所述重启步长个待重启实例。

上述方案中,所述处理器用于运行所述计算机程序时,执行所述根据所述重启数量、所述指标和所述指标对应的权重确定所述重启步长个待重启实例包括:

根据计算各候选实例的实例分值α,其中,m为重启数量,m为指标,xm为指标m对应的权重;

根据各候选实例的实例分值对各候选实例进行排序,根据排序的结果选择重启步长个候选实例作为待重启实例。

上述方案中,所述处理器用于运行所述计算机程序时,执行所述根据所述退出步长在当前运行的实例中选择待退出实例包括:

获取当前运行的实例的运行信息,根据所述当前运行的实例的运行信息选择所述退出步长个待退出实例。

上述方案中,所述处理器用于运行所述计算机程序时,还执行:

确定所述待退出实例的任务执行状态为忙时,等待设定的时长后,再次检查所述待退出实例的任务执行状态。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述方法的步骤。

本发明实施例的应用实例的管理方法、装置和计算机可读存储介质,接收到退出指令时,确定退出数量和每一批退出的退出步长,针对每一批退出实例,在运行的实例中选择待退出实例,将选择的待退出实例的实例信息通知至可用实例列表,并确定待退出实例的任务执行状态为空闲时,删除待退出实例,直到删除的退出实例的数量满足所述退出数量。如此,实现退出实例的分批次退出,且每一批待退出实例退出时,待退出实例不会被分发到任何请求,也不会在请求处理完成前被删除,能够有效解决容器退出时信息同步滞后导致的请求失败情况,实现用户无感知的应用管理。

附图说明

图1为现有技术中应用调度框架的调度结构示意图;

图2为本发明实施例一提供的一种应用实例的管理方法的流程示意图;

图3为本发明实施例二提供的应用调度框架的调度结构示意图;

图4为本发明实施例二提供的一种应用重启方法的流程示意图;

图5为本发明实施例三提供的一种应用实例的管理装置的结构示意图一;

图6为本发明实施例三提供的一种应用实例的管理装置的结构示意图二

图7为本发明实施例四提供的一种应用实例的管理装置的结构示意图。

具体实施方式

在本发明实施例中,接收到退出指令时,获取所述退出指令的退出数量和退出步长,所述退出步长为每批退出实例的数量;根据所述退出步长在当前运行的实例中选择待退出实例,将所述待退出实例的实例信息通知给可用实例列表,以指示所述可用实例列表移除所述待退出实例,并检查所述待退出实例的任务执行状态;确定所述待退出实例的任务执行状态为空闲时,删除所述待退出实例,直到删除的退出实例的数量满足所述退出数量。

接收到退出指令时,确定退出数量和每一批退出的退出步长,针对每一批退出实例,在运行的实例中选择待退出实例,将选择的待退出实例的实例信息通知至可用实例列表,并确定待退出实例的任务执行状态为空闲时,删除待退出实例,直到删除的退出实例的数量满足所述退出数量。如此,实现退出实例的分批次退出,且每一批待退出实例退出时,待退出实例不会被分发到任何请求,也不会在请求处理完成前被删除,能够有效解决容器退出时信息同步滞后导致的请求失败情况,实现用户无感知的应用管理。

下面结合附图对技术方案的实施作进一步的详细描述。

实施例一

本发明实施例提供一种应用实例的管理方法,如图2所示,所述方法包括:

s201、接收到退出指令时,获取所述退出指令的退出数量和退出步长;

所述退出步长为每批退出实例的数量。

当接收到调度框架的退出指令时,确定退出指令指示指示的退出数量和退出步长。这里,退出指令中可携带退出数量和退出步长。其中,退出数量为需要退出的实例的总的数量,退出步长为每一批退出实例的数量,比如:退出数量为100,退出步长为10,则将100个退出实例分批进行退出,且每一批退出实例的数量为10。

这里,退出指令可为缩容时接收到的指示退出实例的指令,也可为应用重启时接收到的应用重启指令所触发的指示退出实例的指令。s202、在当前运行的实例中选择待退出实例,将所述待退出实例的实例信息通知给可用实例列表,以指示所述可用实例列表移除所述待退出实例,并检查所述待退出实例的任务执行状态;

在确定每一批退出实例时,在当前运行的实例中选择待退出实例,其中选择的待退出实例的数量为退出步长。在本发明实施例中,在当前运行的实例中选择待退出实例时,可随机选择待退出实例,也可有选择性的选择带退出实例。当选择性的选择退出实例时,综合考量实例的运行状态、资源消耗情况、请求队列等运行信息来确定带退出实例。

对于当前运行的实例,每一实例对应一容器,能够通过前端的负载/服务发现对用户请求的转发来对用户的请求进行处理。

在一些实施例中,所述根据所述退出步长在当前运行的实例中选择待退出实例包括:获取当前运行的实例的运行信息,根据所述当前运行的实例的运行信息选择所述退出步长个待退出实例。具体的,获取当前运行的实例的线程数、并发数、资源消耗、等待队列等运行信息,根据获取的运行信息选择待退出实例。这里,根据获取的运行信息对运行的实例的状态进行评估,选择评估结果中相对空闲的实例作为待退出实例。需要说明的是,在选择待退出实例时,可根据实际的需求设置选择条件,并根据实际需求选择运行参数来对运行的实例进行评估,以选取满足选择条件的实例作为待退出实例。

本发明实施例对运行参数和选择条件不进行限制。

当确定待退出实例时,待退出实例进入预退出状态。

当待退出实例进入预退出状态时,待退出实例将自身的实例信息告知前端的负载/服务发现的可用实例列表,当前端的负载/服务发现的可用实例列表接收到待退出实例的实例信息时,将待退出实例的实例信息从可用实例列表中移除,以停止对该待退出实例的转发。当将待退出实例的实例信息通知可用实例列表时,可将该实例的实例信息比如:实例标识发送至可用实例列表,同时发送待退出状态标识,表征该实例为待退出实例。

在将待退出实例的实例信息发送给可用实例列表的同时,检查待退出实例是否满足退出条件,具体地,检查待退出实例的任务执行状态,在检查待退出实例的任务执行状态时,检查待退出实例是否存在未处理完成的请求。当待退出实例的请求都处理完成时,待退出实例的任务执行状态为空闲,此时,满足退出条件;当待退出实例还存在未处理完成的请求时,待退出实例的任务执行状态为忙,此时,不满足退出条件。

s203、确定所述待退出实例的任务执行状态为空闲时,删除所述待退出实例,直到删除的退出实例的数量满足所述退出数量。

在确定待退出实例的任务执行状态为空闲时,删除待退出实例。

当一些实施例中,确定所述待退出实例的任务执行状态为忙时,等待设定的时长后,再次检查所述待退出实例的任务执行状态,直到该待退出实例的任务执行状态为空闲,将该待退出实例删除。其中,设定的时长可根据实际需求进行设置,比如:0.1s。

需要说明的时,待退出实例可包括多个实例,当确定一实例的任务执行状态为空闲时,将该实例删除,当一实例的任务执行状态为忙时,等待该实例的任务执行状态为空闲后将该实例删除。

当这批的退出实例删除后,再次执行s202,选择退出步长个待退出实例,在确定选择的待退出实例的任务执行状态为空闲时,删除选择的待退出实例,直到删除的待退出实例的个数为退出数量,即退出实例的数量满足退出数量,实现退出实例的分批次退出。

在一些实施例中,接收到应用重启指令时,获取所述重启指令指示的重启数量和重启步长,所述重启步长为每批启动实例的数量;针对每一批,根据所述重启数量和所述重启步长选择待重启实例;启动所述待重启实例,直到启动的实例的数量满足所述重启数量。

当接收到调度框架的应用重启指令时,确定重启指令指示的重启数量和重启步长。其中,重启指令可携带重启数量和重启步长。重启数量为需重启的实例的总数量,重启步长为每批重启实例的数量。

在确定重启数量和重启步长后,在候选实例中根据重启数量和重启步长选择待重启实例。

在一些实施例中,根据所述重启数量和所述重启步长选择待重启实例包括:获取候选实例的指标和所述指标对应的权重;根据所述重启数量、所述指标和所述指标对应的权重确定所述重启步长个待重启实例。候选实例为未运行的实例,在未运行的实例中,选择待重启实例时,根据各候选实例的指标和指标对应的权重值来选择待重启实例。指标可包括并发数、cpu使用情况、内存使用情况、会话连接数、等待队列等的参数,各指标设置有权重值。

根据所述重启数量、所述指标和所述指标对应的权重确定所述重启步长个待重启实例包括:根据计算各候选实例的实例分值α,其中,m为重启数量,m为指标,xm为指标m对应的权重;根据各候选实例的实例分值对各候选实例进行排序,根据排序的结果选择重启步长个候选实例作为待重启实例。比如:如并发数为100,并发对应的权重为0.3,则这项的得分为30。根据各候选实例的实例分值对所有的候选实例进行排序,其中,从实例得分的高低对各实例进行排序,将实例分值高的前n个候选实例确定为待重启实例。

这里,在应用重启时,删除一批待退出实例,则启动一批待重启实例。每一批重启时待重启实例的个数为重启步长,在重启实例时,可根据各待重启实例的实例分值来确定待重启实例的重启顺序,从而选择相对更不稳定、压力更大的实例优先进行重启,可以很好的避免一些可能发生的抖动。

当待重启实例重启后,将待重启实例的实例信息发送至可用实例列表,以指示可用实例列表对该实例的转发。

在本发明实施例中,在退出实例的过程中,将需退出的实例进行分批退出,且针对每一批,选择待退出实例后,并未直接删除待退出实例,而是将待退出实例的实例信息通知给可用实例列表的同时,检查待退出实例的任务执行状态,以指示可用实例列表移除待退出实例,停止向待退出实例转发用户的请求的同时,确认待退出实例的请求处理完成,任务执行状态为空闲时将待退出实例删除;如此,通过分步退出的方法,对待退出的实例的任务执行状态进行检测,实现了对应用下实例的精确控制,退出实例不会被分发到任何请求,也不会在请求处理完成前被删除,对用户的访问不会产生任何的影响,达到重启应用不影响用户正常访问的目的,实现用户无感知的重启。

进一步地,在应用重启时,可以根据对实例的状态、资源消耗、请求情况进行分析、评分,从多个维度考量实例状态,从而有助于选出合适的待重启实例进行启动,能够减少对请求正常处理流程的影响。

进一步地,对实例状态检查,查看是否满足退出条件,不满足的情况下延迟再次进行判断,可以保障所有请求得到成功处理。该方法可用于无缝应用升级、应用应急重启等场景。

实施例二

基于上述实施例,对应用重启场景下本发明实施例提供的应用实例的管理方法进行进一步说明。

本发明实施例的应用重启方法的调度结构如图3所示,调度结构的组件包括:调度框架、调控模块、应用、实例和负载/服务发现。其中,

调度框架:调度框架是一种动态的应用管理系统,可以对应用进行发布、修改、重启、扩缩等操作,通过对所有实例进行统一操作管理,实现无差异化的扩缩,在新一代数据中心中有出色的表现。

调控模块:是一个应用调度的扩展装置,通过对应用重启操作的重新定义,达到对实例进行管控的功能。同时其具体丰富的自定义接口,支持对实例进行退出前检查、退出通知等功能。通过对操作指令的拦截,可以很好的在原生调度框架之上,提供可扩展的功能。

应用:应用是指对外提供服务的某个系统的一个独立运行模块,或是一个能够运行的完整的业务,常见的应用如网站、后台等时刻提供外部访问服务。

实例:同一个应用下的所有实例均提供等价服务,一致内容和相同权重,每个实例都是一份运行的拷贝,均能单独承载一定量的业务请求。每个实例都有能够反馈自身运行状态的接口,供box调用查看实例是否满足退出状态。

负载/服务发现:通过服务发现的方式,将新启动的实例自动的添加到负载上,能够统一对外服务,使得应用拥有统一入口,无需对新增实例、退出实例进行额外的修改。负载将根据应用,将外部请求通过如轮询等方式,分发给各个绑定到其上的实例。

如图3所示,应用当前运行的实例包括实例1、实例2、实例3和实例4,由调控模块接收操作指令,并将接收的操作指令转发给调度框架。调度框架和调控模块能够同时对应用当前运行的实例进行调控,并且,当用户发出访问请求时,负载/服务发现将接收的访问请求以请求的形式转发至当前运行的实例,通过当前运行的实例:实例1、实例2、实例3和实例4中的实例对接收到的请求进行处理。

本实施例提供的基于上述调度结构的应用重启方法如图4所示,包括:

s401、接收重启指令;

s402、获取当前运行的实例的运行信息;

s403、确定待重启实例;

确定当前批次待重启实例后,启动当前批次对应的待重启实例,并执行s405、将实例信息发送至负载/服务发现的可用实例列表。这里的实例信息为待重启实例的实例信息。

s404、根据获取的运行信息确定待退出实例;

确定当前批次待退出实例后,执行s405、将待退出实例的实例信息发送至负载/服务发现的可用实例列表。其中,这里的实例信息为当前批次待退出实例的实例信息,当前批次待退出实例的个数为退出步长。

s406、检测待退出实例是否满足退出条件;

当待退出实例满足退出条件时,执行s407删除待退出实例;当待退出实例不满足退出实例时,等待设定的时长后,再次检测待退出实例是否满足退出条件,直到待退出实例满足退出条件。这里,退出条件可为实例的任务执行状态为空闲。

其中,在删除当前批次的待退出实例后检测是否还存在待退出实例,当还存在待退出实例时,执行s403,直到重启的实例的数量满足重启数量且退出实例的数量满足退出数量。

当确定所有的待退出实例退出时,确定重启成功。

在本实施例中,在重启时,待重启的实例的数量为重启数量,可以指定重启的步长(既每次待重启实例的个数),而在选择待重启实例时,需要优先考虑当前承载的业务量,当前资源的占用情况,从而选出对整体影响最小的实例。

在调控模块收到重启请求即重启指令后,会调度所有当前运行的实例,令其汇报当前运行情况,包括线程数、并发数、资源消耗、等待队列等信息。根据所有运行的实例所汇总的信息,从中挑选出最合适的实例作为待退出实例,进行预退出操作。预退出操作分为两步,首先通知服务发现/负载移除对待退出实例的转发,其次检查待退出实例是否满足退出条件,如果仍有未处理完成的请求,则延后一段时间再次尝试,否则直接删除该待退出实例。

在进行待退出实例选择的过程中,需要综合考量实例的运行状态、资源消耗情况、请求队列等。在选择待退出实例时,由于会等待实例完成当前所有任务才进行退出,所以随机退出实例和有选择性的退出实例,两种方式哪个表现更好就有待考量。

在考虑到应用重启会带来的影响,选择相对而言更不稳定、压力更大的实例优先作为待重启实例进行重启,可以很好的避免一些可能发生的抖动。对于一待重启实例,m代表该重启实例的个数,m、xm分别表示该待重启实例的各项指标值及其对应的权重,其中,0<i≤m,以计算权重求和的方差。比如:并发数为100,并发对应的权重为0.3,则这项的得分为30,α代表该待重启实例的得分,得分越高则越先重启。

需要说明的是,本应用实例在重启的过程中,可根据第一批退出-第一批启动-第二批退出-第二批启动……第k批退出-第k批启动的方式进行分布重启。其中,k为退出数量和退出步长的比值、或重启数量和重启步长的比值。从而通过不断重复启动新实例、删除旧实例就可以达到原有框架的重启功能。而自定义实现的新重启方法,可以更好的控制实例,将重启对用户感知产生的影响降至最低。

本实施例提供的重启方法,在每次进行实例退出操作前,进行预通知,使得服务发现程序、负载能够提前得知变更,保障用户请求都会被分发到存活的实例中。同时,对于实例退出也进行精确的控制,包括对实例内现有任务检查、实例分配到请求是否处理完全等,也会纳入实例退出的条件当中。

进一步地,可根据实际应用情况添加相应的检测项,根据检测项检查实例的状态,使得退出实例可以预期为相对空闲的实例,而不是随机选择。

本实施例提供的重启方法具有可扩展性、普适性和访问无感知性。对于可扩展性,可根据实际应用情况添加相应的检测项,根据检测项检查实例的状态,使得退出实例可以预期为相对空闲的实例,而不是随机选择。对于普适性,可以适用于任何应用的重启、减少实例的操作,从而降低对用户的影响。对于访问无感知性,退出实例不会被分发到任何请求,也不会在请求处理完成前被删除。

实施例三

为实现本发明实施例提供的应用实例的管理方法,本发明实施例提供一种应用实例的管理装置,如图5所示,所述装置包括:接收模块501、预退出模块502和退出模块503;其中,

接收模块501,用于接收到退出指令时,获取所述退出指令指示的退出数量和退出步长,所述退出步长为每批退出实例的数量;

预退出模块502,用于根据所述退出步长在当前运行的实例中选择待退出实例,将所述待退出实例的实例信息通知给可用实例列表,以指示所述可用实例列表移除所述待退出实例,并检查所述待退出实例的任务执行状态;

退出模块503,用于确定所述待退出实例的任务执行状态为空闲时,删除所述待退出实例,直到删除的待退出实例的数量满足所述退出数量。

在一实施例中,所述装置还包括:指令接收模块504、选择模块505和启动模块506,其中,

指令接收模块504,用于接收到应用重启指令时,获取所述重启指令指示的重启数量和重启步长,所述重启步长为每批启动实例的数量;

选择模块505,用于针对每一批,根据所述重启数量和所述重启步长选择待重启实例;

启动模块506,用于启动所述待重启实例,直到启动的实例的数量满足所述重启数量。

在一实施例中,选择模块505根据所述重启数量和所述重启步长选择待重启实例包括:

获取候选实例的指标和所述指标对应的权重;

根据所述重启数量、所述指标和所述指标对应的权重确定所述所述重启步长个待重启实例。

在一实施例中,选择模块505根据所述重启数量、所述指标和所述指标对应的权重确定所述所述重启步长个待重启实例包括:

根据计算各候选实例的实例分值α,其中,m为重启数量,m为指标,xm为指标m对应的权重;

根据各候选实例的实例分值对各候选实例进行排序,根据排序的结果选择重启步长个候选实例作为待重启实例。

在一实施例中,预退出模块502根据所述退出步长在当前运行的实例中选择待退出实例包括:

获取当前运行的实例的运行信息,根据所述当前运行的实例的运行信息选择所述退出步长个待退出实例。

在一实施例中,如图6所示,所述装置还包括检查模块507,用于确定所述待退出实例的任务执行状态为忙时,等待设定的时长后,再次检查所述待退出实例的任务执行状态。

需要说明的是:上述实施例提供的应用实例的管理装置在进行应用实例的管理时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的应用实例的管理装置与应用实例的管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

实施利四

本发明实施例还提供了一种应用实例的管理装置,该装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行:

接收到退出指令时,获取所述退出指令指示的退出数量和退出步长,所述退出步长为每批退出实例的数量;

根据所述退出步长在当前运行的实例中选择待退出实例,将所述待退出实例的实例信息通知给可用实例列表,以指示所述可用实例列表移除所述待退出实例,并检查所述待退出实例的任务执行状态;

确定所述待退出实例的任务执行状态为空闲时,删除所述待退出实例,直到删除的待退出实例的数量满足所述退出数量。

在一实施例中,处理器用于运行所述计算机程序时,还执行:

接收到应用重启指令时,获取所述重启指令指示的重启数量和重启步长,所述重启步长为每批启动实例的数量;

针对每一批,根据所述重启数量和所述重启步长选择待重启实例;

启动所述待重启实例,直到启动的实例的数量满足所述重启数量。

在一实施例中,处理器用于运行所述计算机程序时,执行根据所述重启数量和所述重启步长选择待重启实例包括:

获取候选实例的指标和所述指标对应的权重;根据所述重启数量、所述指标和所述指标对应的权重确定所述重启步长个待重启实例。

在一实施例中,处理器用于运行所述计算机程序时,执行所述根据所述重启数量、所述指标和所述指标对应的权重确定所述重启步长个待重启实例包括:

根据计算各候选实例的实例分值α,其中,m为重启数量,m为指标,xm为指标m对应的权重;根据各候选实例的实例分值对各候选实例进行排序,根据排序的结果选择重启步长个候选实例作为待重启实例。

在一实施例中,处理器用于运行所述计算机程序时,执行所述在当前运行的实例中选择待退出实例包括:

获取当前运行的实例的运行信息,根据所述根据所述退出步长当前运行的实例的运行信息选择所述退出步长个待退出实例。

在一实施例中,处理器用于运行所述计算机程序时,还执行:

确定所述待退出实例的任务执行状态为忙时,等待设定的时长后,再次检查所述待退出实例的任务执行状态。

图7是本发明实施例四的应用实例的管理装置的结构示意图,图7所示的应用实例的管理装置包括:至少一个处理器701和存储器702。应用实例的管理装置中的各个组件通过总线系统703耦合在一起。可理解,总线系统703用于实现这些组件之间的连接通信。

可以理解,存储器702可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdram,enhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本发明实施例描述的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。

本发明实施例中的存储器702用于存储各种类型的数据以支持实施例四的应用实例的管理装置的操作。

上述本发明实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器701可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成前述方法的步骤。

在示例性实施例中,实施例四的应用实例的管理装置可以被一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)、通用处理器、控制器、微控制器(mcu,microcontrollerunit)、微处理器(microprocessor)、或其他电子元件实现,用于执行前述方法。

实施例五

在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器702,上述计算机程序可由应用实例的管理装置中的处理器701执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flashmemory、磁表面存储器、光盘、或cd-rom等存储器。

一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器运行时,执行:

接收到退出指令时,获取所述退出指令指示的退出数量和退出步长,所述退出步长为每批退出实例的数量;

根据所述退出步长在当前运行的实例中选择待退出实例,将所述待退出实例的实例信息通知给可用实例列表,以指示所述可用实例列表移除所述待退出实例,并检查所述待退出实例的任务执行状态;

确定所述待退出实例的任务执行状态为空闲时,删除所述待退出实例,直到删除的待退出实例的数量满足所述退出数量。

在一实施例中,所述计算机程序被处理器运行时,还执行:

接收到应用重启指令时,获取所述重启指令指示的重启数量和重启步长,所述重启步长为每批启动实例的数量;

针对每一批,根据所述重启数量和所述重启步长选择待重启实例;

启动所述待重启实例,直到启动的实例的数量满足所述重启数量。

在一实施例中,所述计算机程序被处理器运行时,执行所述根据所述重启数量和所述重启步长选择待重启实例包括:

获取候选实例的指标和所述指标对应的权重;

根据所述重启数量、所述指标和所述指标对应的权重确定所述重启步长个待重启实例。

在一实施例中,所述计算机程序被处理器运行时,执行所述根据所述重启数量、所述指标和所述指标对应的权重确定所述重启步长个待重启实例包括:

根据计算各候选实例的实例分值α,其中,m为重启数量,m为指标,xm为指标m对应的权重;

根据各候选实例的实例分值对各候选实例进行排序,根据排序的结果选择重启步长个候选实例作为待重启实例。

在一实施例中,所述计算机程序被处理器运行时,执行所述根据所述退出步长在当前运行的实例中选择待退出实例包括:

获取当前运行的实例的运行信息,根据所述当前运行的实例的运行信息选择所述退出步长个待退出实例。

在一实施例中,所述计算机程序被处理器运行时,还执行:确定所述待退出实例的任务执行状态为忙时,等待设定的时长后,再次检查所述待退出实例的任务执行状态。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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