CN107528710A - raft分布式系统领导节点的切换方法、设备及系统 - Google Patents
raft分布式系统领导节点的切换方法、设备及系统 Download PDFInfo
- Publication number
- CN107528710A CN107528710A CN201610458361.XA CN201610458361A CN107528710A CN 107528710 A CN107528710 A CN 107528710A CN 201610458361 A CN201610458361 A CN 201610458361A CN 107528710 A CN107528710 A CN 107528710A
- Authority
- CN
- China
- Prior art keywords
- leader node
- node
- standby
- distributed system
- election
- 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.)
- Granted
Links
Classifications
-
- 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/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请公开了一种raft分布式系统领导节点切换方法、设备及系统,所述分布式系统包括:领导节点和备用领导节点,所述领导节点用于执行所述分布式系统写操作或读操作,并将写操作或读操作日志发送至备用领导节点,所述方法包括:所述备用领导节点保持与所述领导节点日志的强一致性;当所述领导节点发生故障时,切换为领导节点。本申请提供的技术方案具有提高分布式系统服务性能的优点。
Description
技术领域
本申请涉及通信领域,尤其涉及一种raft分布式系统领导节点的切换方法、设备及系统。
背景技术
在Raft分布式系统中,通过选举过程从所有的节点中选举出一个节点为leader(领导节点),剩余节点为Follower(追随节点);然后leader进行数据的读写操作,并将读写操作的日志同步到Follower,大部分Follower的日志需要与leader保持一致,即大部分Follower需要完成日志的持久化,即日志的一致性,实现该日志的一致性的方法可以为,leader写入新的日志时,leader将新的日志群发送给分布式系统的所有Follower,Follower接收到新日志后,进行日志持久化(即将新日志存储到本地日志中),Follower向leader返回日志持久化成功的消息,当leader接收到大多数Follower返回的日志持久化成功的消息后,确定新日志持久化成功,从而实现大部分Follower日志与leader日志的一致性,由于现有技术中日志的一致性是以大部分Follower这个整体完成日志持久化为基准的,而对于单个Follower,其只需要部分日志与leader的日志保持一致即可,无需所有的日志均与leader的日志保持一致。在raft分布式系统中读操作和写操作均需要通过leader才能够实现,当leader出现故障时,必须从Follower中重新选举出一个新的leader才能够开始工作,而选举耗时长,在选举中,需要从众多Follower中选举出日志最新的Follower成为leader,即需要从众多的Follower中选举出一个Follower,该选举出的Follower为众多的Follower中日志最新Follower,所以选举出的Follower为众多的Follower中与故障前的leader日志一致程度最高的,在选举期间,因为由那个Follower担任新的leader不确定,所以raft分布式系统的读操作以及写操作均无法执行,所以新的leader选举出来之前整个分布式系统无法使用,进而降低整个分布式系统服务性能。
发明内容
本申请提供一种raft分布式系统领导节点的切换方法。可以提高分布式系统服务性能。
第一方面,本申请提供一种raft分布式系统领导节点切换方法,所述分布式系统包括领导节点和备用领导节点,所述领导节点用于执行所述分布式系统写操作或读操作,并将所述写操作或读操作的日志发送至所述备用领导节点,且所述备用领导节点保持与所述领导节点日志的强一致性,所述强一致性表示所述备用领导节点与所述领导节点的所有日志在设定时间内都完成持久化处理的状态,所述方法包括:当所述领导节点发生故障时,所述备用领导节点切换为领导节点第一方面提供的raft分布式系统领导节点切换方法在分布式系统的领导节点故障时,可以直接将备用领导节点切换成领导节点,这样节省了重新选举的时间,使得分布式系统可以持续使用,提高了分布式系统的服务性能。
在一种可能的设计中,该分布式系统还包括追随节点,该方法在备用领导节点切换为领导节点之后还包括:在分布式系统中发起选举,选举用于从追随节点中选举出新的备用领导节点,新的备用领导节点与备用领导节点的日志在选举完成时一致。
在一种可能设计的技术方案中,在分布式系统中选举出新的备用领导节点,这样在备用领导节点故障时,可以将新的备用领导节点替换备用领导节点,增强了分布式系统的可持续性。
在另一种可能的设计中,当备用领导节点发生故障时,在分布式系统中发起选举,选举用于从追随节点中选举出新的备用领导节点,新的备用领导节点与领导节点的日志在该选举完成时一致。
在另一种可能设计的技术方案中,在备用领导节点故障时,发起选举得到新的备用领导节点,这样备用领导节点故障时,可以将新的备用领导节点切换成领导节点,增强了分布式系统的可持续性。
在又一种可能的设计中,当备用领导节点与领导节点的日志不能保持强一致性时,在分布式系统中发起选举,选举用于从追随节点中选举出新的备用领导节点,新的备用领导节点与领导节点的日志在选举完成时一致。
在又一种可能的设计中,在备用领导节点与领导节点的日志不能保持强一致性时,发起选举替换备用领导节点,此方案能够提高领导节点的切换成功率。
在下一种可能设计中,领导节点接收读操作指令,将读操作指令转发给备用领导节点,以使得备用领导节点执行该读操作。
在下一种可能设计中,通过对读操作的分担减轻了领导节点的负载。
第二方面,本申请提供一种网络设备,网络设备部署于raft分布式系统中,raft分布式系统还包括:领导节点和备用领导节点,领导节点用于执行分布式系统写操作或读操作,并将写操作或读操作的日志发送至备用领导节点,该网络设备包括:
一致性单元,用于若网络设备为备用领导节点时,保持与领导节点的日志保持强一致性,该强一致性表示所述备用领导节点与所述领导节点的所有日志在设定时间内都完成持久化处理的状态;
切换单元,用于若网络设备为备用领导节点,当领导节点发生故障时,切换网络设备为领导节点。
第二方面提供网络设备在分布式系统的领导节点故障时,可以直接切换成领导节点,这样节省了重新选举的时间,使得分布式系统可以持续使用,提高了分布式系统的服务性能。
第三方面,本申请提供一种网络设备,网络设备部署于raft分布式系统中,raft分布式系统还包括:领导节点和追随节点,所述领导节点用于执行所述分布式系统写操作或读操作,并将日志同步到追随节点;该网络设备至少包括存储器、处理器和收发器,该存储器中存储有程序代码,该处理器用于调用存储器中存储的程序代码,执行上述第一方面提供的一种raft分布式系统领导节点切换方法或上述可能的设计的方法。
第三方面提供网络设备在分布式系统的领导节点故障时,可以直接切换成领导节点,这样节省了重新选举的时间,使得分布式系统可以持续使用,提高了分布式系统的服务性能。
第四方面,提供一种分布式系统,分布式系统包括:至少三个节点,该节点包括:领导节点、追随节点和备用领导节点,领导节点用于执行分布式系统写操作或读操作,并将写操作或读操作的日志发送至追随节点;所述备用领导节点保持与领导节点日志的强一致性,以及当领导节点发生故障时,切换为领导节点。
相较于现有技术,本申请提出的方案具有领导节点和备用领导节点,由于备用领导节点保持与领导节点日志强一致性,在领导节点故障时,可以直接切换备用领导节点为领导节点,而无需进行选举,节省了选举时间,保持了分布式系统的持续性,提高了分布式系统的服务性能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的raft算法的写操作的流程示意图;
图2是本申请提供的raft算法的读操作的流程示意图;
图3是本申请实施例提供的raft分布式系统领导节点切换方法的示意图;
图4是本申请实施例提供的分布式系统的结构示意图;
图5为本申请实施例提供的网络设备的示意图;
图6为本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
请参阅图1,图1为raft算法的数据写操作的流程图,可以包括:
步骤S101、leader接收到需要写入的日志后,将日志复制,然后将日志发送给其它节点(即Follower);
步骤S102、Follower将接收到的日志存入本地日志中;
上述步骤S102也可以称为日志持久化;
步骤S103、Follower在日志持久化后,向leader返回响应消息;
步骤S104、leader接收到大部分Follower的响应消息后,确定大部分Follower已完成日志持久化,完成写操作。
请参阅图2,图2为raft算法的数据读操作流程图,可以包括:
步骤S201、leader接收数据读取命令;
步骤S202、leader获取该读取命令对应的数据,并将该数据发送。
通过上述说明证明leader在raft算法中的地位是非常重要的,因为在raft算法中读操作和写操作均需要通过leader才能够实现。
请参考图3,图3是本申请实施例提出的一种raft分布式系统领导节点切换方法,该方法应用于分布式系统中,该分布式系统如图4所示,包括:领导节点401、备用领导节点402和追随节点403,该领导节点用于执行分布式系统的写操作,当然领导节点还可以用于执行读操作,该领导节点还用于将读操作或写操作的日志发送至备用领导节点402,上述领导节点、备用领导节点以及追随节点之间可以相互切换,该领导节点、备用领导节点以及追随节点包括但不限于:计算机、服务器或其他类型的智能处理设备。关于本实施例涉及的术语的含义,如本实施例没有明确定义,可以参考raft算法的描述,此处不再赘述。
上述在raft分布式系统中实现领导节点和备用领导节点的方式可以有多种,例如,在本实施例的一个具体的实施方案中,分布式系统的一个节点发起选举,从分布式系统的所有节点中选举出领导节点,然后分布式系统的一个节点再次发起选举,在分布式系统的Follower中选举出备用领导节点。在本实施例的另一个具体的实施方案中,分布式系统的一个节点发起选举,选举过程中投票数最高的节点作为选举出的领导节点,选举过程中投票数第二高的节点作为选举出的备用领导节点。
上述备用领导节点保持与领导节点的日志强一致性的技术方案有很多,本实施例并不限制上述保持日志强一致性的具体的技术方案,例如,在一个具体的实施方案中,领导节点在获取到新日志后,先将新日志发送给备用领导节点,当设定时间内接收到备用领导节点在新日志持久化成功后返回的响应消息后,领导节点确认自身也完成了新日志持久化,确认备用领导节点保持与领导节点的日志强一致性。当然在实际应用中,还可以采用其他的方式使得上述备用领导节点保持与领导节点的日志强一致性,例如,领导节点在获取新日志后,将新日志发送给备用领导节点和追随节点,当在设定时间内接收到备用领导节点在新日志持久化成功后返回的响应消息且领导节点自身也完成了新日志持久化,确定备用领导节点保持与领导节点的日志强一致性。
如图3所示,该方法包括如下步骤:
步骤S300、备用领导节点保持与领导节点的日志强一致性。
上述步骤S300的强一致性具体表示备用领导节点与领导节点的所有日志在设定时间内都完成持久化处理的状态,上述设定时间可以是厂家在分布式系统中自行设置的时间值。当然上述具体实施方案仅仅是为了举例说明。在分布式系统的Follower中选举出领导节点的具体实现方法可以为,分布式系统的Follower发起选举,发起选举的Follower向其他Follower发起选举消息,该选举消息内携带有发起选举的Follower的第一日志标识(该日志标识具体可以为日志序号,当然在其他实施例中也可以为其他的表现形式),其他Follower接收到该选举消息后,通过该第一日志标识判断自身的日志标识是否新于第一日志标识,如判断出该自身的日志标识新于第一日志标识,则向发起选举的Follower返回拒绝消息,如判断出该自身的日志标识不新于第一日志标识,则向发起选举的Follower返回投票消息,发起选举的Follower统计投票消息的数量,如数量超过所有Follower数量的半数,切换成领导节点,向所有Follower发送心跳消息,选举结束。
下面以一个实际的例子来说明上述选举的具体实现方法,这里的Follower假设有5个,为了叙述方便,分别命名为:Follower 1、Follower 2、Follower3、Follower 4和Follower 5,该例子中日志标识以日志序号为例,上述5个Follower对应的日志序号分别命名为:日志序号1、日志序号2、日志序号3、日志序号4、日志序号5;则上述选举领导节点的方法可以为,Follower 1向Follower 2、Follower 3、Follower 4和Follower 5发送选举消息,该选举消息中携带有日志序号1,Follower 2接收到该选举消息后,判断日志序号2是否比日志序号1新,由于在raft算法的分布式系统中,日志序号是按顺序排列且分布式系统中大多数Follower的日志均为最新的日志,所以如日志序号2不大于(包括小于或等于)日志序号1,则确定日志序号2不比日志序号1新,向Follower 1发送投票消息,同理,Follower 3、Follower 4和Follower 5也可以依据上述判断方式向Follower 1发送投票消息,Follower 1统计该投票消息数量为4个时,确定投票超过半数,切换成领导节点,向Follower 2、Follower3、Follower 4和Follower 5发送心跳消息,选举结束。
步骤S301、当领导节点发生故障时,切换备用领导节点为领导节点;
上述步骤S301中获知领导节点故障的方法有多种,本实施例并不限制获知该领导节点故障的具体方法,例如,可以通过检测领导节点的心跳消息来获知该领导节点是否故障,具体可以为,领导节点周期性的向所有的Follower发送心跳消息,Follower返回心跳响应消息,如Follower在设定时间内未收到领导节点发送的心跳消息,则确定领导节点故障,反之,如在设定时间内收到领导节点发送的心跳消息,则确定领导节点正常。
步骤S302(可选的)、在分布式系统中发起选举,该选举用于从分布式系统中的追随节点中选举出新的备用领导节点,新的备用领导节点与备用领导节点(即切换后的领导节点)的日志在该选举完成时一致;
上述步骤S302中选举的具体过程可以参见raft算法的描述,不同点仅仅在于选举的范围不同,在raft算法中,选举的范围是所有的节点,在步骤S302中选举的范围是分布式系统中的所有追随节点。上述步骤S302的技术方案可以保证分布式系统运行的持续性,避免了备用领导节点(即切换后的领导节点)故障时,无法进行领导节点切换的问题。
下面通过图4来说明本实施例所达到的技术效果,参阅图4,在raft分布式系统中,由于具有领导节点401和备用领导节点402,所以在领导节点401故障时,可以不用重新选举,切换备用领导节点402为raft算法的leader,此方案可以节省一次选举的时间,分布式系统也可以持续使用,提升了分布式系统的使用性能。下面通过计算公式来说明节省的时间。
其中,E(Δt)可以为一次选举的时间;
其中,ttimeout可以为选举超时,λ可以为平均选举次数,a可以为主领导节点和备用领导节点同时失效概率。
其中,trandom可以为重选举超时。
这里假设ttimeout为900ms;trandom为300ms;λ为2;为100ms;a为1%,则计算出的一次选举的时间E(Δt)可以为495ms,所以采用本实施例提供的技术方案在领导节点故障时,能够节省495ms的选举时间,并且分布式系统可以持续使用。
可选的,上述方法还可以包括:
当备用领导节点发生故障时,在分布式系统中发起选举,该选举用于从追随节点中选举出新的备用领导节点,新的备用领导节点与领导节点的日志在该选举完成时一致。
上述情况出现主要是备用领导节点故障但是领导节点正常,此种情况分布式系统可以正常的使用,但是为了避免备用领导节点故障后无新的备用领导节点切换的问题,需要发起选举,该选举从追随节点中选举出新的备用领导节点,该新的备用领导节点可以替换备用领导节点,这样在领导节点故障时可以将新的备用领导节点切换成领导节点。上述技术方案保证了分布式系统运行的持续性,避免了备用领导节点故障时,无备用领导节点切换的问题。
可选的,上述方法还可以包括:
当备用领导节点与所述领导节点的日志不能保持强一致性时,在所述分布式系统中发起选举,所述选举用于从追随节点中选举出新的备用领导节点,所述新的备用领导节点与所述领导节点的日志在该选举完成时一致。
上述情况的出现是因为备用领导节点与领导节点的日志不能保持强一致性,即备用领导节点或领导节点在设定时间内无法进行日志持久化或日志持久化不成功,本申请实施例可以通过多种方案来获知备用领导节点与领导节点的日志不能保持强一致性,例如,周期性的获取领导节点日志和备用领导节点日志,当领导节点日志和备用领导节点日志不一致时,确定备用领导节点日志和领导节点日志不能保持强一致性。当然还可以通过以下技术方案来实现,例如,领导节点在获取新日志后,向备用领导节点发送新日志,如设定时间内接收到的响应消息中未有备用领导节点返回的响应消息,确定备用领导节点日志持久化不成功,确定备用领导节点的日志和领导节点的日志不能保持强一致性。
上述技术方案在备用领导节点与领导节点的日志不能保持强一致性时,发起选举替换备用领导节点,此方案能够提高领导节点的切换成功率,因为对于分布式系统来说,其需要保证领导节点的日志为所有的节点中最新的日志,如果备用领导节点不能与领导节点日志保持强一致性,则备用领导节点的日志就不是最新日志,此时如果将备用领导节点切换成领导节点,就可能出现切换不成功的情况出现。
可选的,上述方法在步骤S302之后还可以包括:
领导节点接收读操作指令,将读操作指令转发给备用领导节点,以使得备用领导节点执行该读操作。
上述步骤中领导节点将读操作指令转发给备用领导节点的触发条件可以有多种,例如,领导节点获取备用领导节点的负载,当该负载小于领导节点的负载时,将该读操作指令转发给备用领导节点,当然还可以通过其他的方式来转发,例如,领导节点判断上次读操作指令是否为领导节点执行,如上次读操作指令是领导节点执行,则将该读操作指令转发给备用领导节点,如上次读操作指令不是领导节点执行,则不转发该读操作指令。当然在实际应用中还可以采用其他的触发条件,本申请并不限制上述触发条件的具体形式。
上述方案可以解决领导节点负载过重的问题,依据raft算法,分布式系统的节点在转发读操作时,只能向领导节点转发,这样领导节点就会有过多的读操作,此种处理方式容易使领导节点负载过重而出现故障,因为领导节点的处理能力有限,可能无法处理这么多的读操作或处理读操作的延时过长,上述技术方案将读操作转发给备用领导节点处理可以一定程度上缓解领导节点的处理能力有限的问题,因为对于读操作来说,由于领导节点和备用领导节点日志的强一致性,所以从备用领导节点或领导节点读取的数据是相同的,所以备用领导节点可以分担领导节点的部分读操作,一定程度上缓解领导节点处理能力有限的问题。对于写操作的执行,还是需要在领导节点执行,假设写操作也在备用领导节点执行,备用领导节点执行该写操作后,备用领导节点就会保存该写操作对应的新日志,此时,领导节点保存的日志就不是分布式系统中最新的日志,此种情况在分布式系统中是不允许的,所以备用领导节点不能分担写操作。
参阅图5,图5为本申请另一实施例提供的网络设备的示意图,该网络设备500可以为raft分布式系统的一个节点,该raft分布式系统还包括:领导节点、备用领导节点和追随节点,领导节点,用于执行分布式系统写操作或读操作,并将读操作或写操作的日志发送至备用领导节点,本实施例中的网络设备可以为如图3所示实施例中的备用领导节点,当然在实际应用中,上述网络设备还可以为追随节点或领导节点,网络设备可以在领导节点、备用领导节点以及追随节点之间切换,关于本实施例涉及的术语的含义以及举例,可以参考图3对应的实施例,此处不再赘述。
一致性单元501,用于若网络设备为备用领导节点时,保持与领导节点的日志强一致性;
上述一致性单元501保持日志强一致性的技术方案可以参见本申请如图3所示实施例中的描述,这里不再赘述。
切换单元502,用于若网络设备为备用领导节点,当所述领导节点发生故障时,切换所述网络设备为领导节点。
上述切换单元502中判断领导节点发生故障的方法可以参见本申请如图3所示实施例中的描述,这里不再赘述。
可选的,上述网络设备还可以包括:
选举单元503,用于在分布式系统中发起选举;选举用于从追随节点中选举出备用领导节点,该备用领导节点与网络设备的日志在该选举完成时一致。
可选的,选举单元503,还用于当分布式系统中备用领导节点切换成领导节点后,在分布式系统中发起选举。
可选的,选举单元503,还用于当分布式系统中备用领导节点故障时,在分布式系统中发起选举,用以选出新的备用领导节点。
可选的,选举单元503,还用于分布式系统中备用领导节点与领导节点的日志不能保持强一致性时,在分布式系统中发起选举,用以选出新的备用领导节点。
上述选举单元503的细化、实现方案以及技术效果均可以参见本申请如图3所示实施例的描述。
可选的,上述网路设备还可以包括:接收单元505,用于接收读操作指令;
发送单元504,用于将读操作指令转发给备用领导节点,以使得备用领导节点执行读操作。
上述发送单元504的细化、实现方案以及技术效果均可以参见本申请如图3所示实施例的描述。
本申请另一实施例提供的网络设备部署的raft分布式系统中,由于raft分布式系统中包括领导节点和备用领导节点,所以在领导节点出现故障时,可以切换备用领导节点为领导节点,从而节省了选举时间,并且分布式系统可以持续工作,提升了分布式系统的工作性能。
参阅图4,如图4所示为本申请又一实施例提供的一种分布式系统的结构示意图,该分布式系统包括:至少三个节点(图4以6个节点为例),该节点包括:领导节点401和追随节点403,领导节点401用于执行分布式系统写操作或读操作,并将日志同步到追随节点403,备用领导节点402用于保持与领导节点401日志的强一致性,以及当领导节点401发生故障时,切换为领导节点;关于本实施例涉及的术语的含义以及举例,可以参考图3对应的实施例,此处不再赘述。
可选的,上述节点,还用于在所述分布式系统进行选举,所述选举用于从所述分布式系统中的追随节点中选举出备用领导节点,所述备用领导节点与所述备用领导节点的日志相一致。上述选举可以在备用领导节点切换成领导节点后发起。上述选举的实现方式可以参见如图3所示实施例的描述,这里不在赘述。
可选的,上述节点,还用于当分布式系统中备用领导节点故障时,在分布式系统中发起选举,用以选举出新的备用领导节点。
上述关于相一致的定义以及选举的具体实现方式可以参见如图3所示实施例的描述,这里不再赘述。
可选的,上述节点还用于,当分布式系统中备用领导节点与领导节点日志不能保持强一致性时,在分布式系统中发起选举以选举出新的备用领导节点。
可选的,上述节点还用于,接收读操作指令,读操作指令用于指示分布式系统执行读操作;将读操作指令发送给备用领导节点,以使得备用领导节点执行读操作。
参阅图6,图6为本申请下一实施例提供的一种网络设备600,该网络设备600可以为部署在raft分布式系统中的一个节点,raft分布式系统还可以包括:领导节点、备用领导节点和追随节点,所述领导节点用于执行所述分布式系统写操作或读操作,并将日志同步到追随节点,该网络设备600包括但不限于:计算机、服务器等设备,如图6所示,该网络设备600包括:处理器601、存储器602、收发器603和总线604。收发器603用于与外部设备(例如分布式系统中的其他节点或分布式系统以外的网络设备)之间收发数据。网络设备600中的处理器601的数量可以是一个或多个。本申请的一些实施例中,处理器601、存储器602和收发器603可通过总线系统或其他方式连接。关于本实施例涉及的术语的含义以及举例,可以参考图3对应的实施例,此处不再赘述。
其中,存储器602中可以存储程序代码。处理器601用于调用存储器602中存储的程序代码,用于执行以下操作:
处理器601,用于若网络设备600为备用领导节点时,保持与领导节点日志的强一致性,当领导节点发生故障时,切换网络设备为领导节点。
可选的,处理器601,还可以用于执行如图3所示实施例中的步骤、步骤的细化方案以及可选方案。
需要说明的是,这里的处理器601可以是一个处理元件,也可以是多个处理元件的统称。例如,该处理元件可以是中央处理器(Central Processing Unit,CPU),也可以是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)。
存储器603可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或应用程序运行装置运行所需要参数、数据等。且存储器603可以包括随机存储器(RAM),也可以包括非易失性存储器(non-volatilememory),例如磁盘存储器,闪存(Flash)等。
总线604可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
该用户设备还可以包括输入输出装置,连接于总线604,以通过总线与处理器601等其它部分连接。该输入输出装置可以为操作人员提供一输入界面,以便操作人员通过该输入界面选择布控项,还可以是其它接口,可通过该接口外接其它设备。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例所提供的内容下载方法及相关设备、系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (18)
1.一种raft分布式系统领导节点切换方法,其特征在于,
所述分布式系统包括领导节点和备用领导节点,所述领导节点用于执行所述分布式系统写操作或读操作,并将所述写操作或读操作的日志发送至所述备用领导节点,且所述备用领导节点保持与所述领导节点日志的强一致性,所述强一致性表示所述备用领导节点与所述领导节点的所有日志在设定时间内都完成持久化处理的状态,所述方法包括:
当所述领导节点发生故障时,所述备用领导节点切换为领导节点。
2.根据权利要求1所述的方法,其特征在于,所述分布式系统还包括追随节点,所述方法在所述备用领导节点切换为领导节点之后还包括:
在所述分布式系统中发起选举,所述选举用于从所述追随节点中选举出新的备用领导节点,所述新的备用领导节点与所述备用领导节点的日志在所述选举完成时一致。
3.根据权利要求1所述的方法,其特征在于,所述分布式系统还包括追随节点,所述方法还包括:
当所述备用领导节点发生故障时,在所述分布式系统中发起选举,所述选举用于从所述追随节点中选举出新的备用领导节点,所述新的备用领导节点与所述领导节点的日志在所述选举完成时一致。
4.根据权利要求1或3所述的方法,其特征在于,
当所述备用领导节点与所述领导节点日志不能保持强一致性时,所述方法还包括:在所述分布式系统中发起选举,所述选举用于从追随节点中选举出新的备用领导节点,所述新的备用领导节点与所述领导节点的日志在所述选举完成时一致。
5.根据权利要求1、3或4中任一所述的方法,其特征在于,所述方法还包括:
所述领导节点接收读操作指令,并将所述读操作指令转发给所述备用领导节点,以使得所述备用领导节点执行所述读操作。
6.一种网络设备,其特征在于,所述网络设备部署于raft分布式系统中,所述raft分布式系统包括:领导节点和备用领导节点,所述领导节点用于执行所述分布式系统写操作或读操作,并将所述写操作或读操作的日志发送到备用领导节点;所述网络设备包括:
一致性单元,用于若所述网络设备为备用领导节点时,保持所述网络设备与所述领导节点的日志的强一致性,所述强一致性表示所述备用领导节点与所述领导节点的所有日志在设定时间内都完成持久化处理的状态;
切换单元,用于若所述网络设备为备用领导节点,当所述领导节点发生故障时,切换所述网络设备为领导节点。
7.根据权利要求6所述的网络设备,其特征在于,所述分布式系统还包括追随节点,所述网络设备还包括:
选举单元,用于在所述分布式系统中进行选举,所述选举用于从所述追随节点中选出备用领导节点,所述备用领导节点与所述领导节点的日志在所述选举完成时一致。
8.根据权利要求7所述的网络设备,其特征在于,所述选举单元还用于:
当所述分布式系统中备用领导节点切换为领导节点后,在所述分布式系统中发起所述选举。
9.根据权利要求7所述的网络设备,其特征在于,所述选举单元还用于:
当所述分布式系统中备用领导节点故障时,在所述分布式系统中发起所述选举用以选出新的备用领导节点。
10.根据权利要求7所述的网络设备,其特征在于,所述选举单元还用于:
当所述分布式系统中备用领导节点与领导节点的日志不能保持强一致性时,在所述分布式系统中发起所述选举,用以选出新的备用领导节点。
11.根据权利要求6、7或8所述的网络设备,其特征在于,所述网络设备还包括:
接收单元,用于接收读操作指令;
发送单元,用于将所述读操作指令转发给所述备用领导节点,以使得所述备用领导节点执行所述读操作。
12.一种网络设备,其特征在于,所述网络设备部署于raft分布式系统中,所述raft分布式系统还包括:领导节点和追随节点,所述领导节点用于执行所述分布式系统写操作或读操作,并将日志同步到追随节点,所述网络设备包括:
一个或多个处理器、存储器、总线、收发器以及一个或多个程序,所述一个或多个处理器、所述存储器和所述收发器通过所述总线相连;
其中,所述一个或多个程序被存储在所述存储器中,所述一个或多个程序包括指令,所述指令当被所述网络设备执行时使所述网络设备执行如权利要求1-5任意一项所述的方法。
13.一种分布式系统,其特征在于,所述分布式系统包括至少三个节点,所述节点包括:
领导节点、追随节点和备用领导节点,用于执行所述分布式系统写操作或读操作,并将所述写操作或读操作的日志发送至备用领导节点;
所述备用领导节点,用于保持与所述领导节点日志的强一致性,以及当所述领导节点发生故障时,切换为领导节点;所述强一致性表示所述备用领导节点与所述领导节点的所有日志在设定时间内都完成持久化处理的状态。
14.根据权利要求13所述分布式系统,其特征在于,所述节点还用于,在所述分布式系统进行选举,所述选举用于从所述追随节点中选举出备用领导节点,所述备用领导节点与所述领导节点的日志在所述选举完成时一致。
15.根据权利要求14所述分布式系统,其特征在于,所述节点还用于,当所述备用领导节点切换为所述领导节点后,发起所述选举。
16.根据权利要求14所述的分布式系统,其特征在于,所述节点还用于,当所述分布式系统中备用领导节点故障时,在所述分布式系统中发起所述选举,用以选出新的备用领导节点。
17.根据权利要求14所述系统,其特征在于,所述节点还用于,当所述分布式系统中备用领导节点与所述领导节点日志不能保持强一致性时,在所述分布式系统发起选举,用以选出新的备用领导节点。
18.根据权利要求13、14或15所述的系统,其特征在于,所述节点还用于,
接收读操作指令;
将所述读操作指令转发给所述备用领导节点,以使得所述备用领导节点执行所述读操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610458361.XA CN107528710B (zh) | 2016-06-22 | 2016-06-22 | raft分布式系统领导节点的切换方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610458361.XA CN107528710B (zh) | 2016-06-22 | 2016-06-22 | raft分布式系统领导节点的切换方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107528710A true CN107528710A (zh) | 2017-12-29 |
CN107528710B CN107528710B (zh) | 2021-08-20 |
Family
ID=60735418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610458361.XA Active CN107528710B (zh) | 2016-06-22 | 2016-06-22 | raft分布式系统领导节点的切换方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107528710B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108989391A (zh) * | 2018-06-19 | 2018-12-11 | 北京百悟科技有限公司 | 一种一致性处理的方法及装置 |
CN109241015A (zh) * | 2018-07-24 | 2019-01-18 | 北京百度网讯科技有限公司 | 用于在分布式存储系统中写入数据的方法 |
CN109828722A (zh) * | 2019-01-29 | 2019-05-31 | 中国人民大学 | 异构分布式键值存储系统Raft组数据自适应分布方法 |
CN110855793A (zh) * | 2019-11-19 | 2020-02-28 | 南昌航空大学 | 一种分布式系统共识方法 |
CN111526186A (zh) * | 2020-04-10 | 2020-08-11 | 河海大学 | 基于Raft的分布式服务器集群配置方法 |
CN111586110A (zh) * | 2020-04-22 | 2020-08-25 | 广州锦行网络科技有限公司 | 一种raft在出现点对点故障时的优化处理方法 |
CN112838965A (zh) * | 2021-02-19 | 2021-05-25 | 浪潮云信息技术股份公司 | 一种强同步角色故障的识别与恢复方法 |
CN113347013A (zh) * | 2020-02-18 | 2021-09-03 | 广东博智林机器人有限公司 | 网络内根节点的故障恢复方法和装置 |
CN113905054A (zh) * | 2021-08-30 | 2022-01-07 | 苏州浪潮智能科技有限公司 | 基于RDMA的Kudu集群数据同步方法、装置、系统 |
CN114268532A (zh) * | 2021-11-24 | 2022-04-01 | 华人运通(上海)云计算科技有限公司 | 一种基于Raft协议的竞选方法、分布式系统及存储介质 |
CN114420277A (zh) * | 2022-01-25 | 2022-04-29 | 河海大学 | 一种基于改进Raft算法的区块链医院病床管理系统 |
CN114726867A (zh) * | 2022-02-28 | 2022-07-08 | 重庆趣链数字科技有限公司 | 一种基于Raft的热备多主方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282207A (zh) * | 2008-06-05 | 2008-10-08 | 华为技术有限公司 | 数据更新的记录方法、装置和数据备份方法、系统 |
US20130297976A1 (en) * | 2012-05-04 | 2013-11-07 | Paraccel, Inc. | Network Fault Detection and Reconfiguration |
CN103491192A (zh) * | 2013-09-30 | 2014-01-01 | 北京搜狐新媒体信息技术有限公司 | 一种分布式系统的Namenode切换方法和系统 |
US20160077936A1 (en) * | 2014-09-12 | 2016-03-17 | Facebook, Inc. | Failover mechanism in a distributed computing system |
-
2016
- 2016-06-22 CN CN201610458361.XA patent/CN107528710B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282207A (zh) * | 2008-06-05 | 2008-10-08 | 华为技术有限公司 | 数据更新的记录方法、装置和数据备份方法、系统 |
US20130297976A1 (en) * | 2012-05-04 | 2013-11-07 | Paraccel, Inc. | Network Fault Detection and Reconfiguration |
CN103491192A (zh) * | 2013-09-30 | 2014-01-01 | 北京搜狐新媒体信息技术有限公司 | 一种分布式系统的Namenode切换方法和系统 |
US20160077936A1 (en) * | 2014-09-12 | 2016-03-17 | Facebook, Inc. | Failover mechanism in a distributed computing system |
US9367410B2 (en) * | 2014-09-12 | 2016-06-14 | Facebook, Inc. | Failover mechanism in a distributed computing system |
Non-Patent Citations (1)
Title |
---|
杨传辉: "《OceanBase高可用方案》", 《华东师范大学学报(自然科学版)》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108989391A (zh) * | 2018-06-19 | 2018-12-11 | 北京百悟科技有限公司 | 一种一致性处理的方法及装置 |
CN108989391B (zh) * | 2018-06-19 | 2021-09-07 | 北京百悟科技有限公司 | 一种一致性处理的方法及系统 |
CN109241015A (zh) * | 2018-07-24 | 2019-01-18 | 北京百度网讯科技有限公司 | 用于在分布式存储系统中写入数据的方法 |
CN109828722A (zh) * | 2019-01-29 | 2019-05-31 | 中国人民大学 | 异构分布式键值存储系统Raft组数据自适应分布方法 |
CN109828722B (zh) * | 2019-01-29 | 2022-01-28 | 中国人民大学 | 异构分布式键值存储系统Raft组数据自适应分布方法 |
CN110855793A (zh) * | 2019-11-19 | 2020-02-28 | 南昌航空大学 | 一种分布式系统共识方法 |
CN113347013A (zh) * | 2020-02-18 | 2021-09-03 | 广东博智林机器人有限公司 | 网络内根节点的故障恢复方法和装置 |
CN111526186A (zh) * | 2020-04-10 | 2020-08-11 | 河海大学 | 基于Raft的分布式服务器集群配置方法 |
CN111586110B (zh) * | 2020-04-22 | 2021-03-19 | 广州锦行网络科技有限公司 | 一种raft在出现点对点故障时的优化处理方法 |
CN111586110A (zh) * | 2020-04-22 | 2020-08-25 | 广州锦行网络科技有限公司 | 一种raft在出现点对点故障时的优化处理方法 |
CN112838965A (zh) * | 2021-02-19 | 2021-05-25 | 浪潮云信息技术股份公司 | 一种强同步角色故障的识别与恢复方法 |
CN113905054A (zh) * | 2021-08-30 | 2022-01-07 | 苏州浪潮智能科技有限公司 | 基于RDMA的Kudu集群数据同步方法、装置、系统 |
CN113905054B (zh) * | 2021-08-30 | 2023-08-08 | 苏州浪潮智能科技有限公司 | 基于RDMA的Kudu集群数据同步方法、装置、系统 |
CN114268532A (zh) * | 2021-11-24 | 2022-04-01 | 华人运通(上海)云计算科技有限公司 | 一种基于Raft协议的竞选方法、分布式系统及存储介质 |
CN114420277A (zh) * | 2022-01-25 | 2022-04-29 | 河海大学 | 一种基于改进Raft算法的区块链医院病床管理系统 |
CN114726867A (zh) * | 2022-02-28 | 2022-07-08 | 重庆趣链数字科技有限公司 | 一种基于Raft的热备多主方法 |
CN114726867B (zh) * | 2022-02-28 | 2023-09-26 | 重庆趣链数字科技有限公司 | 一种基于Raft的热备多主方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107528710B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107528710A (zh) | raft分布式系统领导节点的切换方法、设备及系统 | |
CN1998199B (zh) | 连接模式控制设备、连接模式控制方法和连接模式控制程序 | |
CN108964948A (zh) | 主从服务系统、主节点故障恢复方法及装置 | |
CN102411639B (zh) | 元数据的多副本存储管理方法和系统 | |
CN100556038C (zh) | 一种基于外部条件触发节点动作的内容分发方法 | |
CN107919977B (zh) | 一种基于Paxos协议的在线扩容、在线缩容的方法和装置 | |
CN103944974B (zh) | 一种协议报文处理方法、控制器故障处理方法及相关设备 | |
CN105760245B (zh) | 一种存储数据的方法及装置 | |
CN107623703A (zh) | 全局事务标识gtid的同步方法、装置及系统 | |
CN100530069C (zh) | 一种非同质存储设备的虚拟化系统及方法 | |
CN103384211A (zh) | 一种具有容错性的数据操作方法及分布式的数据存储系统 | |
CN106210123A (zh) | 一个多节点的软件定义网络控制器系统 | |
JPH05160841A (ja) | 状態情報返答方法 | |
CN105930357A (zh) | 分布式文件系统及数据节点数据存储处理的方法、装置 | |
CN110061885A (zh) | 网关设备卸载方法、装置、网关设备及介质 | |
CN108763517A (zh) | 一种删除元数据的方法以及相关设备 | |
CN112492030A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN115884304A (zh) | 基于无线Mesh网络的路由修复方法及相关设备 | |
CN108984602A (zh) | 一种数据库控制方法和数据库系统 | |
CN112637053B (zh) | 路由的备份转发路径的确定方法及装置 | |
JP3559016B2 (ja) | ディスクアレイシステム、ディスクアレイシステムにおけるロジカルユニットの引き継ぎ方法及び連携制御コントローラ | |
CN111208942A (zh) | 一种分布式存储系统及其存储方法 | |
JP2010182017A (ja) | 分散計算機システム、マネージャ引き継ぎ方法及びマネージャ引き継ぎプログラム | |
JPH1023050A (ja) | リング状ネットワークにおける信号伝送方式 | |
CN114666524B (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 |