发明内容
本发明的实施方式旨在至少解决现有技术中存在的技术问题之一。为此,本发明的实施方式需要提供一种控制节点的获取方法与服务器。
本发明实施方式的控制节点的获取方法,其特征在于,包括:
步骤1,接收控制节点的注册请求,完成该控制节点的注册;
步骤2,检查控制节点的存活性;
步骤3,接收终端手机对应的分配端根据分配到的云手机所在机房查询该机房下的所有控制节点列表的查询请求;
步骤4,从查询到的不包含没有存活性的控制节点的控制节点列表中,返回具有存活性的控制节点给终端手机。
一种实施方式中,步骤2包括:在控制节点完成注册后检查控制节点的存活性,若控制节点发生宕机则清除该控制节点在注册中心上的数据;其中,控制节点发生宕机视为该控制节点没有存活性。
一种实施方式中,步骤3包括:接收终端手机对应的分配端根据分配到的云手机所在机房查询该机房下的所有控制节点列表的查询请求;根据查询请求生成不包含没有存活性的控制节点的控制节点列表。
一种实施方式中,步骤4包括:从查询到的不包含没有存活性的控制节点的控制节点列表中,根据轮询算法依次返回具有存活性的控制节点给终端手机。
一种实施方式中,步骤1包括:接收多个启动的控制节点的注册请求,完成该多个控制节点的注册。
本发明实施方式还提出一种服务器,包括注册中心、分别与注册中心相连接的多个控制节点和终端手机的分配端,其特征在于,注册中心包括:
注册模块,用于接收控制节点的注册请求,完成该控制节点的注册;
检查模块,用于检查控制节点的存活性;
查询模块,用于接收终端手机对应的分配端根据分配到的云手机所在机房查询该机房下的所有控制节点列表的查询请求;
返回模块,用于从查询到的不包含没有存活性的控制节点的控制节点列表中,返回具有存活性的控制节点给终端手机。
一种实施方式中,检查模块具体用于在控制节点完成注册后检查控制节点的存活性,若控制节点发生宕机则清除该控制节点在注册中心上的数据;其中,控制节点发生宕机视为该控制节点没有存活性。
一种实施方式中,查询模块具体用于接收终端手机对应的分配端根据分配到的云手机所在机房查询该机房下的所有控制节点列表的查询请求;根据查询请求生成不包含没有存活性的控制节点的控制节点列表。
一种实施方式中,返回模块具体用于从查询到的不包含没有存活性的控制节点的控制节点列表中,根据轮询算法依次返回具有存活性的控制节点给终端手机。
一种实施方式中,注册模块具体用于接收多个启动的控制节点的注册请求,完成该多个控制节点的注册。
本发明实施方式的控制节点的获取方法与服务器,通过引入控制节点存活性检查机制,然后在终端手机对应的分配端分配云手机的时候,保证返回具有存活性的控制节点给终端手机,使得云手机得到顺利分配,控制节点的容灾和动态扩展效果较好。
本发明的附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
具体实施方式
下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅可用于解释本发明的实施方式,而不能理解为对本发明的实施方式的限制。
请参阅图1,本发明实施方式的控制节点的获取方法,包括:
步骤1,接收控制节点的注册请求,完成该控制节点的注册。
步骤2,检查控制节点的存活性。
步骤3,接收终端手机对应的分配端根据分配到的云手机所在机房查询该机房下的所有控制节点列表的查询请求。
步骤4,从查询到的不包含没有存活性的控制节点的控制节点列表中,返回具有存活性的控制节点给终端手机。
请参阅图2,本发明实施方式的服务器,包括注册中心、分别与注册中心相连接的多个控制节点和终端手机的分配端,其中,注册中心包括:
注册模块,用于接收控制节点的注册请求,完成该控制节点的注册。
检查模块,用于检查控制节点的存活性。
查询模块,用于接收终端手机对应的分配端根据分配到的云手机所在机房查询该机房下的所有控制节点列表的查询请求。
返回模块,用于从查询到的不包含没有存活性的控制节点的控制节点列表中,返回具有存活性的控制节点给终端手机。
在该实施方式中,控制节点的获取方法以服务器或注册中心作为步骤的执行对象,或者以注册中心中的各个模块作为步骤的执行对象。具体地,步骤1由注册模块作为步骤的执行对象,步骤2由检查模块作为步骤的执行对象,步骤3由查询模块作为步骤的执行对象,步骤4由返回模块作为步骤的执行对象。
步骤1中,注册模块接收控制节点的注册请求,完成该控制节点的注册。即控制节点启动的时候,就将该控制节点的节点信息注册到注册中心。节点信息包括控制节点的名称、控制节点的状态、控制节点所在的机房中的一种或多种信息。
如果控制节点较多,也可以根据当前网络情况处理。即步骤1包括:注册模块接收多个启动的控制节点的注册请求,完成该多个控制节点的注册。通过同时处理多个控制节点的注册,提高了注册中心的处理效果。
步骤2中,检查模块检查控制节点的存活性,具体包括:在控制节点完成注册后检查控制节点的存活性,若控制节点发生宕机则清除该控制节点在注册中心上的数据;其中,控制节点发生宕机视为该控制节点没有存活性。即注册中心设置了一个节点机制来检查控制节点存活的特性,该机制如下:控制节点启动的时候,把该控制节点的节点信息注册到注册中心,当控制节点宕机,注册中心会自动清除掉该控制节点在注册中心上包括节点信息的数据。
步骤3中,终端手机对应的分配端根据游戏分配到具体云手机之后,根据云手机所在机房到注册中心查询该机房下的所有控制节点,查询模块则接收分配端的查询请求。
具体地,步骤3包括:查询模块接收终端手机对应的分配端根据分配到的云手机所在机房查询该机房下的所有控制节点列表的查询请求;根据查询请求生成不包含没有存活性的控制节点的控制节点列表。即接收到分配端的查询请求后,查询模块根据检查模块检查控制节点的存活性的检查结果,剔除已经宕机的控制节点,即剔除没有存活性的控制节点,然后生成不包含没有存活性的控制节点的控制节点列表。
步骤4中,返回模块从查询到的不包含没有存活性的控制节点的控制节点列表中,返回具有存活性的控制节点给终端手机。经过步骤3,查询到的控制节点列表中的控制节点都具有存活性,这样的方式下可以返回一个具有存活性的控制节点给终端手机,保证终端手机和云手机之间进行视频流传递时足够顺畅,而且满足容灾和动态扩展的要求。
进一步地,步骤4包括:返回模块从查询到的不包含没有存活性的控制节点的控制节点列表中,根据轮询算法依次返回具有存活性的控制节点给终端手机。多台机器实现负载均衡的时候,经常用到轮询算法(Round-Robin Scheduling)。轮询算法就是以循环的方式依次将请求调度不同的服务器,即每次调度执行i=(i+1)mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。通过轮询算法的处理,可以保证返回给终端手机控制节点的时候是有调度的,简化系统处理难度。
综上所述,本发明通过引入控制节点存活性检查机制,然后在终端手机对应的分配端分配云手机的时候,保证返回具有存活性的控制节点给终端手机,使得云手机得到顺利分配,控制节点的容灾和动态扩展效果较好。
在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行服务器、装置或设备(如基于计算机的服务器、包括处理模块的服务器或其他可以从指令执行服务器、装置或设备取指令并执行指令的服务器)使用,或结合这些指令执行服务器、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行服务器、装置或设备或结合这些指令执行服务器、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行服务器执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本发明的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。