对等网络中节点集群实现方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及网络技术领域,尤其涉及一种对等网络中节点集群实现方法、装置及系统。
【背景技术】
[0002]传统的网络(web)产品在实现分布式部署(又称集群部署)时,一般采用以下两种部署过程:
[0003]第一种集群部署过程如下:
[0004]首先,安装并启动主节点;
[0005]其次,依次安装并启动从节点,并在安装从节点时,在从节点上配置主节点的相关信息,例如,主节点的网络协议(IP)地址、端口号等。
[0006]第二种集群部署过程如下:
[0007]依次安装各个节点,在全部安装完成后,人为指定一个节点作为主节点,并修改各个从节点的配置文件,或者是通过各个从节点的配置界面进行相关设置,重启各从节点。
[0008]由此可见,现有的集群部署过程中,需要人为指定主节点和从节点,并且需要手动配置或修改主节点和从节点的配置信息。
[0009]并且,一旦主节点出现故障被挂起,所有的从节点将无法正常进行状态和数据的同步,导致所有节点的应用程序无法正常工作。
[0010]因此,如何实现对等网络集群部署时主节点的自动推举,降低集群部署的实现复杂度,提高集群部署的运行效率,成为有待解决的问题。
【发明内容】
[0011]本发明提供一种对等网络中节点集群实现方法、装置及系统,用以实现对等网络集群部署时主节点的自动推举,降低集群部署的复杂度,提高集群部署的效率。
[0012]本发明实施例提供的具体技术方案如下:
[0013]一种对等网络中节点集群实现方法,所述集群中的各节点运行于至少一个服务器上,包括:
[0014]集群中的任意节点获取具有相同的集群标识的各节点的状态信息,所述状态信息包括节点的标识和性能参数;
[0015]根据获取的各节点的性能参数以及自身的性能参数确定主节点。
[0016]一种对等网络中节点集群实现装置,包括:
[0017]获取模块,用于获取具有相同的集群标识的各节点的状态信息,所述状态信息包括节点的标识和性能参数;
[0018]确定模块,用于根据获取的各节点的性能参数以及自身的性能参数确定主节点。
[0019]一种对等网络中节点集群系统,包括:一个以上运行于至少一个服务器上的节占.
[0020]任一节点,用于获取具有相同的集群标识的各节点的状态信息,所述状态信息包括节点的标识和性能参数,根据获取的各节点的性能参数以及自身的性能参数确定主节占.[0021 ] 其它各节点,用于向所述节点发送自身的状态信息。
[0022]基于上述技术方案,本发明实施例中,集群中任意一节点获取同一集群中的其它各节点的标识及其性能参数,根据获取的各节点的性能参数以及自身的性能参数确定主节点,从而能够实现对等网络集群部署时主节点的自动推举,降低集群部署的复杂度,提高集群部署的效率。
【附图说明】
[0023]图1为本发明实施例中集群实现的方法流程示意图;
[0024]图2a为本发明实施例中单节点的搜索系统示意图;
[0025]图2b为本发明实施例中加入一个节点的搜索系统示意图;
[0026]图2c为本发明实施例中加入多个节点的搜索系统示意图;
[0027]图2d为本发明实施例中从节点故障的搜索系统示意图;
[0028]图2e为本发明实施例中主节点故障的搜索系统示意图;
[0029]图3为本发明实施例中节点结构示意图。
【具体实施方式】
[0030]为了实现对网络集群部署时主节点的自动推举,降低集群部署的复杂度,提高集群部署的效率,本发明实施例提供了一种对等网络中节点集群实现方法、设备及系统。
[0031]下面结合附图对本发明优选的实施方式进行详细说明。
[0032]以下实施例中,集群中的各节点运行于至少一个服务器上,优选地,每个节点运行于一个独立的服务器上。其中,若一个服务器上运行多个节点,则该多个节点对应的端口号各不相同。
[0033]以下实施例中,节点的动作实质为由该节点所运行的服务器执行。
[0034]其中,集群中每个节点具有唯一标识,集群中包含有一个主节点和若干从节点,本发明实施例中,除主节点外的各节点均为从节点,各节点均可提供相同的功能,以避免单点故障。
[0035]以下实施例中,集群中的各节点采用对等连接(Peer to Peer, P2P,也称对等网络),每个节点都具有相同的能力。
[0036]如附图1所示,本发明实施例中,提供了一种对等网络中节点集群实现方法,该集群部署实现方法的具体过程如下:
[0037]步骤101:集群中的任意节点获取具有相同的集群标识的各节点的状态信息,所述状态信息包括节点的标识和性能参数。
[0038]本发明实施例中,每个节点在安装时指定其所属的集群,在该节点上设置所属集群的集群标识。
[0039]一个具体实施中,获取具有相同的集群标识的各节点的状态信息,具体过程为:
[0040]节点发送携带有集群标识的第一广播消息;并接收具有相同的集群标识的各节点返回的第一响应消息,该第一响应消息中携带有自身的标识以及性能参数。
[0041]优选地,集群中的各节点的IP地址属于同一网段,以便于广播消息。
[0042]步骤102:根据获取的各节点的性能参数以及自身的性能参数确定主节点。
[0043]其中,主节点负责广播集群中各节点的状态信息、发现新加入的节点。
[0044]具体实施中,在集群中加入新的节点时,需要配置该节点的集群标识。
[0045]在一个具体实施中,集群中的任一节点根据获取的各节点的性能参数以及自身的性能参数确定主节点后,还包括:
[0046]接收主节点按照设定周期发送的、携带集群标识的第二广播消息;
[0047]确定第二广播消息中携带的集群标识与自身的集群标识相同后,向主节点返回携带自身标识及性能参数的第二响应消息,由主节点根据第二响应消息建立节点列表,该节点列表中包括返回第二响应消息的各节点的标识及其性能参数;
[0048]以及接收主节点发送的携带节点列表的第三广播消息,并在本地保存节点列表。
[0049]较佳地,第二响应消息中还包括节点的IP地址、端口号等。
[0050]较佳地,节点列表中还包括节点的IP地址、端口号、是否为主节点的指示信息、节点是否为可用状态的指示信息、节点当前是否为可用状态的指示信息的更新时间等。
[0051]优选地,以节点的网络协议(IP)地址和端口号的组合作为节点的标识。
[0052]在一个较佳地实施中,主节点建立节点后,若发现新的节点加入该集群,对节点列表进行更新和维护,具体过程如下:
[0053]主节点按照设定周期发送携带集群标识的第二广播消息;
[0054]在接收具有该集群标识的节点返回的携带自身标识及性能参数的第二响应消息后,确定本地保存的节点列表中不包括第二响应消息中携带的节点的标识时,将该第二响应消息中携带的节点的标识及其性能参数加入节点列表;
[0055]并发送携带更新后的节点列表的第三广播消息,由各节点在接收该第三广播消息后更新本地保存的节点列表。
[0056]在另一个较佳地实施中,主节点建立节点列表后,若发现节点故障,对节点列表进行维护,具体过程如下:
[0057]主节点按照设定周期发送携带集群标识的第二广播消息;
[0058]在超过设定时长未接收到节点返回的第二响应消息时,在节点列表中增加该节点不可用的状态标识;
[0059]并发送携带修改后的节点列表的第三广播消息,由各节点在接收第三广播消息后更新本地保存的节点列表。
[0060]其中,还可以是主节点按照设定周期发送携带集群标识的第二广播消息,在连续超过设定次数未接收到某节点返回的第二响应消息时,初步确定该节点不可用。较佳地,在连续超过设定次数未接收到某节点返回的第二响应消息时,采用Socket通信向该节点发送验证请求,如果超过设定时长未接收到响应,则确定该节点故障,处于不可用状态。
[0061]其中,从节点在主节点故障时,推举新的主节点。
[0062]在一个具体实施中,节点若在设定时长内未接收到主节点发送的消息,重新获取具有相同的集群标识的其它各节点的状态信息,以及根据重新获取的各节点的性能参数以及自身的性能参数确定主节点。
[0063]其中,节点的性能参数可以是节点的点播响应时间,该响应时间越短,节点的性能越佳,将响应时间最短的节点推举为主节点。在节点的性能参数相同,可随机选择一个节点作为主节点,也可以按照设定的规则选择一个节点作为主节点。
[0064]例如,在节点的点播响应时间相同时,选择标识较小的节点作为主节点。
[0065]在一个具体实施中,若集群仅有一个处于可用状态的节点,则启用单节点模式,即将该节点作为主节点。
[0066]优选地,在集群中有新的节点加入时,主节点按照设定周期发送携带集群标识的第二广播消息,在接收该新的节点返回的携带自身标识及性能参数的第二响应消息时,还接收到该新的节点返回的指定为节点为主节点的指示信息,将主节点更新为新的节点;
[0067]或者是,比较当前的主节点和该新的节点的性能参数,若该新的节点的性能参数较优,则将主节点更新为新的节点,否则,维持当前的主节点不变。
[0068]具体实施中,主节点通过套接字(socket)通信,多线程并行扫描同一网段内指定端口下具有同一集群标识的节点,获得最新节点状态清单。其中,线程为程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,称为多线程。
[0069]以下通过一个具体实施例对本发明实施例所提供的集群部署方法进行举例说明。
[0070]该具体实施例以搜索应用集群的部署为例,具体部署过程如下:
[0071]如附图2a所示,假设该集群仅有一个节点1,该节点I为主节点,即仅从该单一的节点返回搜索结果;
[0072]如附图2b所示,节点I通过同一网段内广