一种基于LRPaxos算法的高可用分布式系统及方法

文档序号:37293691发布日期:2024-03-13 20:42阅读:23来源:国知局
一种基于LRPaxos算法的高可用分布式系统及方法

本发明属于分布式系统构建,具体涉及一种基于lrpaxos算法的高可用分布式系统及方法。


背景技术:

1、实现分布式系统高可用的主要技术是数据复制。通过在多个节点上存储相同的数据,当某个节点发生故障或者网络延迟时,用户仍然可以从其他节点上读取或写入数据,而不会影响整个系统的运行和数据的访问,并且当用户对分布式系统进行读写操作时,用户可以从任意一个节点上读取或写入数据,而不需要考虑节点是否在线或者是否发生故障,从而提高了系统的可用性。

2、然而多副本的存在也给如何在跨地域不同副本之间实现数据的同步和更新带来了挑战。数据一致性可以根据分布式存储系统是否允许用户读取过期或者脏数据,分为强数据一致性和弱数据一致性,分别表示多个节点上备份的相同数据在任何时刻都是相同的或者最终达成一致。为保证分布式系统数据强一致性,现在有多种实现方案。其中主从同步复制策略是指主节点在执行完客户端提交的事务后,需要等待所有或者大多数从节点都接收并处理该事务后,才将结果返回给客户端。这样可以保证主从节点上的数据始终一致,但是会牺牲系统的可用性和性能,因为如果某个从节点发生故障或者网络延迟,就会导致整个系统阻塞或者超时。所以随着互联网技术的飞速进步和用户需求的日益增加,为了保证系统的高可用性和数据的快速访问,必须提出一种高效的、高可扩展的数据一致性共识协议。

3、面对该挑战,工业界普遍使用基于消息传递的分布式一致性算法(paxos算法),paxos算法能够在异步系统中容忍节点故障和消息丢失。其目的是在一个可能发生节点故障或者消息丢失的分布式系统中,如何就某个值(决议)达成共识。paxos协议运行在允许消息重复、延迟、乱序,但没有拜占庭错误的网络环境中,它利用大多数(majority)机制保证了2f+1的容错能力,即2f+1个节点的系统最多允许f个节点同时出现故障。paxos协议分为两个阶段:prepare阶段和accept阶段,涉及到三种角色:proposer(提议者),acceptor(接受者)和learner(学习者)。proposer负责提出提案,包括一个编号和一个值;acceptor负责接受或拒绝提案,并根据编号大小和已批准的提案来决定;learner负责学习被批准的提案,并最终达成一致。paxos协议通过一系列的约束条件来保证数据的强一致性,即只有一个值被批准,并且所有节点都能获得被批准的值。

4、传统paxos协议中如果领导者出现宕机或网络分区等单点故障,整个集群就一直无法对某个提案达成共识,直到选出一个新的提议者。这就降低了协议的可用性和容错性。第二,由于提议者需要与所有的接受者进行两轮通信很容易成为通信的单点性能瓶颈,这就限制了协议的吞吐量和延迟。第三,提议者的选举开销会增加协议的复杂度和开销。当提议者发生故障或网络分区时,需要通过一个额外的选举过程来选出一个新的提议者。这个过程可能需要多轮投票和超时机制,增加了协议的复杂度和开销。第四,面对现在云边端协同的异构网络环境,没有考虑其所属的网络环境特点,网络因素会很大程度影响共识协议的性能。导致现有的方法不具备良好的性能和可扩展性。


技术实现思路

1、针对现有技术的不足,本发明设计一种基于lrpaxos算法的高可用分布式系统及方法;提供了一套能够有效避免单一领导者节点的性能阈值成为分布式系统的性能瓶颈风险的方案,更好的平衡了各个节点的负载和资源利用率,以提高分布式系统的容错性和可用性,并且能够解决异构环境下的分布式系统数据同步问题。

2、一种基于lrpaxos算法的高可用分布式系统由管理员模块和系统用户模块组成;

3、所述管理员模块负责日志落盘及分析、集群性能分析和一致性保证,分别由系统管理模块、结果记录模块、一致性算法模块三部分组成;

4、系统管理模块:负责系统的日志管理和系统参数管理,包括节点的加入、退出、故障检测和恢复;日志会记录一致性过程中的集群节点分组状态、领导者节点编号、集群间节点传递的网络rpc请求,当系统出现宕机崩溃时,通过回放日志进行状态回复,保证集群节点的数据有效性、一致性;系统参数管理记录系统运行中内存、cpu利用率、网络带宽利用率参数的数据,支持实时采样,并以数据表格的形式持久化在硬盘中;

5、结果记录模块:负责记录分布式系统的操作日志,包括数据的更新、查询、删除;该模块包括两个功能:标记结果功能,在系统完成客户端发送数据并对所有数据进行同步之后,以json格式记录每一个时间段下系统处理的消息条数、成功消息数、失败消息数、消息同步时延;上传结果功能是获得结果之后通过网络返回给系统,系统经过传输呈现给用户界面;

6、一致性算法模块:负责保证分布式系统的数据一致性,即在不同的节点上,数据的状态是相同的;采用基于领导者轮询的lrpaxos算法,完成选举集群中的领导者任务;推选出一个合法的提案,并将该提案复制至所有节点,最后完成状态更新;

7、所述系统用户模块负责系统的可视化、承担与系统用户的交互和记录系统用户操作和信息的功能;由分布式集群选择模块和客户端节点选择两部分构成;

8、分布式集群选择模块:负责接收系统用户的配置参数,包括节点数量、节点ip通信地址、节点资源配置信息、客户端ip地址;将这些参数传递给系统管理模块,以便初始化分布式系统;包括以下两个功能:集群节点数量的设定,该功能设置了集群中节点的数量,也为集群节点具体参数设定定下了标准,用户通过了解节点的网络通信,就能通过链接控制集群节点配置分布式一致性环境,进而模拟分布式集群数据复制的情况;

9、客户端节点选择:负责展示分布式系统的运行状态,包括节点的状态、数据的分布、操作的执行;还负责记录系统用户的操作和信息,以便进行分析和优化;用户知道自己所需的数据在哪个些客户端节点上,为此根据请求的数据位置使用贪心策略选择通信代价最小的客户端作为当前请求的客户端与集群做数据同步;该功能选择性能和地理位置不同的节点作为客户端,这更加真实的模拟了真实情况;

10、所述基于领导者轮询的lrpaxos算法是对paxos算法改进而提出;lrpaxos算法分为两个阶段,第一阶段领导者选举,第二阶段提案选举复制;该算法与传统的paxos算法的区别在于,第一阶段的领带者选举,不是随机选择领导者节点,而是根据节点的负载情况进行选择,算法基于领导者节点满负载后会影响系统的性能这一假设;

11、该算法在集群中引入一个控制节点,负责监测领导者节点的负载,并在节点达到满负载之前动态地更换领导者节点;

12、控制节点是一个额外引入的节点,不参与集群消息的传递和处理,只负责监测集群节点的状态,并根据领导者节点的负载情况,选择下一个工作负载低的节点作为领导者;控制节点通过心跳包的方式定时监测集群内所有节点的状态,故每10秒广播监控请求,防止频繁与节点通信;

13、当领导者节点出现失效的情况,控制节点会使用消息广播来避免传统paxos算法使用心跳机制出现的平票和高通信代价的情况,以及当领导者候选节点在被选为领导者后突然失败,导致系统不可用的情况,lrpaxos算法采用两轮通信的方式确保选择的领导者不会失败;

14、第一阶段领导者选举完成后,进入第二阶段,领导者向集群中所有节点发送节点编号、消息编号和要同步消息的值;如果收到大于半数节点回复同意,就停止收集其他节点的信息,结束第二阶段判定提案协商成功,算法结束;如果超过一段时间没有收到大于半数节点同意的消息,判定失败需要重试协商;

15、一种基于lrpaxos算法的高可用分布式方法,基于上述一种基于lrpaxos算法的高可用分布式系统实现,具体包括以下步骤:

16、步骤一:利用分布式集群选择模块选择分布式集群数量,确定需要使用多少个分布式节点来构建分布式集群;用户分别输入集群内节点的ip地址,开放集群内每个节点8080出入方向的安全组,以此保证集群内节点之间能够互相通信;在用户在配置集群的过程中,需要为每个节点指定一个唯一的ip地址,以便于在网络中识别和访问;

17、步骤二:用户利用客户端节点选择模块确定请求客户端的ip地址,在使用集群的过程中,需要在第一步输入的节点中指定一个或多个客户端来向集群发送请求和接收响应;

18、步骤三:利用一致性算法模块,首先以守护进程的方式开启一个控制节点;并启动lrpaxos算法,算法的第一阶段选举出当前集群的领导者,在客户端接收到消息后,便会将消息传递至集群中的领导者节点,之后执行算法的第二阶段,进行提案的协商;

19、步骤四:当lrpaxos两个阶段完成后,超过半数的节点达成了共识,也即选定了一个提案proposal,该提案包含了一个全局唯一的编号和一个需要执行的操作;

20、为了让选定的提案的操作生效,需要在每个节点上执行相应的更新数据、执行事务的命令;通过让每个节点根据选定提案的内容,调用相应的状态转换函数来进行命令转换;

21、为了保证数据的可追溯性和可恢复性,需要将选定提案的操作以及执行结果记录到日志中,以便于在出现故障或异常时,查看或恢复数据的状态;具体通过让每个节点在执行完命令后,将选定的提案的编号和操作,以及执行的结果,写入到日志系统中来实现;

22、步骤五,系统管理模块对节点间的交互信息进行存储与分析,对每一条操作的共识结果和共识时间进行统计,并以json格式保存在数据库中;同时,还会对系统的性能指标进行监测,包括系统的吞吐量、平均延迟、延迟中位数,并记录集群内各个节点的运行状态信息;

23、步骤六,结果记录模块给用户展示消息同步结果;展示的信息有同步是有已经完成、处理消息的数量、成功消息的数量、失败消息的数量和运行的所用时间。

24、本发明有益技术效果:

25、本发明采用了领导者轮询机制实现了动态选择并更换新的领导者,避免了单一领导者节点成为整体分布式系统性能瓶颈或故障点的风险。提高了系统的容错性和可用性,同时平衡各个节点的负载和资源利用率;还引入了一个集群性能检测节点,避免了领导者长时间处于高负荷状态,实现了集群节点的负载均衡。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1