分布式系统、用于主服务器的信息处理方法和装置与流程

文档序号:15024819发布日期:2018-07-27 12:38阅读:121来源:国知局

本申请涉及计算机技术领域,具体涉及分布式系统、用于主服务器的信息处理方法和装置。



背景技术:

信息处理,是通过一定的手段,对获取到的原始信息再加工,使得处理后的信息为期望得到的信息。

现有的分布式系统架构中,通常在分布式系统中设置用于承载应用程序的容器,从而对分布式系统中容器进行操作,达到信息处理的目的。



技术实现要素:

本申请实施例提出了分布式系统、用于主服务器的信息处理方法和装置。

第一方面,本申请实施例提供了一种分布式系统,包括主服务器、执行服务器集群以及代理服务器,执行服务器集群包括至少一个执行服务器;代理服务器,用于接收第一操作请求以及执行服务器的标识信息,基于标识信息,从执行服务器集群中选择与标识信息对应的目标执行服务器,将第一操作请求发送至目标执行服务器;目标执行服务器,用于响应于接收到代理服务器发送的第一操作请求,执行第一操作请求对应的操作;基于操作结果,确定是否向主服务器发送目标执行服务器信息,其中目标执行服务器信息包括目标执行服务器的心跳信息;主服务器,用于接收目标执行服务器信息;响应于在预设时间段内未接收到心跳信息,确定目标执行服务器停止运行;将目标执行服务器中的容器迁移至容器等待队列,将目标执行服务器从执行服务器队列中移除;更新目标执行服务器的状态信息以及迁移后的容器的状态信息。

在一些实施例中,目标执行服务器信息还包括目标执行服务器的资源信息;以及主服务器还用于:响应于在预设时间段内接收到资源信息,存储标识信息;将目标执行服务器添加至执行服务器队列。

在一些实施例中,主服务器还用于:周期性地遍历执行服务器队列,确定执行服务器队列中是否存在满足第一条件的执行服务器;响应于存在满足第一条件的执行服务器,将容器等待队列中资源和最大的容器迁移至满足第一条件的执行服务器;更新迁移后的容器的状态信息。

在一些实施例中,主服务器还用于:周期性地遍历执行服务器队列,确定执行服务器队列中是否存在满足第二条件的执行服务器;响应于存在满足第二条件的执行服务器,停止运行满足第二条件的执行服务器上资源和最大的容器;将停止运行的容器从容器等待队列中移除;更新执行服务器的状态信息,注销并移除停止运行的容器。

在一些实施例中,主服务器还用于:接收第二操作请求,其中,第二操作请求包括第一容器信息;存储第一容器信息,将第一容器添加至容器等待队列;向满足第一条件的执行服务器发送第一容器信息以及第一容器的启动请求;响应于接收到运行第一容器的执行服务器发送的该执行服务器的注册请求以及第一容器的注册请求,更新第一容器信息以及运行第一容器的执行服务器的信息。

在一些实施例中,主服务器还用于:接收第三操作请求,其中,第三操作请求包括第二容器信息;向运行第二容器的执行服务器发送第三操作请求;响应于预设时间段内没有接收到运行第二容器的执行服务器返回的心跳信息,注销并移除第二容器。

第二方面,本申请实施例提供了一种用于主服务器的信息处理方法,主服务器与至少一个执行服务器通信连接,该方法包括:确定预设时间段内是否接收到目标执行服务器信息,其中,目标执行服务器信息包括目标执行服务器的心跳信息;响应于预设时间段内未接收到心跳信息,确定目标执行服务器停止运行;将目标执行服务器中的容器添加至容器等待队列,将目标执行服务器从执行服务器队列中移除;更新目标执行服务器的状态信息以及迁移后的容器的状态信息。

在一些实施例中,目标执行服务器信息还包括目标执行服务器的资源信息;以及方法还包括:响应于预设时间段内接收到资源信息,存储目标执行服务器的标识信息;将目标执行服务器添加至执行服务器队列。

在一些实施例中,方法还包括:周期性地遍历执行服务器队列,确定执行服务器队列中是否存在满足第一条件的执行服务器;响应于存在满足第一条件的执行服务器,将容器等待队列中资源和最大的容器迁移至满足第一条件的执行服务器。

在一些实施例中,方法还包括:周期性地遍历执行服务器队列,确定执行服务器队列中是否存在满足第二条件的执行服务器;响应于存在满足第二条件的执行服务器,停止运行满足第二条件的执行服务器上资源和最大的容器;将停止运行的容器从容器等待队列中移除;更新执行服务器的状态信息,注销并移除停止运行的容器。

在一些实施例中,方法还包括:接收第一操作请求,其中,第一操作请求包括第一容器信息;存储第一容器信息,将第一容器添加至容器等待队列;向满足第一条件的执行服务器发送第一容器信息以及第一容器的启动请求;响应于接收到运行第一容器的执行服务器发送的该执行服务器的注册请求以及第一容器的注册请求,更新第一容器信息以及运行第一容器的执行服务器的信息。

在一些实施例中,方法还包括:接收第二操作请求,其中,第二操作请求包括第二容器信息;向运行第二容器的执行服务器发送第二操作请求;响应于预设时间段内没有接收到运行第二容器的执行服务器返回的心跳信息,注销并移除第二容器。

第三方面,本申请实施例提供了一种用于主服务器的信息处理装置,主服务器与至少一个执行服务器通信连接,该装置包括:第一确定单元,配置用于确定预设时间段内是否接收到目标执行服务器信息,其中,目标执行服务器信息包括目标执行服务器的心跳信息;第二确定单元,配置用于响应于预设时间段内未接收到心跳信息,确定目标执行服务器停止运行;添加单元,配置用于将目标执行服务器中的容器添加至容器等待队列,将目标执行服务器从执行服务器队列中移除;更新单元,配置用于更新目标执行服务器的状态信息以及迁移后的容器的状态信息。

在一些实施例中,目标执行服务器信息还包括目标执行服务器的资源信息,该装置进一步配置用于响应于预设时间段内接收到资源信息,存储目标执行服务器的标识信息;将目标执行服务器添加至执行服务器队列。

在一些实施例中,该装置进一步配置用于周期性地遍历执行服务器队列,确定执行服务器队列中是否存在满足第一条件的执行服务器;响应于存在满足第一条件的执行服务器,将容器等待队列中资源和最大的容器迁移至满足第一条件的执行服务器。

在一些实施例中,该装置进一步配置用于周期性地遍历执行服务器队列,确定执行服务器队列中是否存在满足第二条件的执行服务器;响应于存在满足第二条件的执行服务器,停止运行满足第二条件的执行服务器上资源和最大的容器;将停止运行的容器从容器等待队列中移除;更新执行服务器的状态信息,注销并移除停止运行的容器。

在一些实施例中,该装置进一步配置用于接收第一操作请求,其中,第一操作请求包括第一容器信息;存储第一容器信息,将第一容器添加至容器等待队列;向满足第一条件的执行服务器发送第一容器信息以及第一容器的启动请求;响应于接收到运行第一容器的执行服务器发送的该执行服务器的注册请求以及第一容器的注册请求,更新第一容器信息以及运行第一容器的执行服务器的信息。

在一些实施例中,该装置进一步配置用于接收第二操作请求,其中,第二操作请求包括第二容器信息;向运行第二容器的执行服务器发送第二操作请求;响应于预设时间段内没有接收到运行第二容器的执行服务器返回的心跳信息,注销并移除第二容器。

第四方面,本申请实施例提供了一种服务器,该服务器包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第二方面中任一实现方式描述的方法。

第五方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第二方面中任一实现方式描述的方法。

本申请实施例提供的分布式系统、用于主服务器的信息处理方法和装置,通过从服务器集群中选择目标服务器执行第一操作请求对应的操作,然后目标执行服务器根据执行结果,确定是否向主服务器发送目标执行服务器信息;接着主服务器在没有接收到目标执行服务器发送的目标执行服务器的心跳信息时,将目标执行服务器中的容器迁移至容器等待队列,并将目标执行服务器从执行服务器队列中删除,从而提高了分布式系统的灵活性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是根据本申请的用于分布式系统的示例性系统架构图;

图2是根据本申请的用于主服务器的信息处理方法的一个实施例的流程图;

图3是根据本申请的用于主服务器的信息处理方法的又一个实施例的流程图;

图4是根据本申请的用于主服务器的信息处理方法的再一个实施例的流程图;

图5是根据本申请的用于主服务器的信息处理装置的一个实施例的结构示意图;

图6是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请实施例的分布式系统的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备101、主服务器102、执行服务器103、代理服务器104以及网络105、106、107、108,其中,执行服务器集群103可以包括执行服务器1031、1032、1033、1034。网络105用以在终端设备101与主服务器102之间提供通信链路的介质;网络106用以在终端设备101与代理服务器104之间提供通信链路的介质;网络107用以在主服务器102与执行服务器集群103之间提供通信链路的介质;网络108用以在代理服务器104与执行服务器集群103之间提供通信链路的介质。网络105、106、107、108可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101通过网络105、106分别与主服务器102以及代服务器104交互,以接收或发送消息。终端设备101可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

代理服务器104可以对终端设备101发送的请求进行各种数据分析处理,并根据分析结果对所述服务器集群103中的服务器进行管理操作。

在本实施例中,代理服务器104用于接收第一操作请求以及执行服务器的标识信息,基于标识信息,从执行服务器集群103中选择与标识信息对应的目标执行服务器,将第一操作请求发送至目标执行服务器。在这里,该第一操作请求例如可以包括从执行服务器集群中选择执行服务器添加至执行服务器队列,从执行服务器队列中移除执行服务器等。上述执行服务器的标识信息例如可以为执行服务器所在的域名、执行服务器的IP地址、执行服务器的端口号等。

执行服务器集群103用于对主服务器102或代理服务器104发送的任务进行执行处理。

在本实施例中,位于执行服务器集群103中的目标执行服务器用于响应于接收到代理服务器发送的操作请求,执行第一操作请求对应的操作;基于操作结果,确定是否向主服务器发送目标执行服务器信息,其中,目标执行服务器信息包括目标执行服务器的心跳信息。在这里,心跳信息用于表征该目标执行服务器是否处于运行状态。

主服务器102可以是提供各种服务的服务器,例如主服务器102可以将接收到的终端设备101发送的请求进行各种数据分析等处理,并根据分析结果选择执行服务器集群中的服务器执行请求;还可以对接收到的执行服务器集群103中的执行服务器发送的数据进行各种分析等处理,并将处理结果存储。

在本实施例中,主服务器102用于接收目标执行服务器信息。响应于预设时间段内未接收到心跳信息,确定目标执行服务器停止运行。将目标执行服务器中的容器添加至容器等待队列,将目标执行服务器从执行服务器队列中移除,在这里,该主服务器中设置有执行服务器队列表、执行服务器队列集合等,该执行服务器队列表或执行服务器队列集合中存储中正在运行的执行服务器的标识信息。当需要将执行服务器从执行服务器队列中移除时,可以将执行服务器的标识信息从该执行服务器队列表或执行服务器队列集合中删除。更新目标执行服务器的状态信息以及迁移后的容器的状态信息。在这里,容器例如可以为应用程序的隔离环境,即每个容器中运行有一个应用程序,其可以共享相同的操作系统内核(例如Windows Server容器和Hyper-V容器);该容器例如可以为应用程序,即将应用程序部署为容器(例如将Linux应用程序部署为容器);该容器例如可以为服务,即为应用程序提供协调资源、管理资源、计算资源等,在这里,资源可以为CPU资源、内存资源、内核资源等。

在本实施例的一些可选的实现方式中,上述目标执行服务器信息还包括目标执行服务器的资源信息。主服务器102还用于响应于在预设时间段内接收到资源信息,存储该目标执行服务器的标识信息,同时将目标执行服务器添加至执行服务器队列。在这里,该主服务器中设置有执行服务器队列表、执行服务器队列集合等,该执行服务器队列表或执行服务器队列集合中存储中正在运行的执行服务器的标识信息。当需要将执行服务器添加至执行服务器队列中时,可以将执行服务器的标识信息添加至该执行服务器队列表或执行服务器队列集合中。这样一来,主服务器在调用执行服务器时,可以查询执行服务器对列表或执行服务器队列集合来选择执行服务器执行任务。

在本实施例的一些可选的实现方式中,主服务器102还用于周期性地遍历执行服务器队列,确定执行服务器队列中是否存在满足第一条件的执行服务器;响应于存在满足第一条件的执行服务器,将容器等待队列中资源和最大的容器迁移至满足第一条件的执行服务器;更新迁移后的容器的状态信息。

在本实施例的一些可选的实现方式中,主服务器102还用于周期性地遍历执行服务器队列,确定执行服务器队列中是否存在满足第二条件的执行服务器;响应于存在满足第二条件的执行服务器,停止运行满足第二条件的执行服务器上资源和最大的容器;将停止运行的容器从容器等待队列中移除;更新执行服务器的状态信息,注销并移除停止运行的容器。

在本实施例的一些可选的实现方式中,主服务器102还用于接收第二操作请求,其中,第二操作请求包括第一容器信息;存储第一容器信息,将第一容器添加至容器等待队列;向满足第一条件的执行服务器发送第一容器信息以及第一容器的启动请求;响应于接收到运行第一容器的执行服务器发送的该执行服务器的注册请求以及第一容器的注册请求,更新第一容器信息以及运行第一容器的执行服务器的信息。

在本实施例的一些可选的实现方式中,主服务器102还用于接收第三操作请求,其中,第三操作请求包括第二容器信息;向运行第二容器的执行服务器发送第三操作请求;响应于预设时间段内没有接收到运行第二容器的执行服务器返回的心跳信息,注销并移除第二容器。

需要说明的是,本申请实施例提供的信息处理方法一般由主服务器102执行,相应的,信息处理装置一般设置于主服务器102中。

应该理解,图1中的终端设备、网络、主服务器、代理服务器、执行服务器集群以及执行服务器集群中的执行服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、主服务器、代理服务器、执行服务器集群以及执行服务器集群中的执行服务器。

本申请实施例提供的分布式系统,通过从服务器集群中选择目标服务器执行第一操作请求对应的操作,然后目标执行服务器根据执行结果,确定是否向主服务器发送目标执行服务器信息;接着主服务器在没有接收到目标执行服务器发送的目标执行服务器的心跳信息时,将目标执行服务器中的容器迁移至容器等待队列,并将目标执行服务器从执行服务器队列中删除,从而提高了分布式系统的灵活性。

继续参考图2,示出了根据本申请的用于主服务器的信息处理方法的一个实施例的流程200。该用于主服务器的信息处理方法,包括以下步骤:

步骤201,确定预设时间段内是否接收到目标执行服务器信息。

在本实施例中,用于主服务器的信息处理方法运行于其上的电子设备(例如图1所示的主服务器102)与服务器集群(例如图1所示的服务器集群103)中的至少一个执行服务器通信连接,并从至少一个执行服务器中接收执行服务器信息。上述电子设备可以确定预设时间段内是否接收到目标执行服务器信息。在这里,该目标执行服务器信息包括目标执行服务器的心跳信息,该心跳信息用于表征该目标执行服务器是否处于运行状态。

在本实施例中,目标执行服务器与代理服务器(例如图1所示的代理服务器104)通信连接,该目标执行服务器由代理服务器基于接收到的操作请求以及执行服务器的标识信息、从至少一个执行服务器中选择确定。该操作请求例如可以包括从执行服务器集群中选择执行服务器添加至执行服务器队列,从执行服务器队列中移除执行服务器等。上述执行服务器的标识信息例如可以为执行服务器所在的域名、执行服务器的IP地址、执行服务器的端口号等。

在本实施例中,上述目标执行服务器基于代理服务器接收第一操作请求以及执行服务器的标识信息、基于标识信息、从至少一个执行服务器中选择与标识信息对应的目标执行服务器执行第一操作。

作为示例,执行服务器中可以设置有用于控制该目标执行服务器启动或停止的进程(例如Kubernetes分布式框架中的Proxy进程),上述代理服务器(例如Kubernetes分布式框架中的Proxy Manager服务器)可以根据标识信息,从服务器集群中选择目标执行服务器,并向目标执行服务器中控制该目标执行服务器启动或停止的进程发送第一操作请求,当第一操作请求为启动运行该目标执行服务器时,向上述控制进程发送启动运行该目标执行服务器的请求;当第一操作请求为停止运行该目标执行服务器时,向上述控制进程发送停止运行该目标执行服务器的请求。

在本实施中,目标执行服务器基于接收到的代理服务器发送的操作请求,执行操作请求对应的操作。并根据操作结果,确定是否向上述电子设备发送目标执行服务器信息。

作为示例,当该操作为启动运行该目标执行服务器的操作时,上述目标执行服务器可以在启动运行后,将目标执行服务器信息发送至上述电子设备;当该操作为停止运行该执行服务器的操作时,上述目标执行服务器可以在停止运行后,不向上述电子设备发送执行服务器信息。

步骤202,响应于预设时间段内未接收到心跳信息,确定目标执行服务器停止运行。

在本实施例中,上述电子设备可以根据预设的时间间隔接收目标执行服务器的心跳信息以确定目标执行服务器处于运行状态。当上述电子设备在预设时间段内未接收到目标执行服务器的心跳信息时,可以确定目标执行服务器停止运行。

步骤203,将目标执行服务器中的容器迁移至容器等待队列,将目标执行服务器从执行服务器队列中移除。

在本实施例中,执行服务器中通常设置有至少一个容器,该容器例如可以为应用程序的隔离环境,即每个容器中运行有一个应用程序,其可以共享相同的操作系统内核(例如Windows Server容器和Hyper-V容器);该容器例如可以为应用程序,即将应用程序部署为容器(例如将Linux应用程序部署为容器);该容器例如可以为服务,即为应用程序提供协调资源、管理资源、计算资源等,在这里,资源可以为CPU资源、内存资源、内核资源等。以Kubernetes为例,Kubernetes是由谷歌设计开发的开源容器集群管理项目。它的设计目标是在主机集群之间提供一个能够自动化部署、可拓展、应用容器可运营的平台。Kubernetes可提供基于云服务的容器管理系统。在Kubernetes中,每一个容器可以与一个进程对应,也可以与一个应用程序对应。开发人员可以通过云平台移动Kubernetes容器工作负载,而无需更改代码。

在本实施例中,当上述电子设备确定目标执行服务器停止运行后,可以将运行在目标执行服务中的容器迁移至容器等待队列。例如,当该容器为应用程序时,将该容器迁移至容器等待队列中可以进一步运行该应用程序;当该容器为服务资源时,将该容器从目标执行服务器中迁移至容器等待队列可以为服务器集群释放更多的服务资源。将目标执行服务器中的容器迁移至等待队列后,可以将目标执行服务器从执行服务器队列中移除,从而达到分布式系统减少执行服务器数量的目的。在这里,上述电子设备中设置有执行服务器队列表、执行服务器队列集合等,该执行服务器队列表或执行服务器队列集合中存储中正在运行的执行服务器的标识信息。当需要将执行服务器从执行服务器队列中移除时,可以将执行服务器的标识信息从该执行服务器队列表或执行服务器队列集合中删除。

步骤204,更新目标执行服务器的状态信息以及迁移后的容器的状态信息。

在本实施例中,分布式系统中存储有执行服务器集群中各执行服务器的状态信息,同时存储有设置于该分布式系统中的各容器的状态信息。上述状态信息可以存储在上述电子设备中,也可以通过设置存储服务器存在存储服务器中。

当目标执行服务器中容器迁移至容器等待队列、同时目标执行服务器从执行服务器队列中移除后,上述电子设备可以更新目标执行服务器的状态信息以及迁移后的容器的状态信息。例如,当上述目标执行服务器在执行第一操作之前的状态为“运行”,从执行服务器队列中移除后,可以将执行服务器的状态更新为“停止”或“死亡”。上述执行服务器中的容器在迁移前的状态为“运行于xx执行服务器中”,迁移后的状态可以更新为“等待”。

本申请实施例提供的用于主服务器的信息处理方法,通过确定预设时间段内没有接收到目标执行服务的心跳信息时,将目标执行服务器中的容器迁移至容器等待队列,并将目标执行服务器从执行服务器队列中删除,从而提高了分布式系统中信息处理的灵活性。

继续参考图3,示出了根据本申请的用于主服务器的信息处理方法的又一个实施例的流程300。该用于主服务器的信息处理方法,包括以下步骤:

步骤301,确定预设时间段内是否接收到目标执行服务器信息。

在本实施例中,用于主服务器的信息处理方法运行于其上的电子设备(例如图1所示的主服务器102)与服务器集群(例如图1所示的服务器集群103)中的至少一个执行服务器通信连接,并从至少一个执行服务器中接收执行服务器信息。上述电子设备可以确定预设时间段内是否接收到目标执行服务器信息。在这里,该目标执行服务器信息包括目标执行服务器的心跳信息,该心跳信息用于表征该目标执行服务器是否处于运行状态。

在本实施例中,响应于在预设时间段内未接收到心跳信息,执行以下步骤:

步骤3021,确定目标执行服务器停止运行。

在本实施例中,上述电子设备可以根据预设的时间间隔接收目标执行服务器的心跳信息以确定目标执行服务器处于运行状态。当上述电子设备在预设时间段内未接收到目标执行服务器的心跳信息时,可以确定目标执行服务器停止运行。

步骤3022,将目标执行服务器中的容器迁移至容器等待队列,将目标执行服务器从执行服务器队列中移除。

在本实施例中,当上述电子设备确定目标执行服务器停止运行后,可以将运行在目标执行服务中的容器迁移至容器等待队列。将目标执行服务器中的容器迁移至等待队列后,可以将目标执行服务器从执行服务器队列中移除,从而达到分布式系统减少执行服务器数量的目的。

步骤3023,更新目标执行服务器的状态信息以及迁移后的容器的状态信息。

在本实施例中,分布式系统中存储有执行服务器集群中各执行服务器的状态信息,同时存储有设置于该分布式系统中的各容器的状态信息。上述状态信息可以存储在上述电子设备中,也可以通过设置存储服务器存在存储服务器中。

当目标执行服务器中容器迁移至容器等待队列、同时目标执行服务器从执行服务器队列中移除后,上述电子设备可以更新目标执行服务器的状态信息以及迁移后的容器的状态信息。

在本实施例中,响应于预设时间段内接收到资源信息,执行以下步骤:

步骤3031,存储目标执行服务器的标识信息。

在本实施例中,上述目标执行服务器信息还包括资源信息,该资源信息例如可以包括目标执行服务器所占用的CPU信息、内存信息,以及该资源的使用情况等。当上述电子设备接收到资源信息后,可以将目标执行服务器的标识信息进行存储。同时,确定该目标执行服务器的状态信息。此时,目标执行服务器的状态信息为已注册。在这里,上述标识信息例如可以为执行服务器所在的域名、执行服务器的IP地址、执行服务器的端口号等。

步骤3032,将目标执行服务器添加至执行服务器队列。

在本实施例中,将目标执行服务器的表示信息存储后,上述电子设备可以将目标执行服务器添加至执行服务器队列,从而使得执行服务器集群中可用于执行任务的执行服务器增加,提高了分布式系统的灵活性。在这里,上述电子设备中设置有执行服务器队列表、执行服务器队列集合等,该执行服务器队列表或执行服务器队列集合中存储中正在运行的执行服务器的标识信息。当需要将执行服务器添加至执行服务器队列中时,可以将执行服务器的标识信息添加至该执行服务器队列表或执行服务器队列集合中。这样一来,上述电子设备在调用执行服务器时,可以查询执行服务器对列表或执行服务器队列集合来选择执行服务器执行任务。

在本实施例中,用于主服务器的信息处理方法还包括分布式系统中的容器的迁移步骤和删除步骤。

容器的迁移包括以下步骤:

步骤3041,周期性地遍历执行服务器队列,确定执行服务器队列中是否存在满足第一条件的执行服务器。

在本实施例中,上述电子设备还可以周期性地遍历执行服务器队列,从而确定执行服务器队列中是否存在满足第一条件的执行服务器。在这里,上述周期可以每隔30秒等。在这里,该第一条件可以包括执行服务器中的空闲资源大于等待容器队列中资源和最大的容器。在这里,资源和最大的容器为容器所需的计算资源、存储资源等总和最大(例如CPU资源、内存资源等所需总和最大)的容器。

步骤3042,响应于存在满足第一条件的执行服务器,将容器等待队列中资源和最大的容器迁移至满足第一条件的执行服务器。

在本实施例中,响应于存在满足第一条件的执行服务器时,可以将容器等待队列中资源和最大的容器迁移至该执行服务器中。同时可以将迁移后的容器的信息由“等待状态”更新为“运行在xx执行服务器上”的状态。

容器的删除包括以下步骤:

步骤3051,周期性地遍历执行服务器队列,确定执行服务器队列中是否存在满足第二条件的执行服务器。

在本实施例中,上述周期可以每隔30秒等。该第二条件可以包括执行服务器队列中资源和最小、且该执行服务器中运行着分布式系统中所需资源和最大的容器。在这里,资源和最大的容器为容器所需的计算资源、存储资源等总和最大(例如CPU资源、内存资源等所需总和最大)的容器。

步骤3052,响应于存在满足第二条件的执行服务器,停止运行满足第二条件的执行服务器上资源和最大的容器。

在本实施例中,响应于存在满足第二条件的执行服务器时,可以停止运行该执行服务器上资源和最大的容器。

步骤3053,将停止运行的容器从容器等待队列中移除。

步骤3054,更新执行服务器的状态信息,注销停止运行的容器。

在本实施例中,将停止运行的容器从容器等待队列中移除后,上述电子设备还可以注销停止运行的容器。例如,可以将存储的该容器的标识信息删除。

从图3所示的实施例中可以看出,与图2所示的实施例不同的是,本实施例增加了预设时间段内接收目标执行服务器信息的步骤、分布式系统中的容器的迁移步骤和删除步骤,从而进一步提高了分布式系统中信息处理的灵活性。

继续参考图4,示出了根据本申请的用于主服务器的信息处理方法的又一个实施例的流程400。该用于主服务器的信息处理方法,包括以下步骤:

步骤401,确定预设时间段内是否接收到目标执行服务器信息。

在本实施例中,用于主服务器的信息处理方法运行于其上的电子设备(例如图1所示的主服务器102)与服务器集群(例如图1所示的服务器集群103)中的至少一个执行服务器通信连接,并从至少一个执行服务器中接收执行服务器信息。上述电子设备可以确定预设时间段内是否接收到目标执行服务器信息。

在本实施例中,响应于在预设时间段内未接收到心跳信息,执行以下步骤:

步骤4021,确定目标执行服务器停止运行。

步骤4022,将目标执行服务器中的容器迁移至容器等待队列,将目标执行服务器从执行服务器队列中移除。

步骤4023,更新目标执行服务器的状态新以及迁移后的容器的状态信息。

在本实施例中,响应于预设时间段内接收到资源信息,执行以下步骤:

步骤4031,存储目标执行服务器的标识信息。

步骤4032,将目标执行服务器添加至执行服务器队列。

上述步骤401、步骤4021-步骤4023、步骤4031-步骤4032的具体实施方式可以参考图3所示的步骤301、步骤3021-步骤3023、步骤3031-步骤3032,在此不再赘述。

在本实施例中,用于主服务器的信息处理方法还包括向分布式系统中增加容器的步骤以及从指定的服务器中移除容器的步骤。其中,

增加容器的步骤包括:

步骤4041,接收第一操作请求。

在本实施例中,该第一操作请求例如可以包括向分布式系统中添加容器的请求,该请求中可以包括第一容器信息。该第一容器信息例如可以为容器的端口号等。

作为示例,分布式系统可以应用于深度学习的平台中,当深度学习需要运行更多的实例或应用程序时,终端设备可以向分布式系统中添加容器,即终端设备可以向上述电子设备发送添加容器的请求。

步骤4042,存储第一容器信息,将第一容器添加至容器等待队列。

在本实施例中,基于接收到的第一操作请求,上述电子设备可以存储第一容器信息。也即,对第一容器进行注册。

在本实施例中,当第一容器信息存储完成后,可以将第一容器添加至容器等待队列,以使该第一容器等待被迁移至可用的执行服务器中来执行容器对应的实例。

步骤4043,向满足第一条件的执行服务器发送第一容器信息以及第一容器的启动请求。

在本实施例中,当第一容器添加至容器等待队列后,上述电子设备可以周期性地遍历执行服务器队列,从而确定执行服务器队列中满足第一条件的执行服务器。在这里,上述周期可以每隔30秒等。在这里,该第一条件可以包括执行服务器中的空闲资源大于第一容器所需的资源。

在本实施例中,当确定满足第一条件的执行服务器后,可以向该执行服务器发送第一容器信息以及第一容器启动请求。

在本实施例中,当满足第一条件的执行服务器接收到第一容器信息以及第一容器启动请求后,可以从Docker镜像库中拉取该第一容器,并启动该第一容器。在这里,Docker是一个开源的应用容器引擎,开发者可以将所需的应用打包至一个可移植的应用容器中。

步骤4044,响应于接收到运行第一容器的执行服务器发送的该执行服务器的注册请求以及第一容器的注册请求,更新第一容器信息以及运行第一容器的执行服务器的信息。

在本实施例中,当上述电子设备接收到运行第一容器的执行服务器发送的执行服务器的注册请求以及第一容器的注册请求时,可以将第一容器信息更新为“运行在xx执行服务器上”,可以更新运行第一容器的执行服务器中的容器的数目信息、剩余资源信息等。从而,实现将第一容器添加至分布式系统中。

作为示例,在深度学习平台中,第一容器可以打包有深度学习应用程序。该深度学习应用程序中例如可以包括参数服务进程以及计算服务进程等。参数服务器进程例如可以接收计算服务进程上传的梯度并对参数优化更新,计算服务进程可以对深度学习模型进行计算后得出梯度值,并与参数服务进程通信。上述参数服务进程以及计算服务器进程可以向上述电子设备发送第一容器的注册请求。上述电子设备接收到参数服务进程以及计算服务器进程可以向上述电子设备发送的第一容器的注册请求后,将更新第一容器信息以及运行第一容器的执行服务器的信息。

从指定的服务器中移除容器的步骤包括:

步骤4051,接收第二操作请求。

在本实施例中,该第二操作请求例如可以包括从指定的执行服务器中移除容器的请求,该请求中可以包括第二容器信息。该第二容器信息例如可以为容器的标识信息,例如端口号等。

作为示例,分布式系统可以应用于深度学习的平台中,当深度学习不需要运行太多的实例或应用程序时,为了节省资源,终端设备可以从指定的执行服务器中移除容器,即终端设备可以向上述电子设备发送从指定执行服务器上移除容器的请求。

步骤4052,向运行第二容器的执行服务器发送第二操作请求。

在本实施例中,上述电子设备可以向运行第二容器的执行服务器发送第二操作请求,即移除容器的请求。作为示例,运行于上述电子设备上的资源调度进程可以向执行服务中的控制执行服务器启动或停止的进程发送容器停止请求。从而上述运行第二容器的执行服务器在接收到第二操作请求后,可以停止运行第二容器。

步骤4053,响应于预设时间段内没有接收到运行第二容器的执行服务器返回的心跳信息,注销并移除第二容器。

在本实施例中,上述电子设备在预设时间段内没有接收到运行第二容器的执行服务器返回的心跳信息时,可以注销并移除第二容器。在这里,注销第二容器可以为将存储的第二容器信息删除,同时将第二容器从分布式系统中删除。

作为示例,运行于第二容器上的深度学习应用程序中的参数服务进程以及计算服务进程没有向上述电子设备返回心跳信息时,可以注销并移除第二容器。

从图4所示的实施例中可以看出,与图2、图2所示的实施例均不同的是,本实施例还包括向分布式系统中增加容器的步骤以及从指定的服务器中移除容器的步骤,从而使得分布式系统的应用更加广泛。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于主服务器的信息处理装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图5所示,本实施例的用于主服务器的信息处理装置500包括第一确定单元501、第二确定单元502、添加单元503和更新单元504,其中第一确定单元501配置用于确定预设时间段内是否接收到目标执行服务器信息,其中,目标执行服务器信息包括目标执行服务器的心跳信息;第二确定单元502配置用于响应于预设时间段内未接收到心跳信息,确定目标执行服务器停止运行;添加单元503配置用于将目标执行服务器中的容器添加至容器等待队列,将目标执行服务器从执行服务器队列中移除;而更新单元504配置用于更新目标执行服务器的状态信息以及迁移后的容器的状态信息。

在本实施例中,第一确定单元501、第二确定单元502、添加单元503和更新单元504的具体处理及其所带来的技术效果可分别参考图2对应实施例中步骤201、步骤202以及步骤203的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,目标执行服务器信息还包括目标执行服务器的资源信息,该装置进一步配置用于响应于预设时间段内接收到资源信息,存储目标执行服务器的标识信息;将目标执行服务器添加至执行服务器队列。

在本实施例的一些可选的实现方式中,装置500进一步配置用于周期性地遍历执行服务器队列,确定执行服务器队列中是否存在满足第一条件的执行服务器;响应于存在满足第一条件的执行服务器,将容器等待队列中资源和最大的容器迁移至满足第一条件的执行服务器。

在本实施例的一些可选的实现方式中,装置500进一步配置用于周期性地遍历执行服务器队列,确定执行服务器队列中是否存在满足第二条件的执行服务器;响应于存在满足第二条件的执行服务器,停止运行满足第二条件的执行服务器上资源和最大的容器;将停止运行的容器从容器等待队列中移除;更新执行服务器的状态信息,注销并移除停止运行的容器。

在本实施例的一些可选的实现方式中,装置500进一步配置用于接收第一操作请求,其中,第一操作请求包括第一容器信息;存储第一容器信息,将第一容器添加至容器等待队列;向满足第一条件的执行服务器发送第一容器信息以及第一容器的启动请求;响应于接收到运行第一容器的执行服务器发送的该执行服务器的注册请求以及第一容器的注册请求,更新第一容器信息以及运行第一容器的执行服务器的信息。

在本实施例的一些可选的实现方式中,装置500进一步配置用于接收第二操作请求,其中,第二操作请求包括第二容器信息;向运行第二容器的执行服务器发送第二操作请求;响应于预设时间段内没有接收到运行第二容器的执行服务器返回的心跳信息,注销并移除第二容器。

下面参考图6,其示出了适于用来实现本申请实施例的电子设备的计算机系统600的结构示意图。图6示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。

以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一确定单元、第二确定单元、添加单元和更新单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,提供单元还可以被描述为“确定预设时间段内是否接收到目标执行服务器信息的单元”。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:确定预设时间段内是否接收到目标执行服务器信息,其中,目标执行服务器信息包括目标执行服务器的心跳信息;响应于预设时间段内未接收到心跳信息,确定目标执行服务器停止运行;将目标执行服务器中的容器添加至容器等待队列,将目标执行服务器从执行服务器队列中移除;更新目标执行服务器的状态信息以及运行于执行服务器中的容器的状态信息。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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