一种数据同步方法及相关装置制造方法及图纸

技术编号:19487125 阅读:49 留言:0更新日期:2018-11-17 11:35
本申请公开了一种应用于集群主节点的数据同步方法,可以在利用SQL语句更新数据信息时,将SQL语句生成消息记录,并将消息记录利用消息队列发送到从节点,是从节点按照该SQL语句同步更新自己的数据库,从而使主节点的数据更新与从节点的数据更新可以达到内容同步。此外,由于使用消息队列来传递消息记录,可以屏蔽地层通信协议的复杂性,更方便有效的实现主节点与从节点数据的同步。本申请还提供了一种应用于集群从节点的数据同步方法、集群主节点系统、集群从节点系统,同样可以实现上述技术效果。

【技术实现步骤摘要】
一种数据同步方法及相关装置
本专利技术涉及分布式集群
,更具体地说,涉及一种数据同步方法、集群主节点、集群从节点。
技术介绍
分布式系统一般包含多个节点,这些节点组成一个集群,统一对外提供服务。集群管理软件在主节点上通过数据库存储集群的配置信息等内容,鉴于这些配置类型的数据较少,并且读写频率较低,因此只需要一种轻量级的数据库进行存储即可,进而能狗减少管理软件对主节点的系统资源占用。目前,由于sqlite数据库占用空间小、简单易行的特点,通常采用sqlite作为集群管理软件的数据库。但是由于分布式集群管理软件需要在其他节点备份主节点的数据库内容,以便主节点出现宕机,管理软件发生主备切换后,数据信息不丢失,实现灾备等功能。而sqlite作为一个单文件数据库,没有提供在多节点见进行数据同步的功能。因此,如何在使用sqlite数据库时实现主节点与从节点之间的数据同步,是本领域技术人员需要解决的问题。
技术实现思路
本专利技术的目的在于提供一种数据同步方法、集群主节点、集群从节点,以解决如何在使用sqlite数据库时实现主节点与从节点之间的数据同步的问题。为实现上述目的,本专利技术实施例提供了如下技术方案:一种数据同步方法,应用于集群主节点,包括:利用SQL语句更新数据库信息时,生成包括所述SQL语句的消息记录;将所述消息记录发送至消息队列;利用所述消息队列将所述消息记录发送至集群从节点;其中,所述集群从节点用于在所述消息记录中确定所述SQL语句,并利用所述SQL语句同步更新所述集群从节点的数据库信息。其中,所述SQL语句对应的数据持久化与包括所述SQL语句的消息记录生成在一个数据库事务中。其中,所述将所述消息记录发送至消息队列,包括:利用消息发布模块接收与所述消息记录对应的变更通知后,将所述消息记录发送至所述消息队列;其中,所述变更通知为生成所述消息记录时,向所述消息发布模块发送的通知。其中,还包括:间隔第一预设时间扫描消息列表;其中,所述消息列表为,生成包括每个SQL语句的消息记录时,保存对应的消息记录的列表;在所述消息列表中确定未发送到所述消息队列的消息记录,作为待发送记录;将所述待发送记录发送至所述消息队列。其中,所述利用所述消息队列将所述消息记录发送至集群从节点之后,还包括:利用所述消息队列将所述消息记录发送至集群从节点之后第二预设时间内,判断是否接收到所述集群从节点发送的确认信息;若是,则将所述消息记录在所述消息队列中删除;若否,则重新利用所述消息队列将所述消息记录发送至所述集群从节点。为解决上述技术问题,本申请还提供了一种数据同步方法,应用于集群从节点,包括:接收由集群主节点的消息队列发送的消息记录;其中,所述消息记录为,所述集群主节点利用SQL语句更新数据库信息时,生成的包括所述SQL语句的消息记录;利用所述消息记录中的SQL语句同步更新数据库信息。其中,所述消息记录包括:SQL语句、与所述SQL语句对应的标识信息。其中,所述利用所述消息记录中的SQL语句同步更新数据库信息,包括:利用所述消息记录中的SQL语句对应的标识信息确定所述消息记录中的SQL语句是否为已被处理过的SQL语句;若是,则将所述消息记录丢弃,向所述集群主节点返回确认信息;若否,则利用所述消息记录中的SQL语句同步更新数据库信息,并向所述集群主节点返回确认信息。为解决上述技术问题,本申请还提供了一种集群主节点系统,包括:消息记录生成模块,用于利用SQL语句更新数据库信息时,生成包括所述SQL语句的消息记录;第一发送模块,用于将所述消息记录发送至消息队列;第二发送模块,用于利用所述消息队列将所述消息记录发送至集群从节点;其中,所述集群从节点用于在所述消息记录中确定所述SQL语句,并利用所述SQL语句同步更新所述从节点的数据库信息。为解决上述技术问题,本申请还提供了一种集群从节点系统,包括:接收模块,用于接收由集群主节点的消息队列发送的消息记录;其中,所述消息记录为,所述集群主节点利用SQL语句更新数据库信息时,生成的包括所述SQL语句的消息记录;更新模块,用于利用所述消息记录中的SQL语句同步更新数据库信息。通过以上方案可知,本申请提供的一种数据同步方法,应用于集群主节点,包括:利用SQL语句更新数据库信息时,生成包括所述SQL语句的消息记录;将所述消息记录发送至消息队列;利用所述消息队列将所述消息记录发送至集群从节点;其中,所述集群从节点用于在所述消息记录中确定所述SQL语句,并利用所述SQL语句同步更新所述集群从节点的数据库信息。由此可见,本申请提供的一种数据同步方法,可以在利用SQL语句更新数据信息时,将SQL语句生成消息记录,并将消息记录利用消息队列发送到从节点,是从节点按照该SQL语句同步更新自己的数据库,从而使主节点的数据更新与从节点的数据更新可以达到内容同步。此外,由于使用消息队列来传递消息记录,可以屏蔽地层通信协议的复杂性,更方便有效的实现主节点与从节点数据的同步。本申请还提供了一种应用于集群从节点的数据同步方法、集群主节点系统、集群从节点系统,同样可以实现上述技术效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例公开的一种应用于集群主节点的数据同步方法流程图;图2为本专利技术实施例公开的一种具体的应用于集群主节点的数据同步方法流程图;图3为本专利技术实施例公开的一种集群主节点系统结构示意图;图4为本专利技术实施例公开的一种具体的集群主节点系统结构示意图;图5为本专利技术实施例公开的一种集群主节点结构示意图;图6为本专利技术实施例公开的一种应用于集群从节点的数据同步方法流程图;图7为本专利技术实施例公开的一种集群从节点系统结构示意图;图8为本专利技术实施例公开的一种集群从节点结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例公开了一种数据同步方法、集群主节点、集群从节点,以解决如何在使用sqlite数据库时实现主节点与从节点之间的数据同步的问题。参见图1,本专利技术实施例提供的一种数据同步方法,应用于集群主节点,具体包括:S101,利用SQL语句更新数据库信息时,生成包括所述SQL语句的消息记录。具体地,集群主节点在使用sqlite数据库管理集群的配置信息等内容时,会利用SQL语句更新数据库信息,例如,增加、修改、删除某一个数据表中的某一项配置信息数据。在本方案中,在集群主节点利用SQL语句更新数据库信息的同时,生成一条消息记录,该消息记录用来记录此次更新操作的SQL语句。在一个优选实施方式中,将利用SQL语句更新数据库的数据持久化和生成对应的消息记录的操作,生成在一个数据库事务中。需要说明的是,数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存本文档来自技高网...

【技术保护点】
1.一种数据同步方法,其特征在于,应用于集群主节点,包括:利用SQL语句更新数据库信息时,生成包括所述SQL语句的消息记录;将所述消息记录发送至消息队列;利用所述消息队列将所述消息记录发送至集群从节点;其中,所述集群从节点用于在所述消息记录中确定所述SQL语句,并利用所述SQL语句同步更新所述集群从节点的数据库信息。

【技术特征摘要】
1.一种数据同步方法,其特征在于,应用于集群主节点,包括:利用SQL语句更新数据库信息时,生成包括所述SQL语句的消息记录;将所述消息记录发送至消息队列;利用所述消息队列将所述消息记录发送至集群从节点;其中,所述集群从节点用于在所述消息记录中确定所述SQL语句,并利用所述SQL语句同步更新所述集群从节点的数据库信息。2.根据权利要求1所述的方法,其特征在于,所述SQL语句对应的数据持久化与包括所述SQL语句的消息记录生成在一个数据库事务中。3.根据权利要求1所述的方法,其特征在于,所述将所述消息记录发送至消息队列,包括:利用消息发布模块接收与所述消息记录对应的变更通知后,将所述消息记录发送至所述消息队列;其中,所述变更通知为生成所述消息记录时,向所述消息发布模块发送的通知。4.根据权利要求1至3任意一项所述的方法,其特征在于,还包括:间隔第一预设时间扫描消息列表;其中,所述消息列表为,生成包括每个SQL语句的消息记录时,保存对应的消息记录的列表;在所述消息列表中确定未发送到所述消息队列的消息记录,作为待发送记录;将所述待发送记录发送至所述消息队列。5.根据权利要求4任意一项所述的方法,其特征在于,所述利用所述消息队列将所述消息记录发送至集群从节点之后,还包括:利用所述消息队列将所述消息记录发送至集群从节点之后第二预设时间内,判断是否接收到所述集群从节点发送的确认信息;若是,则将所述消息记录在所述消息队列中删除;若否,则重新利用所述消息队列将所述消息记录发送至所述集群从节点。6.一种数据同步方法...

【专利技术属性】
技术研发人员:李昂
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1