一种强一致性且高可用的分布式任务管理系统的制作方法【
技术领域:
】[0001]本发明涉及分布式数据库系统领域,尤其是涉及一种强一致性且高可用的分布式任务管理系统。【
背景技术:
】[0002]在信息技术和数据管理领域,备份技术是一种重要的技术手段,用来解决生产服务器系统及之上的应用出现故障等情况下恢复其可用性。随着数据信息呈爆炸式地增长,单节点的备份存储、柜式的备份服务器系统无法更好地解决海量数据更快地备份与恢复的问题。因此分布式结构的备份系统便应运而生。[0003]备份系统的分布式结构应该能够提供7*24的高可靠且高可用性服务,然而在多节点的集群情况下,单节点失效是无法避免的。因此,当前存在主从结构的系统架构与多副本策略用来保证系统的高可靠性与高可用性。然而主从结构的系统架构,主节点与从节点之间无法解决2个以上节点失效的问题,也无法提供强一致性保证;而对于多副本策略的分布式系统,有些只能够提供最终一致性保证如Amazon的Dynamo,有些则需要借助于能够提供强一致性保证的分布式文件系统,如Google的Bigtable依靠GFS文件系统解决强一致性,这样导致开销比较大。【
发明内容】[0004]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种开销较小的强一致性且高可用的分布式任务管理系统,可解决分布式数据备份系统下,备份任务的管理信息与备份任务在分布式情况下一致性协调等问题。[0005]本发明的目的可以通过以下技术方案来实现:[0006]—种强一致性且高可用的分布式任务管理系统,包括通过网络连接的Web后端模块和备份服务器集群,所述备份服务器集群由多个备份服务器组成,各所述备份服务器包括依次连接的一致性模块、日志模块和存储模块,其中:[0007]—致性模块,通过选举方式成为Leader角色或Follower角色,若成为Leader角色,则接收Web后端模块发送的日志信息并广播,若成为Follower角色,则接收Leader角色广播的日志信息并响应该日志信息;[0008]日志模块,用于保存接收到的日志信息,并将接收到的日志信息提交到存储模块。[0009]所述一致性模块包括:[0010]定时器单元,用于设定一超时定时器并启动;[0011]选举信息广播单元,在所述超时定时器超时时响应,用于产生并广播选举为Leader角色的信息,并接收其它一致性模块的反馈信息,根据所述反馈信息判断是否成功成为Leader角色;[0012]日志广播单元,在选举信息广播单元的判断结果为是时响应,用于广播Web后端模块发送的日志信息;[0013]信息反馈单元,用于在收到其它一致性模块广播的信息后进行相应反馈;[0014]逻辑时间操作单元,在所述超时定时器超时时响应,用于获取当前逻辑时间Term,并根据当前逻辑时间Term的值执行相应操作。[0015]所述选举信息广播单元中,当在设定时间内接收的半数以上反馈信息为同意时,判定为成功成为Leader角色。[0016]所述逻辑时间操作单元中的相应操作包括:[0017]A)超时定时器超时时,将当前逻辑时间Term的值执行加I操作后作为当前逻辑时间Term,整合入选举信息广播单元产生的选举为Leader角色的信息中;[0018]B)当检测到其它一致性模块广播的选举为Leader角色的信息时,判断该信息中的逻辑时间Term是否大于操作A)中获取的当前逻辑时间Term,若是,则将一致性模块变为Follower角色,若否,则反馈拒绝信息。[0019]所述信息反馈单元收到的信息包括响应选举为Leader角色的信息的反馈信息和响应日志信息的确认信息。[0020]所述日志模块包括:[0021]日志存储单元,用于存储接收到的日志信息;[0022]日志提交单元,用于在收到确认提交信息后,将接收到的日志信息提交到存储模块;[0023]日志删除单元,用于删除小于设定记录的日志信息。[0024]所述设定记录根据如下方式获取:[0025]Leader角色获取各Follower角色提交日志信息的最小记录,以所述最小记录作为相应Follower角色的设定记录。[0026]所述存储模块包括LeveIDB存储和Mysql数据库。[0027]所述日志模块将接收到的日志信息提交到存储模块具体为:[0028]将SQL操作日志提交到Mysql数据库,将锁操作日志和事件操作日志提交到LeveIDB存储。[0029]所述Web后端模块将SQL操作、锁操作和事件操作分别对应封装为SQL操作日志、锁操作日志和事件操作日志后发送给Leader角色,Web后端模块将数据库查询操作直接提交到Leader角色对应的存储模块。[0030]与现有技术相比,本发明具有以下有益效果:[0031]1、本发明通过选举方式产生一个Leader节点,由Leader节点领导其它节点实现分布式存储,少于半数节点的失效都不会破坏整个集群正常的运行,备份任务可以在不受影响的情况下正常工作,可实现一个高可靠性与高可用性的分布式系统。[0032]2、本发明可实现一个强一致性的分布式系统,对系统的任何操作一经写入立即生效,不需要复杂的冲突避免和解决机制。[0033]3、本发明通过日志复制的方式解决多节点强一致性和高可用问题,不需要借助能够提供强一致性保证的分布式文件系统,有效减少开销。[0034]4、本发明在每个时期仅存在一个Leader节点,有效提高了数据处理的可靠性。【附图说明】[0035]图1为本发明Web后端模块与Leader角色的交互示意图;[0036]图2为本发明选举状态转换示意图;[0037]图3为本发明系统的基本工作流程图。【具体实施方式】[0038]下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。[0039]本实施例提供一种强一致性且高可用的分布式任务管理系统,包括通过网络连接的Web后端模块I和备份服务器集群,Web后端模块I中的Web后端管理程序能够使用的方式包括:关系型数据库的SQL操作、分布式的锁操作和分布式的事件操作。本实施例中,备份服务器集群由至少三个备份服务器组成,每一备份服务器为一节点,各备份服务器的结构如图1所示,包括依次连接的一致性模块21、日志模块22和存储模块,存储模块包括LevelDB存储23和Mysql数据库24。[0040]各备份服务器中,一致性模块21通过选举方式成为Leader角色或Follower角色,若成为Leader角色,则接收Web后端模块发送的日志信息并广播,若成为Follower角色,贝Ij接收Leader角色广播的日志信息并响应该日志信息;日志模块22用于保存接收到的日志信息,并将接收到的日志信息提交到存储模块。Leader角色负责与Web后端模块通信并操作本地的日志模块,且同一个时刻最多存在一个;Follower角色被动地响应远程调用请求和操作本地的日志模块。[0041]—致性模块21包括定时器单元、选举信息广播单元、日志广播单元、信息反馈单元和逻辑时间操作单元,其中,定时器单元用于设定一超时定时器并启动;选举信息广播单元在超时定时器超时时响应,用于产生并广播选举为Leader角色的信息,并接收其它一致性模块的反馈信息,根据反馈信息判断是否成功成为Leader角色;日志广播单元在选举信息广播单元的判断结果为是时响应,用于广播Web后端模块发送的日志信息;信息反馈单元用于在收到其它一致性模块广播的信息后进行相应反馈;逻辑时间操作单元在超时定时器超时时响应,用于获取当前逻辑时间Term,并根据当前逻辑时间Term的值执行相应操作。[0042]逻辑时间Term可以在分布式系统环境中解决时间同步问题,每个Term期间最多存在一个Leader,每次操作都要本地Term加I,其它节点通过Term变量判断接收的信息是否为过期信息。逻辑时间操作单元中的相应操作包括:[0043]A)超时定时器超时时,将当前逻辑时间Term的当前第1页1 2