CN111538763B - 一种确定集群中主节点的方法、电子设备和存储介质 - Google Patents

一种确定集群中主节点的方法、电子设备和存储介质 Download PDF

Info

Publication number
CN111538763B
CN111538763B CN202010335432.3A CN202010335432A CN111538763B CN 111538763 B CN111538763 B CN 111538763B CN 202010335432 A CN202010335432 A CN 202010335432A CN 111538763 B CN111538763 B CN 111538763B
Authority
CN
China
Prior art keywords
node
master
information
cluster
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010335432.3A
Other languages
English (en)
Other versions
CN111538763A (zh
Inventor
陈利乐
彭显根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Migu Cultural Technology Co Ltd
China Mobile Communications Group Co Ltd
Original Assignee
Migu Cultural Technology Co Ltd
China Mobile Communications Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Migu Cultural Technology Co Ltd, China Mobile Communications Group Co Ltd filed Critical Migu Cultural Technology Co Ltd
Priority to CN202010335432.3A priority Critical patent/CN111538763B/zh
Publication of CN111538763A publication Critical patent/CN111538763A/zh
Application granted granted Critical
Publication of CN111538763B publication Critical patent/CN111538763B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种确定集群中主节点的方法、电子设备和存储介质,集群中的任一目标节点与数据库交互,从根据数据库中集群各节点对应的节点信息确定是否以自身作为主节点,若是,向数据库发送将所述目标节点标记为主节点的第一信息。每次在主节点不存在时,才根据节点信息确定主节点,不会导致多主节点的存在,避免了服务秩序紊乱和资源浪费。同时,通过数据库存储节点信息,主节点的确定过程无需新增专门的硬件设备。

Description

一种确定集群中主节点的方法、电子设备和存储介质
技术领域
本发明涉及计算机技术领域,尤其是涉及一种确定集群中主节点的方法、电子设备和存储介质。
背景技术
随着互联网的发展,用户量越发庞大,普通单机应用已经无法满足高并发的应用,而为了解决高并发,高可用的场景,一般应用都使用集群来对外提供服务。然而集群中通常需要选举出一个master主机,用来执行一些特定的任务。
现有的方法一般都是基于zookeeper这种重量级的第三方或者使用主备机这种传统方式来实现master选举。其中,图1为主备机选举master的选举过程示意图,参见图1,在这种主备机的方式中,主机充当master角色,用来完成各种业务的处理,而备用结点(备机)则定期给当前主机结点发送Ping包,主节点接受到ping包后会向备用结点发送应答ack消息,当备用结点收到应答,就认为主机还活着,让他继续提供服务,否则就认为主机挂掉了,自己将开始行使主结点职责,充当master角色。
然而,对于传统的主备master方式主要会存在如下隐患:当主机和备机的网络出现了问题,备机不能收到主机的ack回复消息时,备机会认为主节点挂掉,然后备机会自动启动自己的master实例。这样就会造成***中有2个master主节点,也就是双master,这样整个服务就乱套了。同时传统的2个机器节点,从节点一般当作备机,也就是不提供服务,只有在主机宕机情况下,才会接管服务,这样就造成了***资源浪费,闲置了一台机器。
对于传统应用来说增加zookeeper集群,相当于增加了一个重型装备,同时还要对zookeeper集群进行维护监控。且基于zookeeper的选举基本上都是依赖抢占和注册最小序号来实现master选举,选举的主机具有随机性,可控性较差。
可见,现有的主节点确定过程要么存在多个主节点的隐患,造成服务秩序紊乱和资源浪费,要么需要增加相应的硬件设备。
发明内容
本发明实施例提供一种确定集群中主节点的方法、电子设备和存储介质,用以解决现有的主节点确定过程要么存在多个主节点的隐患,造成服务秩序紊乱和资源浪费,要么需要增加相应的硬件设备的问题。
针对以上技术问题,第一方面,本发明实施例提供一种确定集群中主节点的方法,包括:
集群中任一目标节点若判断当前不存在主节点,则根据数据库中存储的集群各节点对应的节点信息,确定是否以所述目标节点作为主节点;
若以所述目标节点作为主节点,则向所述数据库发送将所述目标节点标记为主节点的第一信息。
第二方面,本发明实施例提供一种确定集群中主节点的方法,包括:
若接收到将集群中的目标节点标记为主节点的第一信息,则在所述目标节点的节点信息中添加主节点的标记。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以上所述的确定集群中主节点的方法的步骤。
第四方面,本发明实施例提供一种非暂态可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以上任一项所述的确定集群中主节点的方法的步骤。
本发明的实施例提供了一种确定集群中主节点的方法、电子设备和存储介质,集群中的任一目标节点与数据库交互,从根据数据库中集群各节点对应的节点信息确定是否以自身作为主节点,若是,向数据库发送将所述目标节点标记为主节点的第一信息。每次在主节点不存在时,才根据节点信息确定主节点,不会导致多主节点的存在,避免了服务秩序紊乱和资源浪费。同时,通过数据库存储节点信息,主节点的确定过程无需新增专门的硬件设备。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的主备机选举master的选举过程示意图;
图2是本发明另一实施例提供的适用于集群中任一主机的确定集群中主节点的方法的流程示意图;
图3是本发明另一实施例提供的主节点选举过程中插队机制的实现过程示意图;
图4是本发明另一实施例提供的主节点选举的流程示意图;
图5是本发明另一实施例提供的适用于数据库的确定集群中主节点的方法的流程示意图;
图6是本发明另一实施例提供的对应于集群中任一节点的,确定集群中主节点的装置的结构框图;
图7是本发明另一实施例提供的对应于数据库的,确定集群中主节点的装置的结构框图;
图8是本发明另一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供一种确定集群中主节点的方法,由集群的任一主机和数据库配置实现。图2为本实施提供的适用于集群中任一主机的确定集群中主节点的方法的流程示意图,参见图2,该方法包括:
步骤201:集群中任一目标节点若判断当前不存在主节点,则根据数据库中存储的集群各节点对应的节点信息,确定是否以所述目标节点作为主节点。
集群为由多个节点组成的网络,每一节点为主机、服务器或者计算机,本实施例对此不作具体限制。
节点信息包括各节点执行预设指令的时间点,以及节点的基本信息;其中,节点的基本信息包括节点的机器IP、机器名、主键、操作***类型、操作***安装时间、刷新更新时间等。其中,预设指令包括节点实现某一功能执行的指令,例如,预设指令包括将节点对应的节点信息存储到所述数据库(即在数据库注册)、对节点进行初始化、节点启动某一应用程序、节点发送某一消息等,本实施例对此不做具体限制。
数据库为任意的关系型数据库,例如,mysql、sqlserver、oracle等。通过关系型数据库方便数据的读取和存储,只需要将关系型数据库的存储功能应用到本申请的技术方案中即可,不需要额外设置其它硬件设备。
步骤202:若以所述目标节点作为主节点,则向所述数据库发送将所述目标节点标记为主节点的第一信息。
其中,还包括:通过所述主节点执行设定任务,或者对集群中的各节点进行协调。
本实施例提供了一种确定集群中主节点的方法,集群中的任一目标节点与数据库交互,从根据数据库中集群各节点对应的节点信息确定是否以自身作为主节点,若是,向数据库发送将所述目标节点标记为主节点的第一信息。每次在主节点不存在时,才根据节点信息确定主节点,不会导致多主节点的存在,避免了服务秩序紊乱和资源浪费。同时,通过数据库存储节点信息,主节点的确定过程无需新增专门的硬件设备。
进一步地,在上述实施例的基础上,所述根据数据库中存储的集群各节点对应的节点信息,确定是否以所述目标节点作为主节点,包括:
根据所述节点信息确定各节点对应的选举时间点,根据各选举时间点与当前时间点间隔的第一时长确定目标选举时间点;
若所述目标选举时间点对应的节点为所述目标节点,则以所述目标节点作为主节点;
其中,选举时间点为节点执行预设指令的时间点,所述预设指令包括将节点对应的节点信息存储到所述数据库或对节点进行初始化。
需要说明的是,选举时间点是从节点信息中存储的众多的时间点中确定的,用于进行主节点选举的时间点。当对每一节点均确定了选举时间点后,即可根据各节点对应的选举时间点确定出主节点。可以在每次判断当前不存在主节点后,均以节点执行某一相同的预设指令的时间点作为选举时间点(例如,每次均以对节点进行初始化的时间点作为选举时间点),也可以以节点执行不同预设指令的时间点作为选举时间点(例如,首次或前几次判断当前不存在主节点时,以将节点对应的节点信息存储到所述数据库的时间点作为选举之间点,在非首次或者前几次之后判断当前不存在主节点时,以对节点进行初始化的时间点作为选举时间点)。
其中,根据各选举时间点与当前时间点间隔的第一时长确定目标选举时间点,包括:
根据各选举时间点与当前时间点间隔的第一时长,获取最长的第一时长或最短的第一时长对应的选举时间点,作为目标选举时间点;
其中,若最长的第一时长或最短的第一时长存在多个选举时间点,则从多个选举时间点中随机选取一个选举时间点,作为目标选举时间点。
本实施例在判断当前不存在主节点后,根据通过节点信息确定的选举时间点,实现了对主节点的选举。主节点的选举依据各节点的选举时间点唯一确定,避免了多主节点的产生,提高了主节点选举的合理性。
在本实施例中,可以使得每次以节点执行不同的预设指令的时间点作为选举时间点,进一步地,在上述各实施例的基础上,所述根据所述节点信息确定各节点对应的选举时间点,根据各选举时间点与当前时间点间隔的第一时长确定目标选举时间点,包括:
根据预设对应关系,确定与当前判断不存在主节点的次数对应的预设指令,作为目标预设指令;
根据所述目标预设指令和所述节点信息,各节点对应的选举时间点,根据各选举时间点与当前时间点间隔的第一时长确定目标选举时间点。
其中,所述预设对应关系为预先存储的,与当前判断不存在主节点的次数对应的预设指令。预设对应关系可以根据需要设定,例如,设定首次判断当前不存在主节点时,以执行“将节点对应的节点信息存储到所述数据库”这一预设指令的时间点作为选举时间点。非首次判断当前不存在主节点时,以执行“对节点进行初始化”这一预设指令的时间点作为选举时间点。
具体地,首次判断当前不存在主节点时,根据所述节点信息获取各节点将节点信息存储到所述数据库的时间点,作为选举时间点,根据各选举时间点与当前时间点间隔的第一时长确定目标选举时间点;
非首次判断当前不存在主节点时,根据所述节点信息获取各节点对节点进行初始化的时间点,作为选举时间点,根据各选举时间点与当前时间点间隔的第一时长确定目标选举时间点。
本实施例根据当前判断不存在主节点的次数对应的预设指令,从节点信息中确定选举时间点,选举时间点的确定可以通过预设对应关系进行设置,增加了主节点选举的活性。
在一些场景下,需要使得特定的某一节点被选举为主节点,即实现节点的“插队”,为了实现节点的“插队”,进一步地,在上述各实施例的基础上,还包括:
生成时间修改指令,时间修改指令用于对所述数据库中节点对应的选举时间点进行修改;
将所述时间修改指令发送到所述数据库,以使所述数据库根据所述时间修改指令对节点对应的选举时间点进行修改。
其中,目标节点在接收到集群中的节点对应的选举时间点进行修改的修改请求后,生成所述时间修改指令。修改请求可以为用户通过交互界面输入到目标节点的请求,本实施例对此不做具体限制。
其中,目标节点生成的所述时间修改指令用于请求对目标节点对应的选举时间点进行修改,或者用于请求对集群节点中除了目标节点之外的节点对应的选举时间点进行修改。
举例来说,当需要使得目标节点被选为主节点,则可以向数据库发送时间修改指令,对该目标节点对应的选举时间点进行修改,使得根据选举时间点与当前时间点的第一时长能够将该目标节点确定为主节点。例如,当需要选取最短的第一时长对应的节点作为主节点,则可以通过时间修改指令对某一节点的选举时间点进行修改,使得修改之后该目标节点对应的第一时长最短,从而可以将该目标节点选举为主节点。
本实施例通过时间修改指令对集群各节点的选举时间点进行修改,实现了主节点选举过程中,对特定的节点进行“插队”,使得该特定的节点被选举为主节点。“插队”机制增加了主节点选举的可控性。
具体来说,本实施例通过数据库来记录节点信息,同时对选举过程使用选举时间点(选举时间点为执行预设指令的时间点或者根据时间设置指令对节点设置的时间点)以及增加合理有序的“插队”机制(即通过时间修改指令修改选举时间点)来保证master被合理的主机来充当,这样就优化了整个机制,不再是随机或者按序的变化master,同时优先级可以根据各主机进行配置。
图3为本实施例提供的主节点选举过程中“插队”机制的实现过程示意图,参见图3,“插队”机制的实现过程包括如下内容:
(1)获取机器的操作***初始化时间。
(2)判断master主机宕机后,删除原有master的记录信息。
(3)根据server_info表的init_time的值(即操作***初始化时间,也就是对节点进行初始化的时间),选举最新的机器修改注册时间为所有机器最小的注册时间。
(4)***将重新选举主机,判断最小注册时间的机器为master。
进一步地,在上述各实施例的基础上,还包括:
根据所述数据库中各节点周期性上报的心跳时间点,判断是否存在异常节点,其中,异常节点为最近一次上报的心跳时间点与当前时间点间隔的第二时长大于预设时长的节点;
若存在异常节点,则向所述数据库发送将异常节点的节点信息删除的第二信息。
其中,预设时长为1分钟。
其中,各节点每隔30秒上报一次当前时间点,作为心跳时间点。
本实施例通过心跳时间点对各主机是否存在宕机进行识别,能够及时排除宕机节点参与主节点的选举,有效避免了多个主节点的情况出现。
进一步地,在上述各实施例的基础上,还包括:
根据数据库中当前存储的各节点的节点信息,判断是否存在被标记为主节点的节点信息,若否,则集群各节点中当前不存在主节点。
其中,若判断存在被标记为主节点的节点信息,则不需进行主节点的选举。
本实施例通过对主节点的标记实现了对集群中当前是否存在主节点的判断。
图4为本实施例提供的主节点选举的流程示意图,参见图4,该流程具体包括如下内容:
(1)每台主机启动,获取自己的业务IP,将IP写入到数据库表server_master中,register_time为当前软件启动时间,刷新时间和注册时间一样,将is_master字段标识为否。
(2)每台机器在启动时同时检查操作***的初始化安装时间,可以根据***文件的修改时间进行检测,同时获取操作***的类型和机器名称。将这些信息写入到server_info主机信息表中。
(3)每台主机间隔30秒更新数据库的server_master表的refresh_time字段,表示主机的心跳。
(4)在每台主机第一次更新心跳的时候,判断自己是否能成为master;遍历server_master表的所有记录,获取注册时间register_time最早的机器的记录,检查该记录的IP和自己的机器IP是否匹配,如果匹配则将自己标识为master角色,同时更新记录中的is_master字段为true。
(5)获取master权限的机器则执行属于master的任务。
(6)在之后的心跳检测如果有refresh_time减去当前时间大于1分钟还未更新的主机,则删除该条记录,表示该主机已经断线。如果是宕机的是master角色,在心跳失败的时候也会释放自己master的权限,相应master任务就会释放。
(7)在master主机释放后,***需要重新选举master,这个时候,每台主机则会读取server_info的信息,根据init_time(***安装初始化时间)来判断机器的使用时长,如果init_time距离现在的时间最短,则表示该主机最新,那么和自己IP相同的机器就会取更新server_master表的注册时间(根据IP修改),将它更新为所有注册时间中最小的。
(8)在后续的心跳中,所有机器检测注册时间的时候,那么最小的注册时间的机器,即刚才最新的那台机器就会顺利被选举为master主机。
图5为本实施提供的适用于数据库的确定集群中主节点的方法的流程示意图,参见图5,该方法包括:
步骤501:若接收到将集群中的目标节点标记为主节点的第一信息,则在所述目标节点的节点信息中添加主节点的标记。
第一信息为集群中任一节点(例如,目标节点),发送的用于指示将目标节点标记为主节点的信息。
本实施例提供了一种确定集群中主节点的方法,集群中的任一目标节点与数据库交互,从根据数据库中集群各节点对应的节点信息确定是否以自身作为主节点,若是,向数据库发送将所述目标节点标记为主节点的第一信息。每次在主节点不存在时,才根据节点信息确定主节点,不会导致多主节点的存在,避免了服务秩序紊乱和资源浪费。同时,通过数据库存储节点信息,主节点的确定过程无需新增专门的硬件设备。
进一步地,在上述实施例的基础上,还包括:
若接收到时间修改指令,则根据所述时间修改指令对节点对应的选举时间点进行修改。
其中,还包括;
若接收到节点发送的节点信息和/或各节点周期性上报的心跳时间点,则存储接收到的节点信息和/或心跳时间点;
若接收到将异常节点的节点信息删除的第二信息,则将异常节点的节点信息删除。
需要说明的是,在本实施例提供的方法中,数据库中对于集群各节点为了两张列表,一张列表用于存取各节点的节点信息,另一张列表用于存取节点的心跳时间点。在数据库中创建了两个表,其中一个表存取各节点的基本信息和选举时间点,在维护节点信息的列表中,包括了各节点对应的选举时间点,当数据库接收到对某一节点的选举时间点进行修改的时间修改指令,则对该节点对应的选举时间点进行修改。
本实施例提供的确定集群中主节点的方法使用关系型数据库进行主机联网信息的存储,根据注册时间、操作***的安装初始化时间进行master的选举,通过能够对操作***的安装初始化时间进行修改,使得选举中实现插队,增加了选举的可控性。具有的优点如下:相对于传统的主备模式来说,杜绝了双master的隐患。利用数据库来进行注册信息,不必安装zookeeper重量级软件。充分考虑各种情况的master选举,比如按时间顺序选举,调整时间机制进行插队选举。
在上述各实施例提供的方法中,数据库用于存储节点信息和节点发送的心跳时间点,并向节点发送节点需要的信息。这一过程由节点执行了从数据库读取节点信息,选举出主节点,并向数据库发送时间修改指令的操作,数据库不主动参与主节点的选举过程和对选举时间点的主动修改过程。因此,对于这一过程开发者只需要在节点侧开发,直接调用数据库的存取功能即可。然而,实际上对于一些方便开发者进行开发的数据库,也可以通过如下过程实现主节点的选举:
数据库判断当前是否存在标记为主节点的节点,若否,则根据各节点对应的选举时间点确定主节点,将确定的主节点对应的节点标识发送到集群各节点。
还包括:接收到对目标节点对应的选举时间点进行修改的修改请求后,根据所述修改请求,对目标节点对应的选举时间点进行修改。
还包括:接收集群各节点周期性上报的心跳时间点,存储该节点对应的心跳时间点。
还包括:根据各节点对应的心跳时间点判断是否存在异常节点,若是,删除异常节点对应的节点信息。
其中,异常节点为最近一次上报的心跳时间点与当前时间点间隔的第二时长大于预设时长的节点。
图6为本实施例提供的对应于集群中任一节点的,确定集群中主节点的装置的结构框图,参见图6,该确定集群中主节点的装置包括确定模块601和发送模块602,其中,
确定模块601,用于若判断当前不存在主节点,则根据数据库中存储的集群各节点对应的节点信息,确定是否以所述目标节点作为主节点;
发送模块602,用于若以所述目标节点作为主节点,则向所述数据库发送将所述目标节点标记为主节点的第一信息。
本实施例提供的确定集群中主节点的装置适用于上述各实施例提供的对应于集群中任一节点的,确定集群中主节点的方法,在此不再赘述。
本发明的实施例提供了一种确定集群中主节点的装置,集群中的任一目标节点与数据库交互,从根据数据库中集群各节点对应的节点信息确定是否以自身作为主节点,若是,向数据库发送将所述目标节点标记为主节点的第一信息。每次在主节点不存在时,才根据节点信息确定主节点,不会导致多主节点的存在,避免了服务秩序紊乱和资源浪费。同时,通过数据库存储节点信息,主节点的确定过程无需新增专门的硬件设备。
可选地,所述根据数据库中存储的集群各节点对应的节点信息,确定是否以所述目标节点作为主节点,包括:
根据所述节点信息确定各节点对应的选举时间点,根据各选举时间点与当前时间点间隔的第一时长确定目标选举时间点;
若所述目标选举时间点对应的节点为所述目标节点,则以所述目标节点作为主节点;
其中,选举时间点为节点执行预设指令的时间点,所述预设指令包括将节点对应的节点信息存储到所述数据库或对节点进行初始化。
可选地,还包括:
生成时间修改指令,时间修改指令用于对所述数据库中节点对应的选举时间点进行修改;
将所述时间修改指令发送到所述数据库,以使所述数据库根据所述时间修改指令对节点对应的选举时间点进行修改。
可选地,还包括:
根据所述数据库中各节点周期性上报的心跳时间点,判断是否存在异常节点,其中,异常节点为最近一次上报的心跳时间点与当前时间点间隔的第二时长大于预设时长的节点;
若存在异常节点,则向所述数据库发送将异常节点的节点信息删除的第二信息。
可选地,还包括:
根据数据库中当前存储的各节点的节点信息,判断是否存在被标记为主节点的节点信息,若否,则集群各节点中当前不存在主节点。
可选地,所述根据所述节点信息确定各节点对应的选举时间点,根据各选举时间点与当前时间点间隔的第一时长确定目标选举时间点,包括:
根据预设对应关系,确定与当前判断不存在主节点的次数对应的预设指令,作为目标预设指令;
根据所述目标预设指令和所述节点信息,各节点对应的选举时间点,根据各选举时间点与当前时间点间隔的第一时长确定目标选举时间点。
图7为本实施例提供的对应于数据库的,确定集群中主节点的装置的结构框图,参见图7,该确定集群中主节点的装置包括标记模块701,其中,
标记模块701,用于若接收到将集群中的目标节点标记为主节点的第一信息,则在所述目标节点的节点信息中添加主节点的标记。
本实施例提供的确定集群中主节点的装置适用于上述各实施例提供的对应于数据库的,确定集群中主节点的方法,在此不再赘述。
本发明的实施例提供了一种确定集群中主节点的装置,集群中的任一目标节点与数据库交互,从根据数据库中集群各节点对应的节点信息确定是否以自身作为主节点,若是,向数据库发送将所述目标节点标记为主节点的第一信息。每次在主节点不存在时,才根据节点信息确定主节点,不会导致多主节点的存在,避免了服务秩序紊乱和资源浪费。同时,通过数据库存储节点信息,主节点的确定过程无需新增专门的硬件设备。
可选地,还包括:
若接收到时间修改指令,则根据所述时间修改指令对节点对应的选举时间点进行修改。
图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)801、通信接口(Communications Interface)802、存储器(memory)803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。处理器801可以调用存储器803中的逻辑指令,以执行如下方法:集群中任一目标节点若判断当前不存在主节点,则根据数据库中存储的集群各节点对应的节点信息,确定是否以所述目标节点作为主节点;若以所述目标节点作为主节点,则向所述数据库发送将所述目标节点标记为主节点的第一信息,或者若接收到将集群中的目标节点标记为主节点的第一信息,则在所述目标节点的节点信息中添加主节点的标记。
此外,上述的存储器803中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:集群中任一目标节点若判断当前不存在主节点,则根据数据库中存储的集群各节点对应的节点信息,确定是否以所述目标节点作为主节点;若以所述目标节点作为主节点,则向所述数据库发送将所述目标节点标记为主节点的第一信息,或者若接收到将集群中的目标节点标记为主节点的第一信息,则在所述目标节点的节点信息中添加主节点的标记。
另一方面,本发明实施例还提供一种非暂态可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:集群中任一目标节点若判断当前不存在主节点,则根据数据库中存储的集群各节点对应的节点信息,确定是否以所述目标节点作为主节点;若以所述目标节点作为主节点,则向所述数据库发送将所述目标节点标记为主节点的第一信息,或者若接收到将集群中的目标节点标记为主节点的第一信息,则在所述目标节点的节点信息中添加主节点的标记。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种确定集群中主节点的方法,其特征在于,包括:
集群中任一目标节点若判断当前不存在主节点,则根据数据库中存储的集群各节点对应的节点信息,确定是否以所述目标节点作为主节点;数据库用于存储节点信息和节点发送的心跳时间点,并向节点发送节点需要的信息;
若以所述目标节点作为主节点,则向所述数据库发送将所述目标节点标记为主节点的第一信息;
根据所述数据库中各节点周期性上报的心跳时间点,判断是否存在异常节点,其中,异常节点为最近一次上报的心跳时间点与当前时间点间隔的第二时长大于预设时长的节点;
若存在异常节点,则向所述数据库发送将异常节点的节点信息删除的第二信息。
2.根据权利要求1所述的确定集群中主节点的方法,其特征在于,所述根据数据库中存储的集群各节点对应的节点信息,确定是否以所述目标节点作为主节点,包括:
根据所述节点信息确定各节点对应的选举时间点,根据各选举时间点与当前时间点间隔的第一时长确定目标选举时间点;
若所述目标选举时间点对应的节点为所述目标节点,则以所述目标节点作为主节点;
其中,选举时间点为节点执行预设指令的时间点,所述预设指令包括将节点对应的节点信息存储到所述数据库或对节点进行初始化。
3.根据权利要求2所述的确定集群中主节点的方法,其特征在于,还包括:
生成时间修改指令,时间修改指令用于对所述数据库中节点对应的选举时间点进行修改;
将所述时间修改指令发送到所述数据库,以使所述数据库根据所述时间修改指令对节点对应的选举时间点进行修改。
4.根据权利要求1所述的确定集群中主节点的方法,其特征在于,还包括:
根据数据库中当前存储的各节点的节点信息,判断是否存在被标记为主节点的节点信息,若否,则集群各节点中当前不存在主节点。
5.根据权利要求2所述的确定集群中主节点的方法,其特征在于,所述根据所述节点信息确定各节点对应的选举时间点,根据各选举时间点与当前时间点间隔的第一时长确定目标选举时间点,包括:
根据预设对应关系,确定与当前判断不存在主节点的次数对应的预设指令,作为目标预设指令;
根据所述目标预设指令和所述节点信息,各节点对应的选举时间点,根据各选举时间点与当前时间点间隔的第一时长确定目标选举时间点。
6.一种确定集群中主节点的方法,其特征在于,包括:
数据库用于存储节点信息和节点发送的心跳时间点,并向节点发送节点需要的信息;
若接收到将集群中的目标节点标记为主节点的第一信息,则在所述目标节点的节点信息中添加主节点的标记;
若接收到节点发送的节点信息和/或各节点周期性上报的心跳时间点,则存储接收到的节点信息和/或心跳时间点;
若接收到将异常节点的节点信息删除的第二信息,则将异常节点的节点信息删除。
7.根据权利要求6所述的确定集群中主节点的方法,其特征在于,还包括:
若接收到时间修改指令,则根据所述时间修改指令对节点对应的选举时间点进行修改。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述的确定集群中主节点的方法的步骤。
9.一种非暂态可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述的确定集群中主节点的方法的步骤。
CN202010335432.3A 2020-04-24 2020-04-24 一种确定集群中主节点的方法、电子设备和存储介质 Active CN111538763B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010335432.3A CN111538763B (zh) 2020-04-24 2020-04-24 一种确定集群中主节点的方法、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010335432.3A CN111538763B (zh) 2020-04-24 2020-04-24 一种确定集群中主节点的方法、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN111538763A CN111538763A (zh) 2020-08-14
CN111538763B true CN111538763B (zh) 2023-08-15

Family

ID=71967566

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010335432.3A Active CN111538763B (zh) 2020-04-24 2020-04-24 一种确定集群中主节点的方法、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN111538763B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112003755B (zh) * 2020-08-25 2022-12-23 北京浪潮数据技术有限公司 一种集群主节点的选取方法、装置、设备及介质
CN112035326A (zh) * 2020-09-03 2020-12-04 中国银行股份有限公司 基于集群节点互检的异常节点任务处理方法及装置
CN112286738B (zh) * 2020-11-19 2024-01-26 政采云有限公司 一种数据库访问的方法、***、设备及可读存储介质
CN113220464A (zh) * 2021-05-31 2021-08-06 平安科技(深圳)有限公司 分布式应用方法、装置、计算机设备、存储介质
CN113922988B (zh) * 2021-09-16 2023-07-18 苏州浪潮智能科技有限公司 一种基于网络的主机安全策略检测方法、***
CN114422521B (zh) * 2022-01-12 2024-04-05 北京京东振世信息技术有限公司 确定主节点的方法、装置、电子设备及存储介质
CN115499447A (zh) * 2022-09-15 2022-12-20 北京天融信网络安全技术有限公司 一种集群主节点确认方法、装置、电子设备及存储介质
CN115329151B (zh) * 2022-10-17 2023-03-14 北方健康医疗大数据科技有限公司 图数据库的优化方法、装置、电子设备及存储介质
CN115811520B (zh) * 2023-02-08 2023-04-07 天翼云科技有限公司 分布式***中主节点的选举方法、装置和电子设备

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199169B1 (en) * 1998-03-31 2001-03-06 Compaq Computer Corporation System and method for synchronizing time across a computer cluster
CN101754271A (zh) * 2008-12-09 2010-06-23 华为终端有限公司 主控节点的协商方法及装置
CN102904752A (zh) * 2012-09-25 2013-01-30 新浪网技术(中国)有限公司 一种节点选举方法、节点设备及***
CN104679796A (zh) * 2013-12-03 2015-06-03 方正信息产业控股有限公司 一种选举方法、装置及数据库镜像集群节点
CN104933132A (zh) * 2015-06-12 2015-09-23 广州巨杉软件开发有限公司 基于操作序列号的分布式数据库有权重选举方法
CN106911524A (zh) * 2017-04-27 2017-06-30 紫光华山信息技术有限公司 一种ha实现方法及装置
CN107257332A (zh) * 2011-12-13 2017-10-17 迈克菲公司 大型防火墙集群中的定时管理
CN107800737A (zh) * 2016-09-05 2018-03-13 ***通信有限公司研究院 一种服务器集群中主节点的确定方法、装置及服务器集群
CN108780346A (zh) * 2015-11-16 2018-11-09 东芝存储器株式会社 主机设备和扩展装置
CN109379238A (zh) * 2018-12-14 2019-02-22 郑州云海信息技术有限公司 一种分布式集群的ctdb主节点选举方法、装置及***
CN109951331A (zh) * 2019-03-15 2019-06-28 北京百度网讯科技有限公司 用于发送信息的方法、装置和计算集群
CN109995835A (zh) * 2017-12-29 2019-07-09 浙江宇视科技有限公司 主节点选举方法、装置和分布式存储***
CN110062027A (zh) * 2019-03-18 2019-07-26 中科恒运股份有限公司 负载均衡方法、中心服务器及终端设备
CN110300023A (zh) * 2019-06-28 2019-10-01 上海智臻智能网络科技股份有限公司 一种状态切换方法、装置、节点、节点组及存储介质
CN110431533A (zh) * 2016-12-30 2019-11-08 华为技术有限公司 故障恢复的方法、设备和***

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199169B1 (en) * 1998-03-31 2001-03-06 Compaq Computer Corporation System and method for synchronizing time across a computer cluster
CN101754271A (zh) * 2008-12-09 2010-06-23 华为终端有限公司 主控节点的协商方法及装置
CN107257332A (zh) * 2011-12-13 2017-10-17 迈克菲公司 大型防火墙集群中的定时管理
CN102904752A (zh) * 2012-09-25 2013-01-30 新浪网技术(中国)有限公司 一种节点选举方法、节点设备及***
CN104679796A (zh) * 2013-12-03 2015-06-03 方正信息产业控股有限公司 一种选举方法、装置及数据库镜像集群节点
CN104933132A (zh) * 2015-06-12 2015-09-23 广州巨杉软件开发有限公司 基于操作序列号的分布式数据库有权重选举方法
CN108780346A (zh) * 2015-11-16 2018-11-09 东芝存储器株式会社 主机设备和扩展装置
CN107800737A (zh) * 2016-09-05 2018-03-13 ***通信有限公司研究院 一种服务器集群中主节点的确定方法、装置及服务器集群
CN110431533A (zh) * 2016-12-30 2019-11-08 华为技术有限公司 故障恢复的方法、设备和***
CN106911524A (zh) * 2017-04-27 2017-06-30 紫光华山信息技术有限公司 一种ha实现方法及装置
CN109995835A (zh) * 2017-12-29 2019-07-09 浙江宇视科技有限公司 主节点选举方法、装置和分布式存储***
CN109379238A (zh) * 2018-12-14 2019-02-22 郑州云海信息技术有限公司 一种分布式集群的ctdb主节点选举方法、装置及***
CN109951331A (zh) * 2019-03-15 2019-06-28 北京百度网讯科技有限公司 用于发送信息的方法、装置和计算集群
CN110062027A (zh) * 2019-03-18 2019-07-26 中科恒运股份有限公司 负载均衡方法、中心服务器及终端设备
CN110300023A (zh) * 2019-06-28 2019-10-01 上海智臻智能网络科技股份有限公司 一种状态切换方法、装置、节点、节点组及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Effect of network topology on the controllability of voter model dynamics using biased nodes;Aravinda R. Srinivasan;《2014 American Control Conference》;全文 *

Also Published As

Publication number Publication date
CN111538763A (zh) 2020-08-14

Similar Documents

Publication Publication Date Title
CN111538763B (zh) 一种确定集群中主节点的方法、电子设备和存储介质
US10657119B1 (en) Fleet node management system
US10491632B1 (en) Methods for reducing compliance violations in mobile application management environments and devices thereof
US9367261B2 (en) Computer system, data management method and data management program
US20050108385A1 (en) Method and system for managing a discovery-related process in a network
CN106506490B (zh) 一种分布式计算控制方法以及分布式计算***
CN105162879B (zh) 实现多机房数据一致性的方法、装置及***
RU2015106840A (ru) Способ (варианты) и система (варианты) предотвращения несанкционированного доступа, содержащая множество серверных узлов
JP2015535970A5 (zh)
JP3554471B2 (ja) 分散コンピュータ環境におけるグループ・イベント管理方法及び装置
JPH10224395A (ja) 電子会議システム
US9449041B2 (en) Database system lock operation method and device
CN104301990B (zh) 一种数据同步的方法及装置
US11397632B2 (en) Safely recovering workloads within a finite timeframe from unhealthy cluster nodes
JP2012146083A (ja) セッション管理システム、セッション管理装置、サーバ装置およびセッション管理方法
US11687381B2 (en) Multi-phase distributed task coordination
CN110233774B (zh) 一种Socks代理服务器的探测方法、分布式探测方法和***
Billiau et al. SBDO: A new robust approach to dynamic distributed constraint optimisation
CN103023704A (zh) 虚拟网络服务设备接入方法及***
KR102567900B1 (ko) 클라우드 저하 모드에서 지속적인 디바이스 동작 안정성을 보장하기 위한 방법 및 장치
US10185735B2 (en) Distributed database system and a non-transitory computer readable medium
CN111092956A (zh) 资源同步方法、装置、存储介质及设备
CN102752144A (zh) 一种软重启不中断业务升级过程中拓扑变化的处理方法及装置
Vasconcelos et al. Dynamic and coordinated software reconfiguration in distributed data stream systems
CN112965970A (zh) 一种基于哈希算法的异常流量并行检测方法及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant