专利名称:一种集群节点匹配方法、集群通信模块、设备及系统的制作方法
技术领域:
本申请涉及匹配技术领域,特别涉及一种集群节点匹配方法、集群通信模块、设备及系统。
背景技术:
集群系统包括用户设备、负载均衡服务器和多个集群节点,所述集群节点上部署有软件服务。用户通过用户设备发送软件服务请求至集群节点,集群节点接收到软件服务请求后,调用与服务请求相对应的软件服务,以处理软件服务请求中待分析数据,并将将处理结果返回给用户。目前在调用软件服务时,用户通过用户设备发送的软件服务请求集中至负载均衡服务器中,再由其转发至集群节点。因此,在负载均衡服务器故障后,在集群节点正常工作的情况下,集群节点接收不到软件服务请求,从而集群节点无法执行软件服务,导致整个集群系统无法使用。同时,当集群中有新的集群节点加入或集群节点退出时,负载均衡服务器无法动态识别该操作。综上所述,目前急需一种集群节点匹配方法,以避免在负载均衡服务器故障时,集群节点无法执行软件服务,导致整个集群系统无法使用的问题。且该集群节点匹配方法可以动态识别集群系统中新集群节点的加入或者集群节点的退出。
发明内容
有鉴于此,本申请提出一种集群节点匹配方法,用以解决现有技术中在负载均衡服务器故障后导致整个集群系统无法使用,以及负载均衡服务器无法动态识别新集群节点的加入或集群节点的退出。本申请还 提供了一种集群通信模块、设备及系统,用以保证上述方法在实际中的实现及应用。技术方案如下:基于本申请的一方面,提供一种集群节点匹配方法,集群系统中的每个用户设备上增设一集群通信模块,所述方法包括:所述集群通信模块接收所述集群系统中的各个集群节点发送的心跳消息;依据所述心跳消息,判断所述集群系统中是否有新集群节点加入或/和集群节点退出;接收用户通过所述用户设备发送的集群节点调用请求;匹配与所述集群节点调用请求相对应的集群节点。优选地,在集群系统内设置一个数据同步服务器,所述数据同步服务器获取各个所述集群节点的关键值,对于所述集群系统中的任意一个集群节点,所述数据同步服务器将该集群节点的数据分成两半,并将两半数据分别保存至与该集群节点的关键值相邻的一个集群节点上;在所述集群系统中有新集群节点加入的情况下,所述方法还包括:
数据同步服务器获取所述新集群节点的关键值,将所述新集群节点的数据分成两半;获取关键值与所述新集群节点的关键值相邻的两个集群节点,将所述新集群节点的两半数据分别保存至该两个集群节点中的一个集群节点,并清除两个集群节点之前保存的其他集群节点的数据。优选地,在所述集群系统中有集群节点退出的情况下,所述方法还包括:数据同步服务器获取关键值与退出的所述集群节点关键值相邻的两个集群节
占.
将该两个集群节点各自的一半数据保存至对方中,并清除两个集群节点中之前保存的退出的所述集群节点的数据。优选地,所述数据同步服务器对各个集群节点的IP和端口进行Hash计算以获取各个集群节点的关键值。
优选地,所述集群通信模块接收所述集群系统中的各个集群节点周期性发送的心跳消息。优选地,在所述集群通信模块接收到的心跳消息中携带有新IP和新端口时,判断集群系统中有新集群节点加入;在所述集群通信模块接收到的心跳消息中未携带之前所携带的IP和端口,判断与该IP和端口对应的集群节点退出集群系统。基于本申请的另一方面,还提供一种集群通信模块,包括:消息接收模块,用于接收所述集群系统中的各个集群节点发送的心跳消息;判断模块,用于依据所述心跳消息,判断所述集群系统中是否有新集群节点加入或/和集群节点退出;请求接收模块,用于接收用户通过所述用户设备发送的集群节点调用请求;匹配模块,用于匹配与所述集群节点调用请求相对应的集群节点。优选地,所述消息接收模块具体用于接收所述集群系统中的各个集群节点周期性发送的心跳消息。优选地,所述判断模块具体用于在所述集群通信模块接收到的心跳消息中携带有新IP和新端口时,判断集群系统中有新集群节点加入;在所述集群通信模块接收到的心跳消息中未携带之前所携带的IP和端口,判断与该IP和端口对应的集群节点退出集群系统。基于本申请的另一方面,还提供一种用户设备,包括上述集群通信模块。基于本申请的再一方面,还提供一种集群系统,包括:上述用户设备和多个集群节点,其中,所述用户设备直接发送软件服务请求至所述集群节点。优选地,所述用户设备通过远程过程调用协议RPC规范直接将软件服务请求发送至所述集群节点。优选地,还包括数据同步服务器,所述数据同步服务器用于获取各个所述集群节点的关键值,对于所述集群系统中的任意一个集群节点,所述数据同步服务器将该集群节点的数据分成两半,并将两半数据分别保存至与该集群节点的关键值相邻的一个集群节点上。优选地,所述数据同步服务器还用于清除集群节点保存的其他集群节点的数据。
优选地,所述数据同步服务器具体用于对各个集群节点的IP和端口进行Hash计算以获取各个集群节点的关键值。与现有技术相比,本申请包括以下优点:在本申请中,为集群系统中的每个用户设备上增设一集群通信模块,所述集群通信模块接收所述集群系统中的各个集群节点发送的心跳消息;依据所述心跳消息,则可以判断所述集群系统中是否有新集群节点加入或/和集群节点退出,实现了动态识别集群系统中新集群节点的加入或集群节点的退出。同时所述集群通信模块可以接收用户通过所述用户设备发送的集群节点调用请求;匹配与所述集群节点调用请求相对应的集群节点,在匹配后,用户设备直接发送软件服务请求至匹配的集群节点。由于为每个用户设备增设了集群通信模块,所以在任意一个集群通信模块故障后,其他用户设备还可以通过自身的集群通信模块与集群节点通信,保证整个集群系统可用。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请的一种集群节点匹配方法的一种流程图;图2是本申请的一种集群节点匹配方法的另一种流程图;图3是集群系统中有新集群节点加入的示意
图4是图3所示的集群系统中F集群节点退出的示意图;图5是本申请提供的一种集群通信模块的结构示意图;图6是本申请提供的一种集群系统的结构示意图。
具体实施例方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。请参考图1,其示出了本申请一种集群节点匹配方法的流程图,其应用于集群系统,集群系统中的每个用户设备上增设一集群通信模块。所述方法可以包括以下步骤:步骤101:集群通信模块接收所述集群系统中的各个集群节点发送的心跳消息。在本实施例中,集群通信模块可以接收集群系统中的各个集群节点周期性发送的心跳消息。心跳消息中携带有各自集群节点的IP和端口,并将其保存至一路由表中。其中,周期可以依据不同应用场景随机设定。
步骤102:依据所述心跳消息,判断所述集群系统中是否有新集群节点加入或/和集群节点退出。其中在所述集群通信模块接收到的心跳消息中携带有新IP和新端口时,判断集群系统中有新集群节点加入。在所述集群通信模块接收到的心跳消息中未携带之前所携带的IP和端口,判断与该IP和端口对应的集群节点退出集群系统。在新集群节点加入或集群节点退出时,更新路由表中所保存的集群节点的IP和端口。步骤103:接收用户通过所述用户设备发送的集群节点调用请求。步骤104:匹配与所述集群节点调用请求相对应的集群节点。在本实施例中,所述匹配可以为随机选择匹配,也可以依据负载选择匹配,还可以依据Hash选择匹配。其中,负载选择匹配是指按照集群节点的当前负载进行匹配,其匹配结果为当前负载最小的集群节点。Hash选择匹配是指用户设备计算自身IP的Hash值,再将自身的Hash值与集 群节点的Hash值进行匹配,从而匹配出与集群节点调用请求相对应的集群节点。Hash选择匹配的匹配结果与随机选择匹配相同是任意匹配一个集群节点。需要说明的是:在匹配到集群节点后,用户设备直接发送软件服务请求至匹配到的集群节点。由该集群节点执行软件服务,并将执行结果直接发送至用户设备。其中,用户设备和集群节点之间通过RPC(Remote Procedure Call Protocol,远程过程调用协议)规范通信。应用上述技术方案,为集群系统中的每个用户设备上增设一集群通信模块,所述集群通信模块接收所述集群系统中的各个集群节点发送的心跳消息;依据所述心跳消息,则可以判断所述集群系统中是否有新集群节点加入或/和集群节点退出,实现了动态识别集群系统中新集群节点的加入或集群节点的退出。同时所述集群通信模块可以接收用户通过所述用户设备发送的集群节点调用请求;匹配与所述集群节点调用请求相对应的集群节点,在匹配后,用户设备直接发送软件服务请求至匹配的集群节点。由于为每个用户设备增设了集群通信模块,所以在任意一个集群通信模块故障后,其他用户设备还可以通过自身的集群通信模块与集群节点通信,保证整个集群系统可用。请参考图2,其示出了本申请一种集群节点匹配方法的另一种流程图,其实现了集群系统中有新集群节点加入或集群节点退出时,集群节点间数据的自动同步。在集群系统内设置一个数据同步服务器,所述数据同步服务器获取各个所述集群节点的关键值,对于所述集群系统中的任意一个集群节点,所述数据同步服务器将该集群节点的数据分成两半,并将两半数据分别保存至与该集群节点的关键值相邻的一个集群节点上。其中,数据同步服务器可以对各个集群节点的IP和端口进行Hash计算以获取各个集群节点的关键值。在本实施例中,图2所示的集群节点匹配方法可以包括以下步骤:步骤201:集群通信模块接收所述集群系统中的各个集群节点发送的心跳消息。步骤202:依据所述心跳消息,判断所述集群系统中是否有新集群节点加入或/和集群节点退出。步骤203:接收用户通过所述用户设备发送的集群节点调用请求。步骤204:匹配与所述集群节点调用请求相对应的集群节点。上述步骤201至204与图1中的步骤101至104相同,对此不再加以阐述。步骤205:判断是否有新集群节点加入,如果是,执行步骤206,如果否,执行步骤208。步骤206:数据同步服务器获取所述新集群节点的关键值,将所述新集群节点的数据分成两半。步骤207:获取关键值与所述新集群节点的关键值相邻的两个集群节点,将所述新集群节点的两半数据分别保存至该两个集群节点中的一个集群节点,并清除两个集群节点之前保存的其他集群节点的数据,如图3所示。图3是集群系统中有新集群节点加入的示意图,其中,A至E为已有集群节点,F为新集群节点。当F加入到集群系统后,数据同步服务器将获取到F的关键值与A至E的关键值进行比对,得出D和C的关键值是F的关键值的相邻关键值,则将F加入到D和C之间。将F中的一半数据保存至D中,将D中之前保存的C的一半数据清除。同样,将F中的另一半数据保存至C中,将C中之前保存的D的一半数据清除。步骤208:判断是否有集群节点退出,如果是,执行步骤209,如果否,执行步骤211。步骤209:数据同步服务器获取关键值与退出的所述集群节点关键值相邻的两个集群节点。步骤210:将该两个集群节点各自的一半数据保存至对方中,并清除两个集群节点中之前保存的退出的所述集群节点的数据,如图4所示。图4是图3所示的集群系统中F集群节点退出的示意图。当F退出集群系统后,数据同步服务器将获取到F的关键值与A至E的关键值进行比对,得出D和C的关键值是F的关键值的相邻关键值,则将D和C中保存的F的数据清除,将C中的一半数据保存至D中,将D中的一半数据保存至C中。步骤211:维持之前集群节点中保存的数据。需要说明的是,本实施例中的关键值可以是集群节点对自身的IP和端口进行Hash运算得出的Hash值,也可以是集群节点对自身的IP和端口的反向字段进行Hash运算得出的Hash值。应用上述技术方案,实现了集群系统中集群节点间数据的自动同步。此外,集群节点将数据冗余至与其相邻的集群节点中,可以提高系统性能。而对各个集群节点的IP和端口进行Hash计算,获取各个集群节点的关键值,可以保证数据分布均匀,同样提高了系统性能。对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。与上述方法实施例相对应,本申请还提供一种集群通信模块,其结构示意图请参阅图5,包括:消息接收模块51、判断模块52、请求接收模块53和匹配模块54。其中,消息接收模块51,用于接收所述集群系统中的各个集群节点发送的心跳消息。其具体用于接收所述集群系统中的各个集群节点周期性发送的心跳消息。判断模块52,用于依据所述心跳消息,判断所述集群系统中是否有新集群节点加入或/和集群节点退出。
在本实施例中,判断模块具体用于在所述集群通信模块接收到的心跳消息中携带有新IP和新端口时,判断集群系统中有新集群节点加入;在所述集群通信模块接收到的心跳消息中未携带之前所携带的IP和端口,判断与该IP和端口对应的集群节点退出集群系统。请求接收模块53,用于接收用户通过所述用户设备发送的集群节点调用请求。匹配模块54,用于匹配与所述集群节点调用请求相对应的集群节点。需要说明的是:在匹配到集群节点后,用户设备直接发送软件服务请求至匹配到的集群节点。由该集群节点执行软件服务,并将执行结果直接发送至用户设备。其中,用户设备和集群节点之间通过RPC规范通信。本实施例所述的装置可以集成到用户设备上,也可以单独作为一个实体与用户设备相连,另外,需要说明的是,当本申请所述的方法采用软件实现时,可以作为集群通信模块新增的一个功能,也可以单独编写相应的程序,本申请不限定所述方法或装置的实现方式。与上述装置实施例相对应,本申请还提供一种集群系统,包括:用户设备和多个集群节点,其中,用户设备内设置有集群通信模块,所述用户设备直接发送软件服务请求至所述集群节点。比如:用户设备通过RPC规范直接将软件服务请求发送至所述集群节点。集群通信模块的功能和结构请参阅图5以及对图5的介绍,对此不再加以阐述。请参阅图6,其示出了本申请提供的一种集群系统的结构示意图。所述集群系统还可以包括数据同步服务器61。所述数据同步服务器61用于获取各个所述集群节点62的关键值,对于所述集群系统中的任意一个集群节点,所述数据同步服务器将该集群节点的数据分成两半,并将两半数据分别保存至与该集群节点的关键值相邻的一个集群节点上。其中,所述数据同步服务器具体用于对各个集群节点62的IP和端口进行Hash计算以获取各个集群节点62的关键值。各个集群节点62的IP和端口保存在用户设备63的路由表中。在本实施例中,·当集群系统中有新集群节点加入或者集群节点退出时,所述数据同步服务器61还用于清除集群节点保存的其他集群节点的数据,以实现集群节点之间数据的自动同步。需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设
备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不
排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。以上对本申请所提供的一种检索方法、装置及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的 限制。
权利要求
1.一种集群节点匹配方法,其特征在于,集群系统中的每个用户设备上增设一集群通信模块,所述方法包括: 所述集群通信模块接收所述集群系统中的各个集群节点发送的心跳消息; 依据所述心跳消息,判断所述集群系统中是否有新集群节点加入或/和集群节点退出; 接收用户通过所述用户设备发送的集群节点调用请求; 匹配与所述集群节点调用请求相对应的集群节点。
2.根据权利要求1所述的集群节点匹配方法,其特征在于,在集群系统内设置一个数据同步服务器,所述数据同步服务器获取各个所述集群节点的关键值,对于所述集群系统中的任意一个集群节点,所述数据同步服务器将该集群节点的数据分成两半,并将两半数据分别保存至与该集群节点的关键值相邻的一个集群节点上; 在所述集群系统中有新集群节点加入的情况下,所述方法还包括: 数据同步服务器获取所述新集群节点的关键值,将所述新集群节点的数据分成两半;获取关键值与所述新集群节点的关键值相邻的两个集群节点,将所述新集群节点的两半数据分别保存至该两个集群节点中的一个集群节点,并清除两个集群节点之前保存的其他集群节点的数据。
3.根据权利要求2所述的集群节点匹配方法,其特征在于,在所述集群系统中有集群节点退出的情况下,所述方法还包括: 数据同步服务器获取关键值与退出的所述集群节点关键值相邻的两个集群节点;将该两个集群节点各自的一半数据保存至对方中,并清除两个集群节点中之前保存的退出的所述集群节点的数据。
4.根据权利要求2或3所述的集群节点匹配方法,其特征在于,所述数据同步服务器对各个集群节点的IP和端口进行Hash计算以获取各个集群节点的关键值。
5.根据权利要求1至3任意一项所述的集群节点匹配方法,其特征在于,所述集群通信模块接收所述集群系统中的各个集群节点周期性发送的心跳消息。
6.根据权利要去5所述的集群节点匹配方法,其特征在于,在所述集群通信模块接收到的心跳消息中携带有新IP和新端口时,判断集群系统中有新集群节点加入; 在所述集群通信模块接收到的心跳消息中未携带之前所携带的IP和端口,判断与该IP和端口对应的集群节点退出集群系统。
7.一种集群通信模块,其特征在于,包括: 消息接收模块,用于接收所述集群系统中的各个集群节点发送的心跳消息; 判断模块,用于依据所述心跳消息,判断所述集群系统中是否有新集群节点加入或/和集群节点退出; 请求接收模块,用于接收用户通过所述用户设备发送的集群节点调用请求; 匹配模块,用于匹配与所述集群节点调用请求相对应的集群节点。
8.根据权利要求7所述的集群通信模块,其特征在于,所述消息接收模块具体用于接收所述集群系统中的各个集群节点周期性发送的心跳消息。
9.根据权利要求8所述的集群通信模块,其特征在于,所述判断模块具体用于在所述集群通信模块接收到的心跳消息中携带有新IP和新端口时,判断集群系统中有新集群节点加入;在所述集群通信模块接收到的心跳消息中未携带之前所携带的IP和端口,判断与该IP和端口对应的集群节点退出集群系统。
10.一种用户设备,其特征在于,包括如权利要求7至9任意一项所述的集群通信模块。
11.一种集群系统,其特征在于,包括:如权利要求10所述的用户设备和多个集群节点,其中,所述用户设备直接发送软件服务请求至所述集群节点。
12.根据权利要求11所述的集群系统,其特征在于,所述用户设备通过远程过程调用协议RPC规范直接将软件服务请求发送至所述集群节点。
13.根据权利要求11所述的集群系统,其特征在于,还包括数据同步服务器,所述数据同步服务器用于获取各个所述集群节点的关键值,对于所述集群系统中的任意一个集群节点,所述数据同步服务器将该集群节点的数据分成两半,并将两半数据分别保存至与该集群节点的关键值相邻的一个集群节点上。
14.根据权利要求13所述的集群系统,其特征在于,所述数据同步服务器还用于清除集群节点保存的其他集群节点的数据。
15.根据权利要求13所述集群系统,其特征在于,所述数据同步服务器具体用于对各个集群节点的IP和端口进 行Hash计算以获取各个集群节点的关键值。
全文摘要
本申请提供了一种集群节点匹配方法、集群通信模块、设备及系统。一种集群节点匹配方法,包括接收各个集群节点发送的心跳消息;依据心跳消息,判断是否有新集群节点加入或/和集群节点退出;接收用户通过用户设备发送的集群节点调用请求;匹配相对应的集群节点。在本申请中,依据心跳消息,则可以动态识别集群系统中新集群节点的加入或集群节点的退出。同时集群通信模块可以接收集群节点调用请求,匹配相对应的集群节点,在匹配后,用户设备直接发送软件服务请求至匹配的集群节点。由于为每个用户设备增设了集群通信模块,所以在任意一个集群通信模块故障后,其他用户设备还可以通过自身的集群通信模块与集群节点通信,保证整个集群系统可用。
文档编号H04L12/24GK103248504SQ20121002555
公开日2013年8月14日 申请日期2012年2月6日 优先权日2012年2月6日
发明者李晨, 马向晖 申请人:上海软智信息科技有限公司