发明内容
有鉴于此,本发明提供一种基于ZooKeeper技术的业务节点集群方法及系统,以解决现有技术的业务节点集群方法,所带来的业务中断时间较长,以及备用节点故障时,业务中断的问题,技术方案如下:
一种基于ZooKeeper技术的业务节点集群方法,利用ZooKeeper服务器实现业务节点集群,该方法包括:
获取用户的业务执行请求;
从所述请求中读取所述业务的业务信息,并将所述业务信息在所述ZooKeeper服务器的所有业务节点进行备份;
从所述所有业务节点中选举一个最优节点,作为主用业务节点为用户提供业务服务,其它业务节点作为备用业务节点,其中,所述备用业务节点的业务数据随主用业务节点业务数据的更新而更新;
启动一个监听器监听所述主用业务节点的运行状态;
当所述主用业务节点的运行状态为故障时,从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务。
优选的,上述方法中,还包括:
启动一个监听器监听所述当前业务节点的运行状态;
当所述当前业务节点的运行状态为故障时,从其它备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供服务。
优选的,上述方法中,从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务之后,还包括:
启动一个监听器继续监听所述主用业务节点的运行状态;
当所述主用业务节点的运行状态恢复正常时,将所述业务切换至所述主用业务节点。
优选的,上述方法中,所述ZooKeeper服务器为集群服务器。
优选的,上述方法中,所述从所有业务节点中选举一个最优节点作为主用业务节点的依据,以及所述从备用业务节点中选举出一个最优节点作为当前业务节点的依据为:所述节点的业务负荷最小,和/或所述节点的网络延迟最小。
一种基于ZooKeeper技术的业务节点集群系统,利用ZooKeeper服务器实现业务节点集群,该系统包括:
业务请求获取单元,用于获取用户的业务执行请求;
业务信息备份单元,用于从所述请求中读取所述业务的业务信息,并将所述业务信息在所述ZooKeeper服务器的所有业务节点进行备份;
主用业务节点选举单元,用于从所述所有业务节点中选举一个最优节点,作为主用业务节点为用户提供业务服务,其它业务节点作为备用业务节点,其中,所述备用业务节点的业务数据随主用业务节点业务数据的更新而更新;
第一监听单元,用于启动一个监听器监听所述主用业务节点的运行状态;
第一切换单元,用于当所述主用业务节点的运行状态为故障时,从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务。
优选的,上述系统中,还包括:
第二监听单元,用于启动一个监听器监听所述当前业务节点的运行状态;
第二切换单元,用于当所述当前业务节点的运行状态为故障时,从其它备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供服务。
优选的,上述系统中,还包括:
第三监听单元,用于在所述第一切换单元从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务之后,启动一个监听器继续监听所述主用业务节点的运行状态;
第三切换单元,用于当所述主用业务节点的运行状态恢复正常时,将所述业务切换至所述主用业务节点。
通过以上技术方案可知,本发明利用利用ZooKeeper服务器实现业务节点集群,通过业务信息在各业务节点的备份,主用业务点的选举,对主用业务点的的监听,备用业务节点业务数据随主用业务节点业务数据的更新,以及主用业务节点故障时,当前业务节点的选举,实现了业务节点的高可靠性及高性能的集群;主用节点故障时,由于备用节点中已经存在主用业务节点的业务信息,因此不用重新下载,业务也不会发生中断;另外,本发明定义的备用节点是一个集群节点,主用节点故障时,是从该集群节点中选举出最优节点进行业务切换,从而避免了现有技术由于指定备用业务节点可能造成的业务终端及业务性能降低的问题。
具体实施方式
首先对本发明实施例提供的基于ZooKeeper技术的业务节点集群方法进行说明。
本发明实施例提供的基于ZooKeeper技术的业务节点集群方法,利用ZooKeeper服务器实现业务节点集群,该方法包括:
获取用户的业务执行请求;
从所述请求中读取所述业务的业务信息,并将所述业务信息在所述ZooKeeper服务器的所有业务节点进行备份;
从所述所有业务节点中选举一个最优节点,作为主用业务节点为用户提供业务服务,其它业务节点作为备用业务节点,其中,所述备用业务节点的业务数据随主用业务节点业务数据的更新而更新;
启动一个监听器监听所述主用业务节点的运行状态;
当所述主用业务节点的运行状态为故障时,从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务。
通过以上技术方案可知,本发明利用ZooKeeper服务器实现业务节点集群,通过业务信息在各业务节点的备份,主用业务点的选举,对主用业务点的的监听,备用业务节点业务数据随主用业务节点业务数据的更新,以及主用业务节点故障时,当前业务节点的选举,实现了业务节点的高可靠性及高性能的集群;主用节点故障时,由于备用节点中已经存在主用业务节点的业务信息,因此不用重新下载,业务也不会发生中断;另外,本发明定义的备用节点是一个集群节点,主用节点故障时,是从该集群节点中选举出最优节点进行业务切换,从而避免了现有技术由于指定备用业务节点可能造成的业务终止及业务性能降低的问题。
下面将结合本发明中的附图,对本发明的技术方案进行清楚、完整地描述。
在本发明的一个实施例中,参见图1所示,本发明实施例提供的基于ZooKeeper技术的业务节点集群方法,可以包括以下步骤:
S101,获取用户的业务执行请求。
本发明实施例利用ZooKeeper服务器实现业务节点集群,在部署并启动ZooKeeper服务器后,首先获取用户的业务执行请求。
其中,所述ZooKeeper服务器可以部署为单独的服务器,也可以部署为集群服务器。此外,当ZooKeeper服务集群与执行业务的分布式系统,部署在相同的机器上时,由于减少了网络连接及传输的消耗,可以使整个系统的性能得到提升。
S102,从所述请求中读取所述业务的业务信息,并将所述业务信息在所述ZooKeeper服务器的所有业务节点进行备份。
获取用户的业务执行请求后,从所述请求中读取所述业务的业务信息,并将所述业务信息在ZooKeeper服务器集成的所有业务节点进行备份,以便后续的业务处理。
S103,从所述所有业务节点中选举一个最优节点,作为主用业务节点为用户提供业务服务,其它业务节点作为备用业务节点,其中,所述备用业务节点的业务数据随主用业务节点业务数据的更新而更新。
业务信息在ZooKeeper服务器集成的所有业务节点进行备份后,从所述所有业务节点中选举一个最优节点,作为主用业务节点为用户提供业务服务,其它业务节点作为备用业务节点。
其中,从所有业务节点中选举一个最优节点作为主用业务节点的依据可以为:所述节点的业务负荷最小,和/或所述节点的网络延迟最小。
此外,所述备用业务节点的业务数据随主用业务节点业务数据的更新而更新。更新时,主用业务节点接到业务信息更新后,通过广播向备用业务节点传递业务更新信息,更新成功后,备用业务节点向主用业务节点发送响应信息。
另外,本发明定义的备用节点是一组集群节点,主用节点故障时,是从该集群节点中选举出最优节点进行业务切换,从而避免了现有技术由于指定备用业务节点可能造成的业务终止及业务性能降低的问题。
S104,启动一个监听器监听所述主用业务节点的运行状态。
选举出主用业务节点为用户提供服务后,业务执行过程中,启动一个监听器监听所述主用业务节点的运行状态。
S105,当所述主用业务节点的运行状态为故障时,从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务。
当监听器监听到的主用业务节点的运行状态为故障时,从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务。由于备用节点中已经存在主用业务节点的业务信息,因此不用重新下载,业务也不会发生中断。
其中,所述从备用业务节点中选举出一个最优节点作为当前业务节点的依据可以为:所述节点的业务负荷最小,和/或所述节点的网络延迟最小。
在本发明的一个实施例中,参见图2所示,本发明实施例提供的基于ZooKeeper技术的业务节点集群方法,可以包括以下步骤:
S201,获取用户的业务执行请求。
S202,从所述请求中读取所述业务的业务信息,并将所述业务信息在所述ZooKeeper服务器的所有业务节点进行备份。
S203,从所述所有业务节点中选举一个最优节点,作为主用业务节点为用户提供业务服务,其它业务节点作为备用业务节点,其中,所述备用业务节点的业务数据随主用业务节点业务数据的更新而更新。
S204,启动一个监听器监听所述主用业务节点的运行状态。
S205,当所述主用业务节点的运行状态为故障时,从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务。
S206,启动一个监听器监听所述当前业务节点的运行状态。
S207,当所述当前业务节点的运行状态为故障时,从其它备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供服务。
本实施例中,S201-S205与上一实施例中的S101-S105一一对应,因此,具体实施方式参照上一实施例即可,故此不再赘述。
相比上一实施例,本实施例中增加了S206和S207,即增加了对主备切换后的业务节点即当前业务节点的监听,并在当前业务节点故障时,重新进行当前业务节点的选举,从而进一步增强了业务节点的可靠性,最大限度的降低了由于业务节点故障可能带来的业务终止的可能性。
其中,所述从其它备用业务节点中选举出一个最优节点作为当前业务节点的依据为:所述节点的业务负荷最小,和/或所述节点的网络延迟最小。
在本发明的一个实施例中,参见图3所示,本发明实施例提供的基于ZooKeeper技术的业务节点集群方法,可以包括以下步骤:
S301,获取用户的业务执行请求。
S302,从所述请求中读取所述业务的业务信息,并将所述业务信息在所述ZooKeeper服务器的所有业务节点进行备份。
S303,从所述所有业务节点中选举一个最优节点,作为主用业务节点为用户提供业务服务,其它业务节点作为备用业务节点,其中,所述备用业务节点的业务数据随主用业务节点业务数据的更新而更新。
S304,启动一个监听器监听所述主用业务节点的运行状态。
S305,当所述主用业务节点的运行状态为故障时,从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务。
S306,启动一个监听器继续监听所述主用业务节点的运行状态。
S307,当所述主用业务节点的运行状态恢复正常时,将所述业务切换至所述主用业务节点。
本实施例中,S301-S305与图1所示的实施例中的S101-S105一一对应,因此,具体实施方式参照图1所示的实施例即可,故此不再赘述。
相比与图1所示的实施例,本实施例增加了S306和S307,即增加了在业务节点切换后,对主用业务节点的继续监控,并在主用业务节点故障恢复时,将业务切换回主用业务节点。因为在最初的主用业务节点选择时,除了考虑各业务节点的业务负荷和网络延迟外,还考虑到了相似业务的统筹规划,业务节点的布局等因素,因此,最初选择的主用业务节点可能是最符合上述要求的节点,因此在主用业务节点故障恢复时,可以选择将业务切换回主用业务节点,以期达到对业务规划和节点布局影响最小的效果,从而节省了因为需要变换业务规划和节点布局带来的人力和资源的成本。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
相应于上面的方法实施例,本发明还公开了基于ZooKeeper技术的业务集群系统,参见图4所示,在本发明的一个实施例中,本发明公开的基于ZooKeeper技术的业务集群系统,可以包括:
业务请求获取单元401,用于获取用户的业务执行请求。
业务信息备份单元402,用于从所述请求中读取所述业务的业务信息,并将所述业务信息在所述ZooKeeper服务器的所有业务节点进行备份。
主用业务节点选举单元403,用于从所述所有业务节点中选举一个最优节点,作为主用业务节点为用户提供业务服务,其它业务节点作为备用业务节点,其中,所述备用业务节点的业务数据随主用业务节点业务数据的更新而更新。
第一监听单元404,用于启动一个监听器监听所述主用业务节点的运行状态。
第一切换单元405,用于当所述主用业务节点的运行状态为故障时,从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务。
在本发明的一个实施例中,参见图5所示,本发明实施例提供的基于ZooKeeper技术的业务集群系统,可以包括:
业务请求获取单元501,用于获取用户的业务执行请求。
业务信息备份单元502,用于从所述请求中读取所述业务的业务信息,并将所述业务信息在所述ZooKeeper服务器的所有业务节点进行备份。
主用业务节点选举单元503,用于从所述所有业务节点中选举一个最优节点,作为主用业务节点为用户提供业务服务,其它业务节点作为备用业务节点,其中,所述备用业务节点的业务数据随主用业务节点业务数据的更新而更新。
第一监听单元504,用于启动一个监听器监听所述主用业务节点的运行状态。
第一切换单元505,用于当所述主用业务节点的运行状态为故障时,从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务。
第二监听单元506,用于启动一个监听器监听所述当前业务节点的运行状态;
第二切换单元507,用于当所述当前业务节点的运行状态为故障时,从其它备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供服务。
在本发明的一个实施例中,参见图6所示,本发明实施例提供的基于ZooKeeper技术的业务集群系统,可以包括:
业务请求获取单元601,用于获取用户的业务执行请求。
业务信息备份单元602,用于从所述请求中读取所述业务的业务信息,并将所述业务信息在所述ZooKeeper服务器的所有业务节点进行备份。
主用业务节点选举单元603,用于从所述所有业务节点中选举一个最优节点,作为主用业务节点为用户提供业务服务,其它业务节点作为备用业务节点,其中,所述备用业务节点的业务数据随主用业务节点业务数据的更新而更新。
第一监听单元604,用于启动一个监听器监听所述主用业务节点的运行状态。
第一切换单元605,用于当所述主用业务节点的运行状态为故障时,从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务。
第三监听单元606,用于在所述第一切换单元605从所述备用业务节点中选举出一个最优节点作为当前业务节点,为用户提供业务服务之后,启动一个监听器继续监听所述主用业务节点的运行状态;
第三切换单元607,用于当所述主用业务节点的运行状态恢复正常时,将所述业务切换至所述主用业务节点。
对于系统实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
另外,所描述系统和方法以及不同实施例的示意图,在不超出本申请的范围内,可以与其它系统,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。