服务器节点、局域网服务器集群及其实现方法

文档序号:10538839阅读:965来源:国知局
服务器节点、局域网服务器集群及其实现方法
【专利摘要】本发明提供一种服务器节点、局域网服务器集群及其实现方法,其特征在于,该服务器节点包括组播模块,用于在局域网内发送组播消息,所述组播消息至少包含与本服务器节点相关的第一组群配置信息;解析模块,用于在局域网内接收来自外部的服务器节点的组播消息,解析出第二组群配置信息;集群发现模块,用于校验所述第一组群配置信息和第二组群配置信息的一致性,并根据所述校验结果确定是否与所述外部的服务器节点组成集群。本发明的服务器节点、服务器集群及其实现方法,通过组播技术实现了在局域网内的集群的自组织自管理和去中心化,使集群在发生瓶颈时能够支持水平扩展,提高集群的可用性和健壮性。
【专利说明】
服务器节点、局域网服务器集群及其实现方法
技术领域
[0001]本发明实施例涉及服务器集群技术领域,尤其涉及一种用于构成局域网服务器集群的服务器节点、局域网服务器集群及局域网服务器集群实现方法。
【背景技术】
[0002]服务器集群是指将多个服务器集中起来一起进行同一种服务,在客户端看了就像是只有一个服务器在提供服务一样。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机实现备份,从而使得任何一个机器在损坏时,还能保证整个系统的正常运行。
[0003]现有的服务器集群通常由一个主节点以及若干个从节点组成,以主节点为中心,其他所有从节点都连接到主节点进行集群服务。例如,一个集群中包括了三个从服务器节点a节点、b节点及c节点和一个主节点,那么三个从服务器节点a、b、c都需要直接与主节点连接,并通过主节点实现相互之间的通信。这种服务器集群中,各从节点之间相互并不知道彼此的资源配置情况,如果当一个请求发送到其中一个从节点如b节点时,b节点在没有可以满足该请求的资源时,则需要向主节点询问能够满足该请求的资源的服务器节点是哪个,再由主节点完成相应从服务器节点的调度。这样的方式,就使得各个从服务器节点之间的协调性不够及时,延长了对请求的响应时间。
[0004]另一方面,现有的服务器集群在有新的从服务器节点加入时,新加入的从节点需要在主节点注册后才能加入。加入之后,需要由主节点通知本集群中的其他的从节点有新的节点成员加入,新增服务器节点时,配置部署比较麻烦。而且,当有从节点需要退出时,也需要由主节点通知其他的从节点某一从节点退出了本集群。这种方式,就导致了整个集群过于依赖主节点的调度,从而使得主节点在出现故障时(如堵塞),整个集群内的从节点都无法协调工作,严重影响集群的使用。

【发明内容】

[0005]为了解决现有技术中的服务器集群在新节点加入时部署麻烦,且集群服务过度依赖主节点的问题,本发明实施例一方面提供了一种服务器节点,其特征在于,包括:
[0006]组播模块,用于在局域网内发送组播消息,所述组播消息至少包含与本服务器节点相关的第一组群配置信息;
[0007]解析模块,用于在局域网内接收来自外部的服务器节点的组播消息,解析出第二组群配置信息;
[0008]集群发现模块,用于校验所述第一组群配置信息和第二组群配置信息的一致性,并根据所述校验结果确定是否与所述外部的服务器节点组成集群。
[0009]本发明实施例另一方面提供一种局域网服务器集群,其特征在于,包括连接至同一路由器的多个服务器节点,其中,每个服务器节点为上述的服务器节点。
[0010]本发明实施例另一方面提供一种局域网服务器集群实现方法,其特征在于,包括:
[0011]将多个服务器节点通过同一路由器连接至局域网;
[0012]每个服务器节点均通过所述路由器在所述局域网内发送组播消息,所述组播消息至少包含与本服务器节点相关的第一组群配置信息;
[0013]每个服务器节点均通过所述路由器在局域网内接收来自本服务器节点外部的服务器节点的组播消息,解析出第二组群配置信息;
[0014]每个服务器节点均校验所述第一组群配置信息和第二组群配置信息的一致性,并根据所述校验结果确定是否与所述外部的服务器节点组成集群。
[0015]本发明实施例提供的服务器节点、局域网服务器集群及其实现方法,通过组播技术,在局域网内实现了一种去中心化的服务器集群,该服务器集群具有自发现机制,在不依赖主节点的情况下,能够进行集群内的各个服务器节点的自组织和自管理。并且,集群内的各服务器节点的上线下线不需要依赖主节点的配置和调度,在有新的服务器节点需要加入集群时,只需在相应的服务器节点上部署相应的模块,启动服务器后即可自动加入相应的集群。通过本发明实施例实现的服务器集群,去除了对主节点的依赖,集群中各节点具有对等的关系,能够大幅提升服务器集群的可用性和健壮性,在水平扩展的基础上,能够实现服务程序的热插拔,可以有效解决集群的服务瓶颈。
【附图说明】
[0016]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为现有技术中服务器集群的架构的示意图;
[0018]图2为本发明中局域网服务器集群的架构的示意图;
[0019]图3为本发明中局域网服务器集群的实现方法的实施例流程图;
[0020]图4为本发明中局域网服务器集群的实现方法的实施例流程图。
【具体实施方式】
[0021]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022]图1示意性地显示了现有技术中的服务器集群的架构。如图1所示,目前常用的服务器集群,通常是以主节点10为中心,多个从节点(如图1所示的从节点11、从节点12、从节点13等)都连接到主节点10,通过主节点10的调度和管理,实现各从节点之间的通信和资源请求。由于所有的调度和管理都需要通过主节点10进行协调,各从节点之间相互不知道彼此的资源配置情况,当需要转发访问请求时,也需要通过主节点10进行资源定位和转发,各从节点对主节点10的依赖性很高,因而当主节点10发生故障(如堵塞)时,集群内的各个从节点就无法协调工作。并且,对于各节点的上下线,图1所示的服务器集群都需要通过主节点10进行注册和通知其他从节点,在有新节点加入或有节点退出时,部署和配置会比较麻烦。这种架构的服务器集群在需要通过中心节点(即主节点作为中心)进行调度的分布式集群下,应用比较广泛,能够带来比较好的效果。但对于所有服务器节点都在同一网络内的应用场景,图1所示的服务器架构在处理的响应时间和部署的繁琐上,都会因过度依赖主节点,而影响集群的可用性和性能。因为本发明针对服务器节点都部署在同一网络内的业务,提供一种局域网服务器集群,能够对服务器集群进行去中心化,通过组播技术,实现集群的自组织和自管理,部署方便,且支持集群服务的水平扩展,能够实现服务程序的热插拔,有效提高了集群的健壮性。
[0023]图2示意性地显示了本发明一种实施方式的局域网服务器集群的架构。如图2所示,该服务器集群包括路由器20和多个服务器节点21,多个服务器节点21通过同一路由器20互联,构成一个局域网。其中,每个服务器节点21上,都配置有组播模块211、解析模块215和集群发现模块212。组播模块211设置为周期性地在局域网内向预设的组播地址及端口发送消息,该消息至少包括本机服务器节点21的第一组群配置信息。预设的组播地址及端口为相同的固定组播地址及端口,如为239.0.0.1:8086。解析模块215设置为接收同一局域网内的其他服务器节点的消息,进行解析,解析出外部服务器节点(即局域网内的其他服务器节点)的第二组群配置信息。集群发现模块212设置为根据验证协议,对第一组群配置信息和第二组群配置信息进行校验,将符合验证协议的其他服务器节点加入本机的服务器集群。在具体应用中,局域网内的任一服务器节点21在启动后,即通过组播模块211周期性地(如每隔I分钟)向该组播地址及端口发送广播消息,通知同一局域网内的其他服务器节点该服务器节点已上线。其中,发送的广播消息可以是UDP广播包,消息体内包括集群标识、服务程序的版本号、消息类型、操作系统的类型及版本、以及服务器的IP地址等消息内容(这些消息内容可以预先设定,也可以在发送时通过动态读取配置文件获取,只要实现本发明目的即可。)。局域网内的其他服务器节点在接收到广播消息后,解析模块215根据UDP广播包的协议对广播包进行解析(为现有技术,故不赘述)。解析完后,根据验证协议对解析出的第二组群配置信息的内容进行校验(即与本服务器节点的第一组群配置信息的内容进行比较),在验证通过时(两者内容一致时),将对应的其他服务器节点加入本机(即本服务器节点)所在的服务器集群。其中,验证协议可以根据需求进行设置,本发明实施例优选的验证协议内容为只有解析出的消息内容中的集群标识、服务程序的版本号、操作系统类型及版本号都与本机的相同,才能通过验证,接受该其他服务器节点为集群内的一员,即第一组群配置信息和第二组群配置信息可以根据验证协议的内容设置为包括集群标识、服务程序的版本号和操作系统类型及版本号。需要说明的是,集群标识是在服务器启动前设置的其所述的集群的统一标识,可以是集群名称等,而其他校验的消息内容如服务程序的版本号、操作系统类型及版本号等都可以直接从服务器的配置信息中获取。通过将服务器节点连接到对应的局域网和在服务器节点上配置组播模块211、解析模块215和集群发现模块212,服务器节点就能够自动发现本局域网内属于同一集群的其他服务器节点,并将其加入本机的服务器集群,并且相互之间知道本集群内的其他服务器节点的资源和配置等信息,能够实现局域网内集群的自组织,部署非常简单快捷。并且,由于去除了中心化,各服务器节点都是对等的关系,彼此之间都知道集群中各服务器节点的资源配置信息,当集群的服务能力出现瓶颈时,支持水平扩展,能够实现服务程序的热插拔(在系统运行过程中,动态替换某些功能,不用重启系统进程,对服务器来说,热插拔技术和功能的实现,是为了获得系统运行的稳定性和可靠性,实现连续无中断的程序应用。),保证集群的高可用性,提高集群的健壮性,有效解决现有技术中依赖主节点调度管理的服务器集群在主节点故障时无法协调的问题。
[0024]如图2所示,本发明实施例的服务器集群中的服务器节点21上还配置有集群管理模块213。集群管理模块213设置为建立与加入本机的服务器集群的其他服务器节点的通信连接,通过通信连接和PING机制确定本集群中的其他服务器节点的连接状态,根据连接状态从本集群中移除已下线的服务器节点。具体为,当集群内的服务器节点(如服务器节点A)接收到其他服务器节点(如服务器节点B)发送的组播消息,且验证通过将其加入本机集群后,服务器节点A则会立即建立与新加入的服务器节点B的通信连接,并与服务器节点B之间周期性地(如每隔I分钟)通过该通信连接相互发送ping包监听对方的在线状态。对方服务器节点在收到Ping包后,需立即对收到的Ping包进行响应,如果服务器节点A向服务器节点B发送的ping包连续多次(如五次)没有收到响应(即未接通时),则认为服务器节点B已经下线,则服务器节点A会将服务器节点B从集群中删除。删除之后,从服务器节点A来看,集群内的服务器已经不包括服务器节点B,直到它再次收到服务器节点B上线后发送的组播消息并验证通过。由此,集群内的服务器节点21通过PING机制就能够实现自动感知其他服务器节点的上线和下线状态,不依赖其他程序或节点,可以实现集群的自管理,从而在有访问请求到达而自身节点无法处理时,不需要中转询问主节点其他节点是否在线,就可以直接进行访问请求的转发,有效提高集群的性能(如响应时间)。本发明实施例中的通信连接可以是任何能够进行消息传输的通信连接,如UDP、TCP等,本发明实施例优选为TCP长连接。
[0025]如图2所示,本发明实施例的服务器集群中的服务器节点21上还配置有服务模块214,设置为在接收到访问请求时,根据集群中服务器节点之间共享的资源配置信息,响应访问请求或通过建立的通信连接将访问请求转发集群内的其他服务器节点。集群在提供对外服务时,通常是通过虚拟IP的方式,借助LVS (Linux Virtual Server,Linux虚拟服务器,是一个虚拟的服务器集群系统,属于现有技术)的负载均衡调度器将客户端的请求均衡的调度到集群内的服务器节点。如当有一个访问请求发送到集群时,集群通过虚拟IP对外接收访问请求。接收到请求后,集群的LVS就可以通过各虚拟IP将访问请求动态发送到任一个虚拟IP上进行处理。由于,各个服务器节点是对等的关系,都能够处理分配来的访问请求,且相互之间知道同一集群中各服务器节点的资源配置信息,此时,LVS会根据资源调度策略(如一致性HASH算法)进行资源定位,通过资源定位到哪一个服务器节点,就把访问请求发送到对应的服务器节点进行处理,由此,实现集群的负载均衡。此部分为现有技术,故不赘述。服务器节点在接收到访问请求后,服务器节点根据其知道的集群内的各个服务器节点的资源配置情况(可以通过组播消息发送给对方或进行资源共享。),对访问请求该由谁处理进行判断,如果该请求需要由自己处理则自己进行相应处理,如果该请求需要由集群内的其他服务器节点进行处理,则通过已建立的通信连接,如TCP长连接,将该访问请求转发给相应的服务器节点进行处理。由于不需要转发给主节点进行资源的查询和调度,能够有效的提高访问请求的响应和处理时间。
[0026]优选地,为了提高集群中各服务器节点之间的吞吐量,可以在两个服务器节点之间建立多个通信连接的通道。
[0027]通过本发明实施例提供的服务器集群,可以实现局域网内服务器集群的自组织和自管理,解除了对中心服务器节点(即主节点)的依赖,各服务器节点能够提供对等的服务,水平扩展能力更好,整个集群的健壮性更强。
[0028]图3示意性地显示了根据本发明的一种实施方式的局域网服务器集群的实现方法。如图3所示,该方法包括:
[0029]步骤SlOl:通过路由器将服务器节点连接到局域网,在服务器节点上配置部署集群模块。
[0030]通过将多个服务器节点连接到同一路由器,将多个服务器节点部署到同一局域网内。在各服务器节点上配置部署上述的相应集群模块,如组播模块、集群发现模块、解析模块、集群管理模块和/或服务模块。该集群模可以是按模块分开的不同组件,也可以一个包含所述各个模块的系统。
[0031]步骤S102:启动服务器节点上的服务,服务器节点通过路由器周期性地向局域网内发组播消息。
[0032]在服务器节点上部署好上述模块或系统后,启动服务器节点的服务,启动后,各服务器节点的组播模块就会在局域网内通过路由器自动的周期性地(如每隔一分钟)向固定的组播地址及端口发送广播消息。其中,广播消息为UDP广播包,消息体的内容参见前文叙述。
[0033]步骤S103:局域网内的服务器节点接收其他服务器节点发送的组播消息,进行解析。
[0034]同一局域网内的服务器节点接收到其他的服务器节点发送的组播消息后,根据UDP广播包的协议对UDP包进行解析。UDP广播包的解析属于现有技术,故不详述。
[0035]步骤S304:根据解析结果和验证协议,将符合验证协议的服务器节点加入本机的服务器集群。
[0036]解析完成后,服务器节点根据预设的验证协议(内容参见前文叙述)对消息进行校验,在验证通过后,将符合验证协议的服务器节点加入本机的服务器集群。
[0037]通过以上方法,就可以通过组播技术,在局域网内自动发现集群中的其他服务节点,并将其加入本机的服务器集群,省去了图1所示的现有技术集群在加入节点时需要在主节点和从节点进行注册和配置,并需要通过主节点通知其他从节点的繁琐操作,集群的组织完全自动化,更加快捷方便。并且,去除了主节点后,集群中的服务器节点能够提供对等的服务,支持水平扩展。
[0038]图4示意性地显示了本发明另一种实施方式的局域网服务器集群的实现方法。如图4所示,本发明实施例的实现方法中,步骤S401至步骤S404的集群发现机制与图3所示的方法相同,在此不再赘述,不同在于,本发明实例还包括以下步骤:
[0039]步骤S405:建立与新加入的服务器节点的通信连接,并周期性的发送ping包,以确定其他的服务器节点的在线状态。
[0040]在将符合验证协议的服务器节点加入集群后,服务器节点立即建立与新加入的服务器节点的通信连接。并通过建立的通信连接周期性地发送Ping包,根据对方服务器节点对Ping包的回应状态,确定其他服务器节点的在线状态,如及时回应则说明在线,连续五次没有回应Ping包则说明已下线。
[0041]步骤S406:根据在线状态,把已经下线的服务器节点从本机的服务器集群中移除。
[0042]当根据ping机制发现对方服务器节点已经下线时,将已经下线的服务器节点从本机的服务器集群中移除。此时对本服务器节点来说,下线的服务器节点已经不在集群内,则本服务器的资源配置情况中,就也不再包含下线的服务器节点的信息。由此,可以通过自动感知下线机制,有效及时地更新集群的服务器资源情况。
[0043]通过步骤S405和S406,本发明实施例的服务器集群能够实现对其他服务器节点的下线的自动感知,并将已下线的服务器节点及时从集群中删除,能够及时有效地对集群中的服务器节点情况和资源进行自管理,集群的健壮性更好。
[0044]优选地,本发明实施例实现方法中的通信连接为TCP长连接。
[0045]通过以上方法实现了局域网内的去中心化的服务器集群后,当有访问请求来到时,LVS就可以根据负载均衡调度器将客户端的请求均衡的调度到集群内的任一服务器节点上。接收到访问请求的服务器节点,就可以根据本机上最新的集群内服务器节点的资源配置情况,自己直接处理访问请求或通过通信连接直接将访问请求转发给能够处理的其他服务器节点进行处理。其中,优选地,为了提高集群内各服务器节点之间的吞吐量,可以在服务器节点之间建立多个通信连接(如TCP长连接)。
[0046]本发明的方法,提供了一种基于组播技术的服务器集群的发现机制,实现了在局域网内简便快捷部署服务器节点和自动组织本机的服务器集群。且通过去除中心服务器节点,集群内的服务器节点能够提供对等的服务,在集群出现瓶颈时,能够及时快速的进行水平扩展,实现服务程序的热插拔,能够有效集群的可用性和健壮性。
[0047]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0048]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0049]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种服务器节点,包括: 组播模块,用于通过路由器连接至局域网,并在局域网内发送组播消息,所述组播消息至少包含与本服务器节点相关的第一组群配置信息; 解析模块,用于在局域网内接收来自外部的服务器节点的组播消息,解析出第二组群配置信息; 集群发现模块,用于校验所述第一组群配置信息和第二组群配置信息的一致性,并根据所述校验结果确定是否与所述外部的服务器节点组成集群。2.根据权利要求1所述的服务器节点,其特征在于,还包括集群管理模块,用于在本服务器节点与组成集群的外部服务器节点间建立通信连接并监听所述外部服务器节点的连接状态,其中,当所述连接状态为未连通时,从所述集群中移除所述外部服务器节点。3.根据权利要求1或2所述的服务器节点,其特征在于,还包括服务模块,所述服务模块用于在接收到访问请求时,根据集群中各服务器节点间共享的资源配置信息,处理所述访问请求或利用所述集群管理模块建立的通信连接,将所述访问请求转发至资源配置适合处理所述访问请求的服务器节点。4.根据权利要求3所述的实现方法,其特征在于,所述通信连接为至少包含一个通道的TCP长连接。5.根据权利要求1至4任一项所述的服务器节点,其中,所述第一组群配置信息包括集群标识、服务程序的版本号和操作系统的类型及版本; 所述组播消息是UDP广播包,消息体中至少包含消息类型、IP地址以及所述第一组群配置信息。6.一种局域网服务器集群,包括连接至同一路由器的多个服务器节点,其中,每个服务器节点为根据权利要求1至5中任一项所述的服务器节点。7.一种局域网服务器集群实现方法,其特征在于,包括: 将多个服务器节点通过同一路由器连接至局域网; 每个服务器节点均通过所述路由器在所述局域网内发送组播消息,所述组播消息至少包含与本服务器节点相关的第一组群配置信息; 每个服务器节点均通过所述路由器在局域网内接收来自本服务器节点外部的服务器节点的组播消息,解析出第二组群配置信息; 每个服务器节点均校验所述第一组群配置信息和第二组群配置信息的一致性,并根据所述校验结果确定是否与所述外部的服务器节点组成集群。8.根据权利要求7所述的实现方法,其特征在于,还包括: 每个服务器节点均建立与组成集群的外部服务器节点间的通信连接; 每个服务器节点通过所述通信连接监听与所述外部服务器节点的连接状态,在所述连接状态为未连通时,从所述集群中移除所述外部服务器节点。9.根据权利要求8所述的实现方法,其特征在于,还包括: 每个服务器节点在接收到访问请求时,根据集群中各服务器节点间共享的资源配置信息,处理所述访问请求或利用所述通信连接转发所述访问请求至资源配置合适处理所述访问请求的服务器节点。10.根据权利要求7-9中任一项所述的实现方法,其特征在于,所述第一组群配置信息和第二组群配置信息均包括:集群标识、服务程序的版本号和操作系统的类型及版本; 所述组播消息是UDP广播包,消息体中至少包含消息类型、IP地址以及所述第一组群配置信息或第二组群配置信息。
【文档编号】H04L29/08GK105897827SQ201510849195
【公开日】2016年8月24日
【申请日】2015年11月27日
【发明人】陈艳成, 赵瑞前
【申请人】乐视云计算有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1