发明内容
本公开实施例的目的在于提供一种作业热迁移的方法、作业热迁移的装置、电子设备及存储介质,以提升作业运行效率。
第一方面,本公开提供了一种作业热迁移的方法,应用于资源调度平台YARN,所述方法包括:
资源调度系统的节点管理器向资源管理器发送通知消息,所述通知消息指示所述节点管理器所在的源节点上运行的目标作业的任务需要热迁移;
所述资源管理器基于所述通知消息获取所述资源调度系统中其他节点的负载信息,基于所述负载信息确定所述任务热迁移的目的节点;
所述资源管理器获取所述目的节点的节点信息,向所述源节点发送所述节点信息;
所述源节点基于所述节点信息,将所述任务热迁移至所述目的节点。
在本公开的一些实施例中,所述方法还包括:
在所述源节点上的所述任务启动运行时,将所述源节点上的所述任务挂载至远程磁盘;
将所述任务运行时产生的相关数据写入所述远程磁盘;
在所述将所述任务热迁移至所述目的节点的步骤完成时,将所述目的节点上迁移后的所述任务挂载至所述远程磁盘,并断开所述源节点上的所述任务与所述远程磁盘之间的挂载。
在本公开的一些实施例中,所述源节点基于所述节点信息,将所述任务热迁移至所述目的节点的步骤,包括:
生成所述任务的快照数据;
将所述快照数据拷贝至所述节点信息指示的所述目的节点;
所述目的节点配置容器网络,以在所述快照数据拷贝完成时建立所述目的节点上的宿主机与容器的网络连接,所述容器用于运行迁移后的所述任务;
其中,所述目的节点配置的容器网络的配置信息与所述源节点中容器网络的配置信息相同。
在本公开的一些实施例中,在所述将所述快照数据拷贝至所述目的节点的步骤之后,所述方法还包括:
将所述任务继续运行服务生成的更新快照数据存入内存分区,并同步至所述目的节点。
在本公开的一些实施例中,所述目标作业是离线作业,所述资源调度系统的节点管理器向资源管理器发送通知消息的步骤,包括:
所述节点管理器获取所述源节点上运行的在线作业的资源使用率;
在所述资源使用率大于预设使用率阈值时,所述节点管理器发送所述通知消息。
在本公开的一些实施例中,所述确定所述任务热迁移的目的节点的步骤之后,所述方法还包括:
所述资源管理器接收所述目的节点的节点管理器发送的心跳数据,基于所述心跳数据在所述目的节点上分配运行所述任务所需的资源。
在本公开的一些实施例中,所述方法还包括:
在将所述任务热迁移至所述目的节点未完成之前,资源管理器若接收到新作业的资源申请请求,则基于所述目的节点以外的其他节点的节点管理器汇报的可用资源信息,将所述其他节点中的至少一个节点上的资源分配给所述新作业对应的应用管理器;
所述应用管理器获取分配的资源后,与所述至少一个节点的节点管理器通信,以启动所述新作业对应的任务。
在本公开的一些实施例中,所述方法还包括:
若资源管理器接收到所述源节点发送的热迁移结束指令,则删除资源管理器中所述目标作业的任务在所述源节点上的资源分配记录。
第二方面,本公开实施例提供一种作业热迁移的装置,应用于YARN中,所述装置包括:
消息发送模块,用于使资源调度系统的节点管理器向资源管理器发送通知消息,所述通知消息指示所述节点管理器所在的源节点上运行的目标作业的任务需要热迁移;
节点确定模块,用于使所述资源管理器基于所述通知消息获取所述资源调度系统其他节点的负载信息,基于所述负载信息确定所述任务热迁移的目的节点;
节点信息处理模块,用于使所述资源管理器获取所述目的节点的节点信息,向所述源节点发送所述节点信息;
作业迁移模块,用于使所述源节点基于所述节点信息,将所述任务热迁移至所述目的节点。
第三方面,本公开实施例提供一种电子设备,包括处理器和存储介质,所述存储介质存储有能够被所述处理器执行的可执行指令,所述处理器被所述可执行指令促使实现:如上述任一实施例所述作业热迁移的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述存储介质存储有可执行指令,在被处理器调用和执行时实现:如上述任一实施例所述作业热迁移的方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供的技术方案中,资源调度系统中运行目标作业的任务的源节点的NM在需要热迁移该任务时,向RM发送目标作业的任务需热迁移的通知消息,RM接收到该通知消息,知道需要对目标作业的任务进行热迁移,然后会基于系统中各个节点的负载信息确定出一个热迁移的目的节点,并将确定出的目的节点的节点信息反馈给源节点,源节点基于节点信息将目标作业的任务热迁移至目的节点,这样目标作业的任务就可以继续在目的节点上运行,而不是完全被腾退掉,实现了目标作业的持续运行,尤其是针对需要长时间训练的作业,极大地缩短了作业的整体运行时间,提升了作业运行效率;同时,可以为源节点上的其他作业空出资源,提高其他作业的任务的运行效率。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本公开实施例提供了一种作业热迁移的方法、作业热迁移的装置、以及实现作业热迁移的方法的电子设备及计算机可读存储介质,以解决混合部署场景下作业运行效率较差的问题。
本公开实施例所提供的作业热迁移的方法应用于资源调度系统如YARN中,如图1所示,本公开实施例所提供的一种作业热迁移的方法,可以包括如下步骤:
步骤S101:资源调度系统的节点管理器向资源管理器发送通知消息,所述通知消息指示所述节点管理器所在的源节点上运行的目标作业的任务需要热迁移。
示例性的,目标作业指的是需要长时间训练的作业或者类似的一旦腾退会影响运行效率的作业,这里不做具体的限定。例如,目标作业可以是离线作业,源节点如节点1上运行的作业可以包括但不限于离线作业和在线作业。在YARN中,通常用户通过客户端Client向RM提交一个作业,每个作业由若干数量的子任务组成,这些子任务通常以容器(Container)的形式在各个节点上执行,这些可以参考现有技术理解,此处不再赘述。本实施例中,目标作业的任务A即是目标作业如离线作业的任意一个子任务。在混合部署的场景下,当在线作业需要占用离线作业的资源时,可以触发源节点如节点1上的NM向RM发送目标作业如离线作业的任务需要热迁移的通知消息。
步骤S102:资源管理器基于所述通知消息获取资源调度系统中其他节点的负载信息,基于所述负载信息确定所述任务热迁移的目的节点。
具体的,RM接收到通知消息后,获取YARN集群系统中各节点的负载信息如CPU和/或内存占用信息等,然后基于负载信息确定所述任务热迁移的目的节点。目的节点是目标作业热迁移的最佳节点。例如,将节点负载最小的节点确定为目的节点,当节点负载最小的节点有多个时,可以随机选择一个节点作为目的节点。这样可以选择出目标作业的任务运行效率最高的一个节点作为目的节点。
步骤S103:资源管理器获取所述目的节点的节点信息,向所述源节点发送所述节点信息。
具体的,在确定目的节点之后,RM可以获取目的节点的节点信息如节点名称、IP地址、节点唯一标识等等。然后RM可以向源节点发送该目的节点的节点信息。这样源节点知道了RM针对目标作业的任务需要迁移至哪个目的节点上。
步骤S104:所述源节点基于所述节点信息,将所述任务热迁移至所述目的节点。
具体的,源节点收到目的节点的节点信息之后,基于节点信息如节点名称以及IP地址与所述目的节点通信,将源节点上的任务A热迁移至所述目的节点,迁移完成后目的节点上即存在任务A对应的任务A’。
本公开的上述实施例的作业热迁移的方法,运行目标作业的任务的源节点的NM在需要热迁移该任务时,向RM发送目标作业的任务需热迁移的通知消息,RM接收到该通知消息,知道需要对目标作业的任务进行热迁移,然后会基于集群中各个节点的负载信息确定出一个热迁移的目的节点,并将确定出的目的节点的节点信息反馈给源节点,源节点基于节点信息将目标作业的任务热迁移至目的节点,这样目标作业的任务就可以继续在目的节点上运行,而不是完全被腾退掉,实现了目标作业的持续运行,尤其是针对需要长时间训练的作业,极大地缩短了作业的整体运行时间,提升了作业运行效率;同时,可以为源节点上的其他作业如在线作业空出资源,提高其他作业的任务的运行效率。
原生的离线作业经常需要写本地的磁盘,这样一旦需要腾退离线作业的时候,涉及到大量的文件拷贝过程,导致耗时会很长,从而使得在线作业一直得不到满足,这一点是无法接受的。因此,在本公开的一些实施例中,结合图2中所示,所述方法还可以包括以下步骤:
步骤S201:在所述源节点上的所述任务启动运行时,将所述源节点上的所述任务挂载至远程磁盘。
示例性的,参考图5中所示,YARN中可以配置远程磁盘,源节点如节点1上目标作业如离线作业的任务A启动运行时,将任务A挂载至远程磁盘。具体的,可以将运行该任务A的容器(Container)挂载至远程磁盘。
步骤S202:将所述任务运行时产生的相关数据写入所述远程磁盘。
具体的,在任务A挂载至远程磁盘之后,任务A运行时产生的相关数据可以写入所述远程磁盘。相关数据可以是任务A运行过程中的状态数据,输出的结果数据等等。需要说明的是,步骤S201和S202在步骤S104之前执行即可。
步骤S203:在所述将所述任务热迁移至所述目的节点的步骤完成时,将所述目的节点上迁移后的所述任务挂载至所述远程磁盘,并断开所述源节点上的所述任务与所述远程磁盘之间的挂载。
具体的,步骤S104中将任务A热迁移至所述目的节点如节点3完成时,将目的节点如节点3上迁移后的任务A’挂载至所述远程磁盘,并断开所述源节点如节点1上的任务A与所述远程磁盘之间的挂载。
通过本公开实施例中上述方案,可以支持将目标作业的任务的数据写入远程磁盘,当目标作业如离线作业腾退即热迁移完成的时候,只需要把远程磁盘挂载至目的节点上迁移后的任务,同时断开目标作业的任务和远程磁盘的挂载,这样无需在源节点和目的节点之间大量的文件拷贝过程,大大减少耗时,节省了极大的时间成本,从而可以快速实现目标作业的热迁移,使得源节点上的在线作业可以很快得到满足,提高在线作业的运行效率。
可选的,在上述任一实施例的基础上,结合图3中所示,在本公开的一些实施例中,步骤S104中源节点基于所述节点信息,将所述任务热迁移至所述目的节点的步骤,具体可以包括以下步骤:
步骤S301:生成所述任务的快照数据。
示例性的,在进行热迁移的时候,源节点如节点1会生成目标作业的任务如任务A的一个快照数据,该快照数据可以包括例如一些内存信息等。
步骤S302:将所述快照数据拷贝至所述节点信息指示的所述目的节点。
具体的,在生成上述快照数据后,将快照数据从源节点如节点1拷贝至目的节点如节点3上。
步骤S303:所述目的节点配置容器网络,以在所述快照数据拷贝完成时建立所述目的节点上的宿主机与容器的网络连接。所述容器用于运行迁移后的所述任务A’。其中,所述目的节点配置的容器网络的配置信息与所述源节点中容器网络的配置信息相同。
具体的,将快照数据拷贝到目的节点上,此时源节点上运行的目标作业可以继续对外提供服务,目的节点在接收到快照数据后,可以配置容器网络,该容器网络可以是OverLay网络,但也不限于此。所配置的容器网络的配置信息(例如IP地址等)与源节点中容器网络的配置信息如IP地址相同。当源节点和目的节点的诸如内存信息等拷贝基本差不多时,目的节点建立其宿主机与目的节点上的容器的网络连接。
由于原生的离线作业主要使用本机网络作为基础网络,一旦离线作业发生热迁移,前后机器的IP地址不一致,上层服务找不到新机器上的离线作业,从而对上层服务造成影响。在本公开实施例中,通过上述实施方案YARN可以支持CNI(Container NetworkInterface,容器网络接口)适配OverLay(一种网络架构上叠加的虚拟化技术模式)网络来配置容器网络,使得迁移前后运行任务A和任务A’的容器的IP地址保持一致,这样上层服务可以及时找到热迁移后的离线作业的任务A’,避免对上层服务造成影响。
可选的,在本公开的一些实施例中,在所述将所述快照数据拷贝至所述目的节点的步骤即步骤S302之后,所述方法还可包括:将所述任务继续运行服务生成的更新快照数据存入内存分区,并同步至所述目的节点。
具体的,源节点将快照数据拷贝到目的节点上,源节点上运行的目标作业会继续对外提供服务,由此会生成更新快照数据,因此源节点可将更新快照数据存入内存分区中,并不断同步至目的节点。这样可以在基本不中断对外提供服务的同时,实现作业的热迁移。
可选的,在本公开的一些实施例中,所述目标作业是离线作业,步骤S101中所述节点管理器NM向资源管理器RM发送通知消息的步骤,具体可以包括以下步骤:
步骤i):所述NM获取所述源节点上运行的在线作业的资源使用率。
步骤ii):在所述资源使用率大于预设使用率阈值时,所述NM发送所述通知消息。
示例性的,预设使用率阈值可以基于具体需要设置,本实施例中对此不作限制。例如预设使用率阈值可以是80%以上。源节点如节点1上的NM获取源节点上运行的在线作业的资源使用率X,例如CPU占用率、内存占用率等。在资源使用率X大于例如80%时,触发节点1上的NM发送所述通知消息,以指示RM节点1上的离线作业需要腾退即热迁移至其他节点。
可选的,在本公开的一些实施例中,步骤S102中确定所述任务热迁移的目的节点的步骤之后,所述方法还可包括:RM接收所述目的节点的NM发送的心跳数据,基于所述心跳数据在所述目的节点上分配运行所述任务所需的资源。
示例性的,心跳数据通常包括节点的资源空闲情况,RM收到目的节点如节点3的NM发送的心跳数据后,基于心跳数据在目的节点如节点3上分配运行所述任务A所需的资源,这样可避免其他作业被调度到该节点3上占用资源,使得热迁移可能失败。
在本公开实施例中,RM在确定出目标作业热迁移的目的节点后,可以对该目的节点进行标记,标记指示只能将目标作业调度至该目的节点,而不能将其他作业调度至该目的节点。
可选的,在本公开的一些实施例中,所述方法还可包括以下步骤:
步骤a):在将所述任务热迁移至所述目的节点未完成之前,RM若接收到新作业的资源申请请求,则基于所述目的节点以外的其他节点的NM汇报的可用资源信息,将所述其他节点中的至少一个节点上的资源分配给所述新作业对应的应用管理器AM。
步骤b):所述AM获取分配的资源后,与所述至少一个节点的NM通信,以启动所述新作业对应的任务。
具体的,在热迁移的过程中,如果RM接收到一个新作业的资源申请请求,则会在除目的节点以外的其他节点中,查找空闲资源满足新作业所申请资源需求的目标节点,并调度新作业至该目标节点上,具体可由新作业对应的AM和目标节点的NM通信来进行新作业的调度,具体调度过程可以参考现有技术理解,此处不再赘述。这样可避免新作业被调度到目的节点上影响热迁移,使得热迁移失败的情况发生概率大为减小。
可选的,在本公开的一些实施例中,所述方法还可包括:若RM接收到所述源节点发送的热迁移结束指令,则删除RM中所述目标作业的任务在所述源节点上的资源分配记录。
具体的,在源节点如节点1向目的节点如节点3的目标作业热迁移完成之后,即源节点识别到其中的目标作业的所有任务都热迁移到了目的节点上,源节点会向RM发送一个热迁移结束指令,告诉RM已经完成了热迁移操作,此时,RM会回收目标作业在源节点上的资源,即在RM本地会删除掉给目标作业分配源节点的资源的记录,就RM而言,其记录的内容是目标作业完全调度到了目的节点上。
综上所述,本公开各实施例提供的方案,运行目标作业的任务的源节点的NM在需要热迁移该任务时,向RM发送目标作业的任务需热迁移的通知消息,RM接收到该通知消息,知道需要对目标作业的任务进行热迁移,然后会基于集群中各个节点的负载信息确定出一个热迁移的目的节点,并将确定出的目的节点的节点信息反馈给源节点,源节点基于节点信息将目标作业的任务热迁移至目的节点,这样目标作业的任务就可以继续在目的节点上运行,而不是完全被腾退掉,实现了目标作业的持续运行,尤其是针对需要长时间训练的作业,极大地缩短了作业的整体运行时间,提升了作业运行效率;同时,可以为源节点上的其他作业如在线作业空出资源,提高其他作业的任务的运行效率。
本公开实施例中YARN支持热迁移的复杂管控逻辑,当决定目标作业需要进行热迁移的时候,RM需要决定该目标作业被迁移到的目的节点并记录源节点IP和在目的节点预留资源等复杂操作。
为了便于理解,下面对YARN整体进行热迁移管控逻辑进行介绍,管控逻辑如图4所示,主要包括如下步骤:
步骤1:当触发热迁移条件的时候,运行目标作业的任务A的节点1上的NM通知RM任务A需要进行热迁移。
步骤2:RM经过判定节点3是热迁移的最佳节点,并在节点3上分配任务A所需要的资源。避免其他作业被调度到节点3上,使得热迁移失败。
步骤3:RM通知节点1上的NM任务A迁移后的目的地址为节点3。
步骤4:任务A开始向节点3上发起热迁移。
步骤5:在任务A热迁移的过程中,新来了一个任务E的请求。
步骤6:由于任务A正在处于热迁移的过程中(节点3之前已经分配了资源),节点2具备空闲资源能满足任务E的资源请求,所以任务E调度到节点2上。
步骤7:热迁移结束之后,通知RM回收任务A之前所在节点1上的资源。
热迁移的流程如图5所示,主要包括如下内容:
1.在进行热迁移的时候,任务A会生成一个快照,将一些内存信息从节点1拷贝到节点3上,此时任务A继续对外提供服务,由此引入的新增信息进入到其他内存分区中,并不断同步信息。
2.在节点3上配置之前同样的容器网络,保持默认原有的IP不变。
3.当节点1和节点3的诸如内存信息基本差不多的时候,建立宿主机与容器的网络链接。
4.节点3上的迁移后的任务A’挂载远程磁盘,并且断开任务A和远程磁盘的挂载。
5.使节点3上的网络开始生效,新流量直接写入节点3。
基于上述方法实施例,本公开提供了一种作业热迁移的装置,如图6所示,该装置可以包括消息发送模块601、节点确定模块602、节点信息处理模块603和作业迁移模块604。
其中,消息发送模块601,用于使资源调度系统的节点管理器NM向资源管理器RM发送通知消息,所述通知消息指示所述节点管理器NM所在的源节点上运行的目标作业的任务需要热迁移。
节点确定模块602,用于使所述资源管理器基于所述通知消息获取所述资源调度系统其他节点的负载信息,基于所述负载信息确定所述任务热迁移的目的节点。
节点信息处理模块603,用于使所述资源管理器获取所述目的节点的节点信息,向所述源节点发送所述节点信息。
作业迁移模块604,用于使所述源节点基于所述节点信息,将所述任务热迁移至所述目的节点。
本公开实施例提供的作业热迁移的装置,运行目标作业的任务的源节点的NM在需要热迁移该任务时,向RM发送目标作业的任务需热迁移的通知消息,RM接收到该通知消息,知道需要对目标作业的任务进行热迁移,然后会基于集群中各个节点的负载信息确定出一个热迁移的目的节点,并将确定出的目的节点的节点信息反馈给源节点,源节点基于节点信息将目标作业的任务热迁移至目的节点,这样目标作业的任务就可以继续在目的节点上运行,而不是完全被腾退掉,实现了目标作业的持续运行,尤其是针对需要长时间训练的作业,极大地缩短了作业的整体运行时间,提升了作业运行效率;同时,可以为源节点上的其他作业空出资源,提高其他作业的任务的运行效率。
可选的,在本公开的一些实施例中,所述装置还包括磁盘处理模块,用于:在所述源节点上的所述任务启动运行时,将所述源节点上的所述任务挂载至远程磁盘;将所述任务运行时产生的相关数据写入所述远程磁盘;在所述将所述任务热迁移至所述目的节点的步骤完成时,将所述目的节点上迁移后的所述任务挂载至所述远程磁盘,并断开所述源节点上的所述任务与所述远程磁盘之间的挂载。
可选的,在本公开的一些实施例中,所述作业迁移模块604,具体用于:生成所述任务的快照数据;将所述快照数据拷贝至所述节点信息指示的所述目的节点;在所述目的节点配置容器网络,以在所述快照数据拷贝完成时建立所述目的节点上的宿主机与容器的网络连接,所述容器用于运行迁移后的所述任务;其中,所述目的节点配置的容器网络的配置信息与所述源节点中容器网络的配置信息相同。
可选的,在本公开的一些实施例中,所述作业迁移模块604,还用于:将所述快照数据拷贝至所述目的节点之后,将所述任务继续运行服务生成的更新快照数据存入内存分区,并同步至所述目的节点。
可选的,在本公开的一些实施例中,所述目标作业是离线作业,所述消息发送模块601具体用于使所述节点管理器NM获取所述源节点上运行的在线作业的资源使用率;在所述资源使用率大于预设使用率阈值时,使所述NM发送所述通知消息。
可选的,在本公开的一些实施例中,所述装置还可包括资源分配模块,用于在节点确定模块602确定所述任务热迁移的目的节点之后,使RM接收所述目的节点的NM发送的心跳数据,基于所述心跳数据在所述目的节点上分配运行所述任务所需的资源。
可选的,在本公开的一些实施例中,作业迁移模块604在将所述任务热迁移至所述目的节点未完成之前,RM若接收到新作业的资源申请请求,则基于所述目的节点以外的其他节点的NM汇报的可用资源信息,将所述其他节点中的至少一个节点上的资源分配给所述新作业对应的应用管理器AM;所述AM获取分配的资源后,与所述至少一个节点的NM通信,以启动所述新作业对应的任务。
在本公开的一些实施例中,若RM接收到所述源节点发送的热迁移结束指令,则删除RM中所述目标作业的任务在所述源节点上的资源分配记录。
本公开提供了一种电子设备,如图7所示,包括处理器701和存储介质702,存储介质702存储有能够被处理器701执行的可执行指令,处理器701被可执行指令促使实现:本公开实施例提供的上述任一实施例的作业热迁移的方法。
应用本公开实施例的方案,运行目标作业的任务的源节点的NM在需要热迁移该任务时,向RM发送目标作业的任务需热迁移的通知消息,RM接收到该通知消息,知道需要对目标作业的任务进行热迁移,然后会基于集群中各个节点的负载信息确定出一个热迁移的目的节点,并将确定出的目的节点的节点信息反馈给源节点,源节点基于节点信息将目标作业的任务热迁移至目的节点,这样目标作业的任务就可以继续在目的节点上运行,而不是完全被腾退掉,实现了目标作业的持续运行,尤其是针对需要长时间训练的作业,极大地缩短了作业的整体运行时间,提升了作业运行效率;同时,可以为源节点上的其他作业空出资源,提高其他作业的任务的运行效率。
上述存储介质可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储介质702与处理器701之间可以通过有线连接或者无线连接的方式进行数据传输,并且电子设备与其他设备之间可以通过有线通信接口或者无线通信接口进行通信。图7所示的仅为通过总线进行数据传输的示例,不作为具体连接方式的限定。
另外,本公开提供了一种计算机可读存储介质,该存储介质存储有可执行指令,在被处理器调用和执行时实现:本公开实施例提供的上述任一实施例的作业热迁移的方法。
在本公开提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行:本公开实施例提供的上述任一实施例的作业热迁移的方法。
对于作业热迁移的装置、电子设备和存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、DSL(Digital Subscriber Line,数字用户线))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD(DigitalVersatile Disc,数字多功能光盘))、或者半导体介质(例如SSD(Solid State Disk,固态硬盘))等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。