CN115499447A - 一种集群主节点确认方法、装置、电子设备及存储介质 - Google Patents
一种集群主节点确认方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115499447A CN115499447A CN202211125011.3A CN202211125011A CN115499447A CN 115499447 A CN115499447 A CN 115499447A CN 202211125011 A CN202211125011 A CN 202211125011A CN 115499447 A CN115499447 A CN 115499447A
- Authority
- CN
- China
- Prior art keywords
- node
- priority score
- priority
- cluster
- list
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000012790 confirmation Methods 0.000 title claims abstract description 52
- 238000004891 communication Methods 0.000 claims abstract description 11
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 27
- 238000010586 diagram Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种集群主节点确认方法、装置、电子设备及存储介质,该方法包括:在确认集群网络中的主节点出现故障之后,根据维护的优先分数列表判断节点自身的优先分数是否是从节点中最高,优先分数表征在集群网络中的通信能力和计算能力;若是,则向集群网络发送主节点确认信息,并将节点自身在优先分数列表中的角色状态修改为主节点。通过根据维护的优先分数列表判断节点自身的优先分数是否最高,如果节点自身的优先分数最高,就立即将节点自身切换为主节点,即向所述集群网络广播主节点确认信息,从而避免了服务器集群等待选举过程中暂停服务的情况,有效地提高了服务器集群的可靠性。
Description
技术领域
本申请涉及服务器集群、集群选举和网络通信的技术领域,具体而言,涉及一种集群主节点确认方法、装置、电子设备及存储介质。
背景技术
目前,服务器集群中选举主节点过程是,通过集群中的每个节点在接收到候选者节点发起的选举请求时,该节点会对比自己和候选者节点之间的标识,当自己的标识大于候选者节点标识时,就会向候选者节点发送选票,当候选者节点的选票数量超过集群中节点数量的一半时候,候选者节点就会向所有集群节点发送主节点确认信息,从而完成主节点的选举过程。
在具体的实践过程中发现,在集群完成主节点的选举过程中,整个集群的服务是暂停的,需要等待选举过程完成确认主节点之后,再通过主节点处理整个集群的服务,因此,目前的服务器集群等待选举过程中暂停服务导致该服务器集群的可靠性较差。
发明内容
本申请实施例的目的在于提供一种集群主节点确认方法、装置、电子设备及存储介质,用于改善选举过程中暂停服务导致该服务器集群的可靠性较差的问题。
本申请实施例提供了一种集群主节点确认方法,应用于集群网络中的节点,包括:在确认集群网络中的主节点出现故障之后,根据维护的优先分数列表判断节点自身的优先分数是否是从节点中最高,优先分数列表用于存储集群网络中的节点的优先分数,优先分数表征在集群网络中的通信能力和计算能力;若是,则向集群网络发送主节点确认信息,并将节点自身在优先分数列表中的角色状态修改为主节点。在上述方案的实现过程中,通过根据维护的优先分数列表判断节点自身的优先分数是否最高,如果节点自身的优先分数最高,就立即将节点自身切换为主节点,即向集群网络广播主节点确认信息,从而避免了服务器集群等待选举过程中暂停服务的情况,有效地提高了服务器集群的可靠性。
可选地,在本申请实施例中,在根据维护的优先分数列表判断节点自身的优先分数是否是从节点中最高之后,还包括:若节点自身的优先分数不是最高,则在接收到集群网络中的第一节点发送的主节点确认信息之后,在优先分数列表中将第一节点的角色状态修改为主节点。在上述方案的实现过程中,通过在节点自身的优先分数不是从节点中最高的情况下,若接收到集群网络中的第一节点发送的主节点确认信息,就承认其它的第一节点是主节点,即在优先分数列表中将第一节点的角色状态修改为主节点,从而缩短了集群网络中的主节点故障时长,避免了服务器集群等待选举过程中暂停服务的情况,有效地提高了服务器集群的可靠性。
可选地,在本申请实施例中,确认集群网络中的主节点出现故障,包括:若在预设时长内没有接收到主节点发送的心跳信息,则确认集群网络中的主节点出现故障。在上述方案的实现过程中,通过在预设时长内没有接收到主节点发送的心跳信息的情况下,就认集群网络中的主节点出现故障,从而缩短了集群网络中的主节点故障的确认时长。
可选地,在本申请实施例中,在根据维护的优先分数列表判断节点自身的优先分数是否是从节点中最高之前,还包括:判断是否在预设时长内接收到从节点发送的心跳信息;若是,则根据心跳信息更新优先分数列表中的优先分数。
可选地,在本申请实施例中,根据心跳信息更新优先分数列表中的优先分数,包括:判断是否从心跳信息中解析出优先分数;若是,则使用解析出的优先分数更新从节点在优先分数列表中的优先分数。在上述方案的实现过程中,通过在预设时长内接收到从节点发送的心跳信息后,就从心跳信息中解析出优先分数,并将优先分数更新至优先分数列表中,从而为主节点的确定提供了数据基础,从而提高了集群网络中的出现故障的转移速度。
可选地,在本申请实施例中,在判断是否从心跳信息中解析出优先分数之后,还包括:若没有从心跳信息中解析出优先分数,则使用当前时刻对应的时间戳更新从节点在优先分数列表中的时间戳。
可选地,在本申请实施例中,在判断是否在预设时长内接收到从节点发送的心跳信息之后,还包括:若在预设时长内没有接收到从节点发送的心跳信息,则从优先分数列表中删除从节点的优先分数。在上述方案的实现过程中,通过在预设时长内没有接收到从节点发送的心跳信息的情况下,就从优先分数列表中删除从节点的优先分数,从而减小了故障节点的优先分数对新主节点确认的影响。由于从优先分数列表中删除从节点的优先分数,所以在优先分数列表中的需要对比的数据量减小,缩短了查询优先分数列表的时长,因此,能够提高集群网络中的出现故障的转移速度。
可选地,在本申请实施例中,在根据维护的优先分数列表判断节点自身的优先分数是否是从节点中最高之前,还包括:获取节点自身的负载数据;对节点自身的负载数据进行加权计算,获得节点自身的优先分数。在上述方案的实现过程中,通过对节点自身的负载数据进行加权计算来获得优先分数,从而避免了主节点的负载过高导致集群网络再次无法运行的情况,有效地保证了服务器集群的高可用性。
可选地,在本申请实施例中,还包括:若节点自身的硬件设备从运行状态改变为故障状态,则将节点自身的优先分数减去硬件设备对应的优先分数;若节点自身的硬件设备从故障状态恢复成运行状态,则将节点自身的优先分数增加硬件设备对应的优先分数。在上述方案的实现过程中,通过在节点自身的硬件设备发生状态变化时,就实时地增加或减少该节点自身的优先分数,从而保证了优先分数的实时性,避免了无法实时地更新优先分数带来无法确定主节点的问题,有效地保证了该服务器集群的高可用性。
本申请实施例还提供了一种集群主节点确认装置,应用于集群网络中的节点,包括:优先分数判断模块,用于在确认集群网络中的主节点出现故障之后,根据维护的优先分数列表判断节点自身的优先分数是否是从节点中最高,优先分数列表用于存储集群网络中的节点的优先分数,优先分数表征在集群网络中的通信能力和计算能力;主要节点确认模块,用于若节点自身的优先分数是从节点中最高,则向集群网络发送主节点确认信息,并将节点自身在优先分数列表中的角色状态修改为主节点。
可选地,在本申请实施例中,集群主节点确认装置,还包括:主要节点承认模块,用于若节点自身的优先分数不是最高,则在接收到集群网络中的第一节点发送的主节点确认信息之后,在优先分数列表中将第一节点的角色状态修改为主节点。
可选地,在本申请实施例中,优先分数判断模块,包括:主节点故障确认子模块,用于若在预设时长内没有接收到主节点发送的心跳信息,则确认集群网络中的主节点出现故障。
可选地,在本申请实施例中,集群主节点确认装置,还包括:心跳接收判断模块,用于判断是否在预设时长内接收到从节点发送的心跳信息;优先分数更新模块,用于若在预设时长内接收到从节点发送的心跳信息,则根据心跳信息更新优先分数列表中的优先分数。
可选地,在本申请实施例中,优先分数更新模块,包括:优先分数判断子模块,用于判断是否从心跳信息中解析出优先分数;优先分数更新子模块,用于若从心跳信息中解析出优先分数,则使用解析出的优先分数更新至优先分数列表中。
可选地,在本申请实施例中,优先分数更新模块,还包括:时间戳更新子模块,用于若没有从心跳信息中解析出优先分数,则使用当前时刻对应的时间戳更新从节点在优先分数列表中的时间戳。
可选地,在本申请实施例中,集群主节点确认装置,还包括:优先分数删除模块,用于若在预设时长内没有接收到从节点发送的心跳信息,则从优先分数列表中删除从节点的优先分数。
可选地,在本申请实施例中,集群主节点确认装置,还包括:负载数据获取模块,用于获取节点自身的负载数据;优先分数获得模块,用于对节点自身的负载数据进行加权计算,获得节点自身的优先分数。
可选地,在本申请实施例中,集群主节点确认装置,还包括:减去优先分数模块,用于若节点自身的硬件设备从运行状态改变为故障状态,则将节点自身的优先分数减去硬件设备对应的优先分数;增加优先分数模块,用于若节点自身的硬件设备从故障状态恢复成运行状态,则将节点自身的优先分数增加硬件设备对应的优先分数。
本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。
本申请实施例的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请实施例中的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出的本申请实施例提供的集群主节点确认方法的流程示意图;
图2示出的本申请实施例提供的集群网络中的电子设备示意图;
图3示出的本申请实施例提供的优先分数列表的示意图;
图4示出的本申请实施例提供的集群主节点确认装置的结构示意图;
图5示出的本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请实施例中的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请实施例的详细描述并非旨在限制要求保护的本申请实施例的范围,而是仅仅表示本申请实施例中的选定实施例。基于本申请实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
可以理解的是,本申请实施例中的“第一”、“第二”用于区别类似的对象。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在介绍本申请实施例提供的集群主节点确认方法之前,先介绍本申请实施例中所涉及的一些概念:
集群网络,是指计算机集群的内部设备之间相互通信的网络设备以及连接的网络,这里的集群网络可以是处于广域网(例如互联网)或局域网的网络;这里的集群网络中运行有至少一个电子设备,这里的电子设备包括:终端设备、服务器和网络设备。
需要说明的是,本申请实施例提供的集群主节点确认方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者服务器,设备终端例如:智能手机、个人电脑、平板电脑、个人数字助理或者移动上网设备等。服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和UNIX服务器。
下面介绍该集群主节点确认方法适用的应用场景,这里的应用场景包括但不限于:使用该集群主节点确认方法代替传统的集群主节点选举过程,如果主节点出现故障,且该节点自身的优先分数是从节点中最高,就立即将节点自身切换为主节点,从而避免了服务器集群等待选举过程导致集群暂停服务的情况,使得服务器集群无需进行选举过程,直接利用事先维护的优先分数列表即可确定集群主节点,极大地缩短了集群服务不可用的时长,有效地保证了服务器集群的高可靠性和高可用性。
请参见图1示出的本申请实施例提供的集群主节点确认方法的流程示意图;该集群主节点确认方法可以应用于集群网络中的节点,该方法的主要思路是,在确认集群网络中的主节点出现故障之后,不再触发集群选举出新的主节点,而是直接在维护的优先分数列表筛选出从节点的优先分数最高的从节点作为新的主节点,从而避免了服务器集群等待选举过程中暂停服务的情况,有效地提高了服务器集群的可靠性。上述的集群主节点确认方法的实施方式可以包括:
步骤S110:在确认集群网络中的主节点出现故障之后,根据维护的优先分数列表判断节点自身的优先分数是否是从节点中最高,优先分数列表用于存储集群网络中的节点的优先分数,优先分数表征在集群网络中的通信能力和计算能力。
主节点,是指用于协调和分配集群网络中的各个电子设备来执行集群***任务的节点,当主节点出现故障(例如全部网络适配器故障陷入断网状态,或者,由于主节点负载过重导致宕机无法使用状态等等)时,整个集群网络无法正常提供服务,因此需要从集群网络中确定出新的主节点,以便于整个集群网络继续正常提供服务。
优先分数列表,是指用于存储集群网络中的节点的优先分数的列表,该优先分数列表可以采用数据库中的数据表,此处的数据库包括但不限于:内存数据库、关系型数据库和非关系型数据库等等,可以使用的内存数据库例如:Memcached和Redis等;该数据表中的字段可以包括但不限于:节点标识、优先分数、角色状态、节点状态、节点负载信息、硬件状态信息和/或最近更新时间的时间戳等等。
步骤S120:若该节点自身的优先分数是从节点中最高,则向集群网络发送主节点确认信息,并将节点自身在优先分数列表中的角色状态修改为主节点。
请参见图2示出的本申请实施例提供的集群网络中的电子设备通信的示意图;可以理解的是,该集群网络可以包括:电子设备A、电子设备B、电子设备C和电子设备D,假设电子设备A是主节点,而电子设备B、电子设备C和电子设备D均是从节点,那么在电子设备A作为主节点出现故障之后,就不需要进行选举过程,每个从节点直接在优先分数列表中确定自己的优先分数是从节点中最高,就可以向集群网络发送主节点确认信息,并将节点自身在优先分数列表中的角色状态修改为主节点。
上述步骤S120的实施方式例如:电子设备A(优先分数是90)是主节点,而电子设备B(优先分数是80)、电子设备C(优先分数是70)和电子设备D(优先分数是60)均是从节点,那么电子设备B作为从节点,可以根据维护的优先分数列表判断节点自身的优先分数是否是从节点中最高,若该节点自身的优先分数是从节点中最高,则电子设备B作为从节点可以通过传输控制协议(Transmission Control Protocol,TCP)或者用户数据报协议(UserDatagram Protocol,UDP)向集群网络发送主节点确认信息,并将节点自身在优先分数列表中的角色状态修改为主节点,即将电子设备B的角色状态更改为主节点。
可以理解的是,优先分数列表中的优先分数可以是事先维护的,例如各个节点定时广播心跳信息(该心跳信息可以包括:节点标识、优先分数、角色状态、节点状态、节点负载信息和/或硬件状态信息等等),从心跳信息中解析出各个从节点和主节点的优先分数,并将优先分数存储在优先分数列表中。由于优先分数列表中的优先分数可以是事先维护的,因此,在主节点发生故障时,集群网络中的其它节点无需通信,即可查询优先分数列表来确定出集群网络中的新主节点。
上述的心跳信息的封装方式有很多种,包括但不限于:第一种封装方式,当集群网络中的电子设备节点检测到网络带宽利用率小于预设利用率(说明当前的网络带宽空闲)时,可以将上述的节点标识、优先分数、角色状态、节点状态、节点负载信息和/或硬件状态信息等等信息全部封装为心跳信息。第二种封装方式,当集群网络中的电子设备节点检测到网络带宽利用率大于预设利用率(说明当前的网络带宽拥挤)时,为了节约网络资源,可以将节点标识和角色状态封装在心跳信息中,心跳信息中没有封装优先分数的原因是优先分数没有变化,若优先分数有变化,则将节点标识和变化后的优先分数封装在心跳信息中。第三种封装方式,为了进一步节约网络资源,可以在优先分数变化较大时才在心跳信息中封装优先分数,具体例如:判断优先分数的变化值与该优先分数的比例是否大于预设比例,若该优先分数的变化值与该优先分数的比例大于预设比例(即优先分数变化较大),则将节点标识和变化后的优先分数封装在心跳信息中。若该优先分数的变化值与该优先分数的比例小于预设比例(即优先分数变化较小),则将节点标识和角色状态封装在心跳信息中。
上述的心跳信息的发送方式也有很多种,包括但不限于:广播、组播和单播等等方式发送心跳信息,具体地发送方式与下面类似,因此参见下面的广播、组播和单播等等方式。
上述的向集群网络发送主节点确认信息的方式有很多种,包括但不限于:广播、组播和单播等等方式发送主节点确认信息。假设集群网络是一个局域网,那么电子设备(即该节点)可以在确定自身的优先分数是否是从节点中最高的情况下,通过广播的方式向集群网络发送主节点确认信息,发送的对象是集群网络中除了该节点自身之外的从节点,并将节点自身在优先分数列表中的角色状态修改为主节点。假设集群网络是一个广域网,那么电子设备(即该节点)可以在确定自身的优先分数是否是从节点中最高的情况下,通过组播或者单播的方式向集群网络发送主节点确认信息,并将节点自身在优先分数列表中的角色状态修改为主节点。
在上述方案的实现过程中,通过根据维护的优先分数列表判断节点自身的优先分数是否最高,如果节点自身的优先分数最高,就立即将节点自身切换为主节点,即向集群网络广播主节点确认信息,从而提高了集群网络中的出现故障的转移速度,缩短了集群网络中的主节点故障时长,避免了服务器集群等待选举过程中暂停服务的情况,有效地提高了服务器集群的可靠性。
作为上述集群主节点确认方法的一种可选实施方式,在判断节点自身的优先分数是否是从节点中最高之后,还可以在确认不是从节点中最高之后,承认其它节点是主节点,该实施方式可以包括:
步骤S130:若节点自身的优先分数不是最高,则在接收到集群网络中的第一节点发送的主节点确认信息之后,在优先分数列表中将第一节点的角色状态修改为主节点。
请参见图3示出的本申请实施例提供的优先分数列表的示意图;上述步骤S130的实施方式例如:电子设备A(优先分数是90)是主节点,而电子设备B(优先分数是80)、电子设备C(优先分数是70)和电子设备D(优先分数是60)均是从节点,那么电子设备C作为从节点可以根据维护的优先分数列表判断节点自身的优先分数是否是从节点中最高,若电子设备C的优先分数不是从节点中最高,则可以等待接收集群网络中其它从节点(例如电子设备B)发送的主节点确认信息,并在通过TCP协议或者UDP协议接收到集群网络中的其它第一节点(例如电子设备B)发送的主节点确认信息之后,就在优先分数列表中将第一节点(例如电子设备B)的角色状态修改为主节点。
作为上述步骤S110中的确认集群网络中的主节点出现故障的可选实施方式,该实施方式可以包括:
步骤S111:若在预设时长内没有接收到主节点发送的心跳信息,则确认集群网络中的主节点出现故障。
上述步骤S111的实施方式例如:若在预设时长(例如1分钟)内没有接收到主节点(例如电子设备A)发送的心跳信息,则确认集群网络中的主节点出现故障(例如电子设备A的全部网络适配器故障陷入断网状态,或者,电子设备A的负载过重导致宕机无法使用状态等等)。可以理解的是,上述的预设时长可以根据具体情况设置,例如将预设时长设置为30秒、60秒或者90秒等等。
作为上述步骤S110的一种可选实施方式,在使用维护的优先分数列表进行判断之前,还可以将接收的心跳信息中解析出的优先分数更新至优先分数列表中,该实施方式可以包括:
步骤S112:判断是否在预设时长内接收到从节点发送的心跳信息。
上述步骤S112的实施方式例如:使用预设编程语言编译或者解释的可执行程序判断是否在预设时长内接收到从节点发送的心跳信息,其中,可以使用的编程语言例如:C、C++、Java、BASIC、JavaScript、LISP、Shell、Perl、Ruby、Python和PHP等等。
步骤S113:若在预设时长内接收到从节点发送的心跳信息,则根据心跳信息更新优先分数列表中的优先分数。
作为上述步骤S113的一种可选实施方式,可以在优先分数存在变化,直接更新该优先分数,该实施方式可以包括:
步骤S113a:判断是否从心跳信息中解析出优先分数。
步骤S113b:若从心跳信息中解析出优先分数,则将解析出的优先分数更新至优先分数列表中。
步骤S113c:若没有从心跳信息中解析出优先分数,则使用当前时刻对应的时间戳更新从节点在优先分数列表中的时间戳。
上述步骤S113a至步骤S113c的实施方式例如:各个节点定时广播心跳信息(该心跳信息可以包括:节点标识、优先分数、节点角色、节点负载信息和/或硬件状态信息等等),若在预设时长内接收到从节点(例如电子设备B)发送的心跳信息,则在从心跳信息中解析出优先分数之后,就将优先分数更新至优先分数列表中,即将心跳信息中解析出来的优先分数(例如是80分)更新(即替换掉)该从节点(例如电子设备B)在优先分数列表中的优先分数(例如是50分)。同理地,如果没有从心跳信息中解析出优先分数,则使用当前时刻对应的时间戳更新(即替换)从节点在优先分数列表中的时间戳,该时间戳表示优先分数的最近更新时间。当然在具体的实践过程中,还可以从心跳信息中解析出角色状态和节点状态,并将角色状态和节点状态更新至优先分数列表中。
作为上述步骤S110的一种可选实施方式,在使用维护的优先分数列表进行判断之前,还可以在预设时长没有接收到从节点的心跳信息,就直接删除该从节点的优先分数,该实施方式可以包括:
步骤S114:若在预设时长内没有接收到从节点发送的心跳信息,则从优先分数列表中删除从节点的优先分数。
上述步骤S114的实施方式例如:假设电子设备B作为从节点,在预设时长(例如1分钟)内没有接收到从节点(例如电子设备D)发送的心跳信息,则从优先分数列表中删除从节点(例如电子设备D)的优先分数,并将该节点(例如电子设备D)的节点状态修改为故障状态。当然,在具体实践过程中,也可以在预设时长内没有接收到从节点(例如电子设备D)发送的心跳信息,就直接删除该从节点(例如电子设备D)的整条数据记录。
同理地,假设电子设备B作为从节点,在预设时长(例如1分钟)内没有接收到主节点(例如电子设备A)发送的心跳信息,则从优先分数列表中删除主节点(例如电子设备A)的优先分数,并将该节点(例如电子设备A)的节点状态修改为故障状态。可以理解的是,上述的预设时长可以根据具体情况设置,例如将预设时长设置为30秒、60秒或者90秒等等。当然,在具体实践过程中,也可以在预设时长(例如1分钟)内没有接收到主节点(例如电子设备A)发送的心跳信息,就直接删除该主节点(例如电子设备A)的整条数据记录。
作为上述步骤S110的一种可选实施方式,在判断节点自身的优先分数是否是从节点中最高之前,还可以根据节点自身的负载数据计算优先分数,该实施方式可以包括:
步骤S115:获取节点自身的负载数据。
负载数据,是指电子设备作为节点(主节点或者从节点)时所承受的负载相关数据,例如:CPU利用率、网络带宽占用率、内存利用率和交换区利用率等。
上述步骤S115的实施方式例如:如果节点的操作***是Linux***,可以使用top等命令来获取节点自身的负载数据。如果节点的操作***是Windows***,那么可以调用***中的***应用程序接口(Application Programming Interface,API)来获取节点自身的负载数据。
步骤S116:对节点自身的负载数据进行加权计算,获得节点自身的优先分数。
可以理解的是,在集群网络开始运行的初始状态时,可以由用户来配置节点自身的优先分数,也可以由节点根据自身的负载数据进行加权计算,获得节点自身的优先分数。
上述步骤S116的实施方式例如:假设负载数据包括:CPU利用率(权重为0.5)和内存利用率(权重为0.5),且CPU利用率是20%、内存利用率是40%,那么可以使用公式S=[(1-R1)×0.5+(1-R2)×0.5]×100来计算电子设备C的优先分数,即对电子设备C的负载数据进行加权计算,获得的优先分数是S=[(1-0.2)×0.5+(1-0.4)×0.5]×100=70。其中,S表示该节点自身的优先分数,R1表示CPU利用率,R2表示内存利用率。
作为上述的集群主节点确认方法的一种可选实施方式,还可以在节点自身的硬件设备的状态发生变化时,修改该节点自身的优先分数,该实施方式可以包括:
步骤S117:若节点自身的硬件设备从运行状态改变为故障状态,则将节点自身的优先分数减去硬件设备对应的优先分数。
上述步骤S117的实施方式例如:假设电子设备D检测到自身的其中一个网络适配器从运行状态改变为故障状态,且网络适配器对应的优先分数是10分,那么可以将电子设备D自身的优先分数70减去硬件设备对应的优先分数10,得到电子设备D自身的最终优先分数是60。
步骤S118:若节点自身的硬件设备从故障状态恢复成运行状态,则将节点自身的优先分数增加硬件设备对应的优先分数。
上述步骤S118的实施方式例如:假设电子设备B检测到自身的其中一个网络适配器从故障状态恢复成运行状态,且网络适配器对应的优先分数是10分,那么可以将电子设备C自身的优先分数70增加硬件设备对应的优先分数10,得到电子设备C自身的最终优先分数是80。
请参见图4示出的本申请实施例提供的集群主节点确认装置的结构示意图;本申请实施例提供了一种集群主节点确认装置200,应用于集群网络中的节点,包括:
优先分数判断模块210,用于在确认集群网络中的主节点出现故障之后,根据维护的优先分数列表判断节点自身的优先分数是否是从节点中最高,优先分数列表用于存储集群网络中的节点的优先分数,优先分数表征在集群网络中的通信能力和计算能力。
主要节点确认模块220,用于若节点自身的优先分数是从节点中最高,则向集群网络发送主节点确认信息,并将节点自身在优先分数列表中的角色状态修改为主节点。
可选地,在本申请实施例中,集群主节点确认装置,还包括:
主要节点承认模块,用于若节点自身的优先分数不是最高,则在接收到集群网络中的第一节点发送的主节点确认信息之后,在优先分数列表中将第一节点的角色状态修改为主节点。
可选地,在本申请实施例中,优先分数判断模块,包括:
主节点故障确认子模块,用于若在预设时长内没有接收到主节点发送的心跳信息,则确认集群网络中的主节点出现故障。
可选地,在本申请实施例中,集群主节点确认装置,还包括:
心跳接收判断模块,用于判断是否在预设时长内接收到从节点发送的心跳信息。
优先分数更新模块,用于若在预设时长内接收到从节点发送的心跳信息,则根据心跳信息更新优先分数列表中的优先分数。
可选地,在本申请实施例中,优先分数更新模块,包括:
优先分数判断子模块,用于判断是否从心跳信息中解析出优先分数;
优先分数更新子模块,用于若从心跳信息中解析出优先分数,则使用解析出的优先分数更新至优先分数列表中。
可选地,在本申请实施例中,优先分数更新模块,还包括:
时间戳更新子模块,用于若没有从心跳信息中解析出优先分数,则使用当前时刻对应的时间戳更新从节点在优先分数列表中的时间戳。
可选地,在本申请实施例中,集群主节点确认装置,还包括:
优先分数删除模块,用于若在预设时长内没有接收到从节点发送的心跳信息,则从优先分数列表中删除从节点的优先分数。
可选地,在本申请实施例中,集群主节点确认装置,还包括:
负载数据获取模块,用于获取节点自身的负载数据。
优先分数获得模块,用于对节点自身的负载数据进行加权计算,获得节点自身的优先分数。
可选地,在本申请实施例中,集群主节点确认装置,还包括:
减去优先分数模块,用于若节点自身的硬件设备从运行状态改变为故障状态,则将节点自身的优先分数减去硬件设备对应的优先分数。
增加优先分数模块,用于若节点自身的硬件设备从故障状态恢复成运行状态,则将节点自身的优先分数增加硬件设备对应的优先分数。
应理解的是,该装置与上述的集群主节点确认方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作***(operating system,OS)中的软件功能模块。
请参见图5示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备300,包括:处理器310和存储器320,存储器320存储有处理器310可执行的机器可读指令,机器可读指令被处理器310执行时执行如上的方法。
本申请实施例还提供了一种计算机可读存储介质330,该计算机可读存储介质330上存储有计算机程序,该计算机程序被处理器310运行时执行如上的方法。
其中,计算机可读存储介质330可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。
另外,在本申请实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (12)
1.一种集群主节点确认方法,其特征在于,应用于集群网络中的节点,包括:
在确认所述集群网络中的主节点出现故障之后,根据维护的优先分数列表判断所述节点自身的优先分数是否是从节点中最高,所述优先分数列表用于存储所述集群网络中的节点的优先分数,所述优先分数表征在所述集群网络中的通信能力和计算能力;
若是,则向所述集群网络发送主节点确认信息,并将所述节点自身在所述优先分数列表中的角色状态修改为主节点。
2.根据权利要求1所述的方法,其特征在于,在所述根据维护的优先分数列表判断所述节点自身的优先分数是否是从节点中最高之后,还包括:
若所述节点自身的优先分数不是最高,则在接收到所述集群网络中的第一节点发送的主节点确认信息之后,在所述优先分数列表中将所述第一节点的角色状态修改为主节点。
3.根据权利要求1所述的方法,其特征在于,所述确认所述集群网络中的主节点出现故障,包括:
若在预设时长内没有接收到所述主节点发送的心跳信息,则确认所述集群网络中的主节点出现故障。
4.根据权利要求1所述的方法,其特征在于,在所述根据维护的优先分数列表判断所述节点自身的优先分数是否是从节点中最高之前,还包括:
判断是否在预设时长内接收到所述从节点发送的心跳信息;
若是,则根据所述心跳信息更新所述优先分数列表中的优先分数。
5.根据权利要求4所述的方法,其特征在于,所述根据所述心跳信息更新所述优先分数列表中的优先分数,包括:
判断是否从所述心跳信息中解析出所述优先分数;
若是,则将解析出的所述优先分数更新至所述优先分数列表中。
6.根据权利要求5所述的方法,其特征在于,在所述判断是否从所述心跳信息中解析出所述优先分数之后,还包括:
若没有从所述心跳信息中解析出所述优先分数,则使用当前时刻对应的时间戳更新所述从节点在所述优先分数列表中的时间戳。
7.根据权利要求4所述的方法,其特征在于,在所述判断是否在预设时长内接收到所述从节点发送的心跳信息之后,还包括:
若在预设时长内没有接收到所述从节点发送的心跳信息,则从所述优先分数列表中删除所述从节点的优先分数。
8.根据权利要求1所述的方法,其特征在于,在所述根据维护的优先分数列表判断所述节点自身的优先分数是否是从节点中最高之前,还包括:
获取所述节点自身的负载数据;
对所述节点自身的负载数据进行加权计算,获得所述节点自身的优先分数。
9.根据权利要求1-8任一所述的方法,其特征在于,还包括:
若所述节点自身的硬件设备从运行状态改变为故障状态,则将所述节点自身的优先分数减去所述硬件设备对应的优先分数;
若所述节点自身的硬件设备从故障状态恢复成运行状态,则将所述节点自身的优先分数增加所述硬件设备对应的优先分数。
10.一种集群主节点确认装置,其特征在于,应用于集群网络中的节点,包括:
优先分数判断模块,用于在确认所述集群网络中的主节点出现故障之后,根据维护的优先分数列表判断所述节点自身的优先分数是否是从节点中最高,所述优先分数列表用于存储所述集群网络中的节点的优先分数,所述优先分数表征在所述集群网络中的通信能力和计算能力;
主要节点确认模块,用于若所述节点自身的优先分数是从节点中最高,则向所述集群网络发送主节点确认信息,并将所述节点自身在所述优先分数列表中的角色状态修改为主节点。
11.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如权利要求1至9任一所述的方法。
12.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至9任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211125011.3A CN115499447A (zh) | 2022-09-15 | 2022-09-15 | 一种集群主节点确认方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211125011.3A CN115499447A (zh) | 2022-09-15 | 2022-09-15 | 一种集群主节点确认方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115499447A true CN115499447A (zh) | 2022-12-20 |
Family
ID=84468751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211125011.3A Pending CN115499447A (zh) | 2022-09-15 | 2022-09-15 | 一种集群主节点确认方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115499447A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904822A (zh) * | 2022-12-21 | 2023-04-04 | 长春吉大正元信息技术股份有限公司 | 一种集群修复方法及装置 |
CN117424352A (zh) * | 2023-12-19 | 2024-01-19 | 浙江简捷物联科技有限公司 | 储能柜主从自主切换方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217402A (zh) * | 2008-01-15 | 2008-07-09 | 杭州华三通信技术有限公司 | 一种提高集群可靠性的方法和一种高可靠性通信节点 |
JP2009223519A (ja) * | 2008-03-14 | 2009-10-01 | Toshiba Corp | クラスタシステム及び同システムにおいてマスタノードを選択する方法 |
CN111538763A (zh) * | 2020-04-24 | 2020-08-14 | 咪咕文化科技有限公司 | 一种确定集群中主节点的方法、电子设备和存储介质 |
CN112328421A (zh) * | 2020-11-05 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种***故障处理方法、装置、计算机设备和存储介质 |
CN112422320A (zh) * | 2020-10-27 | 2021-02-26 | 北京金山云网络技术有限公司 | 服务器的主从切换方法、装置和服务器 |
CN112799839A (zh) * | 2021-01-28 | 2021-05-14 | 百果园技术(新加坡)有限公司 | 请求处理方法、装置、计算机可读存储介质及电子设备 |
CN113014634A (zh) * | 2021-02-20 | 2021-06-22 | 成都新希望金融信息有限公司 | 集群选举处理方法、装置、设备及存储介质 |
-
2022
- 2022-09-15 CN CN202211125011.3A patent/CN115499447A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217402A (zh) * | 2008-01-15 | 2008-07-09 | 杭州华三通信技术有限公司 | 一种提高集群可靠性的方法和一种高可靠性通信节点 |
JP2009223519A (ja) * | 2008-03-14 | 2009-10-01 | Toshiba Corp | クラスタシステム及び同システムにおいてマスタノードを選択する方法 |
CN111538763A (zh) * | 2020-04-24 | 2020-08-14 | 咪咕文化科技有限公司 | 一种确定集群中主节点的方法、电子设备和存储介质 |
CN112422320A (zh) * | 2020-10-27 | 2021-02-26 | 北京金山云网络技术有限公司 | 服务器的主从切换方法、装置和服务器 |
CN112328421A (zh) * | 2020-11-05 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种***故障处理方法、装置、计算机设备和存储介质 |
CN112799839A (zh) * | 2021-01-28 | 2021-05-14 | 百果园技术(新加坡)有限公司 | 请求处理方法、装置、计算机可读存储介质及电子设备 |
CN113014634A (zh) * | 2021-02-20 | 2021-06-22 | 成都新希望金融信息有限公司 | 集群选举处理方法、装置、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904822A (zh) * | 2022-12-21 | 2023-04-04 | 长春吉大正元信息技术股份有限公司 | 一种集群修复方法及装置 |
CN117424352A (zh) * | 2023-12-19 | 2024-01-19 | 浙江简捷物联科技有限公司 | 储能柜主从自主切换方法及*** |
CN117424352B (zh) * | 2023-12-19 | 2024-03-12 | 浙江简捷物联科技有限公司 | 储能柜主从自主切换方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115499447A (zh) | 一种集群主节点确认方法、装置、电子设备及存储介质 | |
CN109582684B (zh) | 一种本地缓存数据的更新方法、装置、服务器及存储介质 | |
CN116547958A (zh) | 用于网络功能选择的排名处理的方法、***和计算机可读介质 | |
WO2016184175A1 (zh) | 数据库处理方法及装置 | |
CN107357571B (zh) | 设备组件程序的维护方法及*** | |
CN108062243B (zh) | 执行计划的生成方法、任务执行方法及装置 | |
CN113067850B (zh) | 一种多云场景下的集群编排*** | |
CN109802986B (zh) | 设备管理方法、***、装置及服务器 | |
CN112965817B (zh) | 资源管理方法、装置和电子设备 | |
CN115550354A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN114900449B (zh) | 一种资源信息管理方法、***及装置 | |
CN112732456A (zh) | 微服务调用方法、装置、电子设备和存储介质 | |
CN110119314B (zh) | 一种服务器调用方法、装置、服务器及存储介质 | |
CN113810474B (zh) | 一种请求的分流方法及终端 | |
CN112235378B (zh) | 数据更新方法、装置、存储介质及电子设备 | |
CN113489149A (zh) | 基于实时状态感知的电网监控***业务主节点选取方法 | |
CN112631756A (zh) | 一种应用于航天测控软件的分布式调控方法及装置 | |
CN113765690A (zh) | 集群切换方法、***、装置、终端、服务器及存储介质 | |
CN112671914A (zh) | 一种基于actor模型的物联网设备通讯方法和*** | |
CN115004650A (zh) | 节点配置方法、装置、分布式***及计算机可读介质 | |
CN110213778B (zh) | 一种网元主备智能配对的方法及装置 | |
CN115981670A (zh) | 容器集群业务部署方法、装置、服务器及存储介质 | |
CN115065686A (zh) | 分布式负载均衡***的配置方法、装置及*** | |
CN114039836A (zh) | Exporter采集器的故障处理方法及装置 | |
CN113396573B (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 |