【技术实现步骤摘要】
状态机复制方法、装置、系统及存储介质
本申请涉及计算机
,尤其涉及一种云计算
中的状态机复制方法、装置、系统及存储介质。
技术介绍
在单机系统中,系统进行变更操作前,可以先持久化记录的日志,再将其应用到状态机,这样在系统宕机后,通过重做日志可以将系统恢复到原有的状态。尤其在分布式系统中,通过状态机复制(statemachinereplication)技术,能够实现分布式系统的高可用性和一致性。现有技术中,Paxos是分布式系统中最基础的一致性协议,基于该Paxos进行变形和衍生的分布式状态机复制技术(例如,QJM和RAFT)可以实现多个节点的日志同步,从而保证了有状态服务的高可用和一致性。然而,现有的分布式状态机复制技术一般要求同一个日志流在同一时间限定在固定的机器上,这导致单个日志流的性能和空间只能受限于单台机器,容错能力差,无法保证系统的高可用性。
技术实现思路
本申请实施例提供一种状态机复制方法、装置、系统及存储介质,用于解决现有的分布式状态机复制技术存在的系统容 ...
【技术保护点】
1.一种状态机复制方法,其特征在于,应用于状态机复制系统中的任意一个节点,所述节点包括:日志服务模块和分布式文件系统DFS客户端,所述方法包括:/n所述节点通过所述日志服务模块确定所述节点在所述状态机复制系统中的角色,所述角色为主节点或从节点,所述主节点为所述状态机复制系统的服务节点,所述从节点为所述状态机复制系统的备用节点;/n在所述节点为主节点时,所述节点通过所述DFS客户端将生成的日志文件写入到分布式文件系统中的至少一个存储节点中;/n在所述节点为从节点时,所述节点通过所述DFS客户端从分布式文件系统的至少一个存储节点中读取日志文件。/n
【技术特征摘要】
1.一种状态机复制方法,其特征在于,应用于状态机复制系统中的任意一个节点,所述节点包括:日志服务模块和分布式文件系统DFS客户端,所述方法包括:
所述节点通过所述日志服务模块确定所述节点在所述状态机复制系统中的角色,所述角色为主节点或从节点,所述主节点为所述状态机复制系统的服务节点,所述从节点为所述状态机复制系统的备用节点;
在所述节点为主节点时,所述节点通过所述DFS客户端将生成的日志文件写入到分布式文件系统中的至少一个存储节点中;
在所述节点为从节点时,所述节点通过所述DFS客户端从分布式文件系统的至少一个存储节点中读取日志文件。
2.根据权利要求1所述的方法,其特征在于,所述节点通过所述DFS客户端将生成的日志文件写入到分布式文件系统中的至少一个存储节点中,包括:
所述节点通过所述DFS客户端将所述日志文件以流文件块的形式写入到所述分布式文件系统中至少一个存储节点中,每个流文件块具有预设的最大块容量。
3.根据权利要求2所述的方法,其特征在于,若所述节点为主节点,所述方法还包括:
所述节点通过所述DFS客户端确定正在写入的源存储节点出现异常时,基于封闭机制,封闭所述源存储节点;
所述节点通过所述DFS客户端与所述分布式文件系统的管理节点进行交互,确定待写入的目标存储节点;
所述节点通过所述DFS客户端将待写入所述源存储节点的日志文件写入到所述分布式文件系统中的所述目标存储节点中。
4.根据权利要求1-3任一项所述的方法,其特征在于,若所述节点为从节点,所述方法还包括:
所述节点在确定所述主节点故障时,通过自身包括的日志服务模块自动切换为所述状态机复制系统的服务节点。
5.根据权利要求1-3任一项所述的方法,其特征在于,每个节点的日志服务模块是基于所述分布式文件系统的客户端软件开发工具包封装成的lib库,所述日志服务模块具有角色确定、日志复制、日志恢复、日志压缩和成员管理功能。
6.根据权利要求1-3任一项所述的方法,其特征在于,若所述节点为主节点,在所述节点通过所述DFS客户端将生成的日志文件写入到所述分布式文件系统中的至少一个存储节点中之前,所述方法还包括:
所述节点通过所述DFS客户端与所述分布式文件系统中的管理节点进行信息交互,确定所述分布式文件系统中用于存储日志文件的所述至少一个存储节点。
7.一种状态机复制方法,其特征在于,应用于状态机复制系统中的分布式文件系统,所述分布式文件系统包括至少一个存储节点和管理节点,所述方法包括:
所述管理节点通过与主节点的DFS客户端进行交互,确定所述状态机复制系统的主节点正在写入的源存储节点出现异常,所述主节点为所述状态机复制系统中的服务节点;
所述管理节点基于负载均衡策略,确定待写入的目标存储节点,并将所述目标存储节点的标识发送给所述主节点。
8.根据权利要求7所述的方法,其特征在于,所述分布式文件系统支持如下功能:日志文件的多副本存储、日志文件的并行读写、日志文件的单节点写入模式和所述日志文件的原子操作功能。
9.一种状态机复制装置,其特征在于,应用于状态机复制系统中的任意一个节点,所述节点包括:日志服务模块和分布式文件系统DFS客户端,所述装置包括:处理模块和读写模块;
所述处理模块,用于通过所述日志服务模块确定所述节点在所述状态机复制系统中的角色,所述角色为主节点或从节点,所述主节点为所述状态机复制系统的服务节点,所述从节点为所述状态机复制系统的备用节点;
在...
【专利技术属性】
技术研发人员:赵文,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。