一种多区域多活服务的数据同步方法和装置制造方法及图纸

技术编号:21517747 阅读:87 留言:0更新日期:2019-07-03 10:04
本发明专利技术公开了一种多区域多活服务的数据同步方法和装置。方法包括以下步骤:在模型数据更新后,获取待更新的模型数据的相关信息;将相关信息序列化成中间消息体;通过REST接口将中间消息体同步到被同步端;检测中间消息体的同步结果,若中间消息体同步失败,则将其同步失败记录写入到异常同步消息队列;通过服务检测来判断是否可以向被同步端重新发送数据;若为是,则依据异常同步消息队列内的同步失败记录重新向被同步端同步相应的中间消息体。可以实现模型数据在有变更时及时同步到被同步端;且面向model层进行同步和持久化,无需手动编辑sql,维护成本低。数据变化发生端通过REST接口检测同步结果,同步异常消息在适当时机再次进行同步。

A Data Synchronization Method and Device for Multi-Area and Multi-Live Services

【技术实现步骤摘要】
一种多区域多活服务的数据同步方法和装置
本专利技术涉及通信
,尤其涉及一种多区域多活服务的数据同步方法和装置。
技术介绍
数据同步是多区域多活服务必须要考虑的问题,以保证在不同区域提供服务的一致性。数据同步最终体现在文件或数据库的同步。当主区域有数据变化时,数据同步装置把最新版本的数据按照既定同步规则同步到其他区域。但是,当从区域的数据托管在第三方云平台且该区域不支持数据库级别的数据同步服务或异源异构数据库之间进行数据同步时,就需要通过其它方法来进行数据同步。对此,主流的做法是:首先,用脚本把数据从数据库导出,至文件系统中;然后,通过脚本导入到其它需要同步的应用服务的数据库中。这种方法通常需要繁杂的配置及脚本编写调试,且对表结构一致性有严格要求。目前,数据库同步技术处理主要面向表及其属性列进行同步,在类属性变更时需要及时同步更新数据同步配置;对于定时进行数据同步的技术,不能保证数据的及时同步;采用非增量同步,先删除旧数据,再插入最新的数据,在数据集比较大的情况下,消耗带宽资源。此外,数据变化发布端先将同步数据放到消息队列中,数据变化消费端从消息队列中获取同步数据,数据变化发布端无法直接检测数据变化消费端的同步状况,数据同步失败后,数据变化发布端无法采取应对措施。
技术实现思路
针对现有技术的不足,本专利技术提出了一种多区域多活服务的数据同步方法和装置。为了实现上述目的,本专利技术技术方案如下:一种多区域多活服务的数据同步方法,包括以下步骤:S11:在模型数据更新后,获取待更新的模型数据的相关信息;S12:将所述相关信息序列化成中间消息体;S13:通过REST接口将所述中间消息体同步到被同步端;S14:检测所述中间消息体的同步结果,若所述中间消息体同步失败,则将其同步失败记录写入到异常同步消息队列;S15:通过服务检测来判断是否可以向被同步端重新发送数据;若为是,则依据异常同步消息队列内的同步失败记录重新向被同步端同步相应的所述中间消息体;若为否,则等待若干时间后,重新执行S15。进一步地,所述S14包括以下步骤:通过HTTP返回状态码,若状态码的值非200,则将其同步失败记录写入到异常同步消息队列。进一步地,所述模型数据的相关信息包括:模型名称、模型数据键值、模型数据版本、模型数据的上层类基本属性。进一步地,所述中间消息体包括:模型名称数据体、模型数据键值数据体、模型数据版本数据体、模型数据的上层类基本属性数据体,以及更新类型数据体、数据变化发生端标识数据体、模型数据变化时间数据体。一种多区域多活服务的数据同步装置,所述数据同步装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述计算机程序被所述处理器执行时实现上述中任一项所述的方法的步骤。一种多区域多活服务的数据同步方法,包括以下步骤:S21:接收数据变化发生端同步的中间消息体;所述中间消息体由数据变化发生端根据待更新的模型数据的相关信息生成;所述中间消息体包括:模型名称数据体、模型数据键值数据体、模型数据版本数据体、模型数据的上层类基本属性数据体,以及更新类型数据体、数据变化发生端标识数据体、模型数据变化时间数据体;S22:依据所述中间消息体内的模型数据键值数据体判断本地是否存在相对应的模型数据;若为是,则执行S23;若为否,则执行S25;S23:依据所述中间消息体内的模型数据版本数据体获取数据变化发生端更新后的模型数据的版本号,执行S24;S24:判断数据变化发生端更新后的模型数据的版本号是否大于本地当前的模型数据的版本号;若为是,则执行S26;若为否,则结束;S25:依据所述中间消息体创建本地相应的模型数据,执行S26;S26:依据所述中间消息体同步更新本地的模型数据。进一步地,所述S25包含以下步骤:S251:依据中间消息体内的上层类基本属性数据体判断本地是否存在模型数据的上层类;若为是,则执行S253;若为否,则执行S252;S252:依据中间消息体内的上层类基本属性数据体创建模型数据的上层类,执行S253;S253:依据中间消息体在上层类内创建本地相应的模型数据。一种多区域多活服务的数据同步装置,所述数据同步装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述计算机程序被所述处理器执行时实现上述任一项所述的方法的步骤。本专利技术的有益效果:该方法或装置可以实现模型数据在有变更时及时通过REST接口直接同步到被同步端;且面向model层进行同步和持久化,无需手动编辑sql,维护成本低;增量同步,同步效率高。此外,数据变化发生端通过REST接口检测同步结果,同步异常消息会由处理异常同步记录的调度在适当时机再次进行数据同步。附图说明图1为本专利技术多区域多活服务的数据同步方法第一实施例的流程示意图。图2为本专利技术多区域多活服务的数据同步方法第二实施例的流程示意图。具体实施方式下面结合附图和实施例,进一步阐述本专利技术。实施例1:如图1所示,一种多区域多活服务的数据同步方法,包括以下步骤S11~S15:S11:数据变化发生端在模型数据更新后,获取待更新的模型数据的相关信息。其中,模型数据的相关信息包括:模型名称(NAME)、模型数据键值(KEY)、模型数据版本(VERSION)、模型数据的上层类(Class)基本属性。模型数据是类的成员,模型数据在类的内部声明。S12:数据变化发生端将相关信息序列化成中间消息体。其中,中间消息体包括:模型名称(NAME)数据体、模型数据键值(KEY)数据体、模型数据版本(VERSION)数据体、模型数据的上层类基本属性数据体,以及更新类型(OPERATION)数据体、数据变化发生端标识(PRODUCER)数据体、模型数据变化时间(PRODUCER_TIME)数据体。下面对中间消息体包含的各数据体进行详细说明:1、模型名称(NAME)数据体:用于表示模型数据的类型名称。2、模型数据键值(KEY)数据体:用于表示模型数据的唯一标识。3、模型数据版本(VERSION)数据体:用于表示模型数据的版本编号。4、上层类基本属性数据体:上层类特指在领域层次上高于当前模型的类,比如同步汽车轮子数据时需要把汽车的属性一起序列化后进行同步,因为汽车轮子是汽车的组成部分,无法单独存在。5、更新类型(OPERATION)数据体:用于辅助描述针对有数据行删除情形下的数据同步操作。如果数据行有删除标识,无需该字段。6、数据变化发生端标识(PRODUCER)数据体:用于对数据变化发生端进行唯一标识,以便对相应同步记录进行重试、跟踪及日志记录。7、模型数据变化时间(PRODUCER_TIME)数据体:用于记录模型数据的更新时间。S13:数据变化发生端通过REST接口将中间消息体同步到被同步端。其中,RSET(ResourceRepresentationalStateTransfer,资源表现形式状态转移)接口用于客户端与服务器之间交互的接口,是构建API时需要遵守的一种规则。其中,资源是指数据;表现形式可以是JSON、XML、JPEG等;状态转移可以通过HTTP来实现。REST接口通过HTTP协议、URL(统一资源定位符)和参数,利用客户端/服务器模式来访问某个服务,完成一些列业务请求,进行本文档来自技高网...

【技术保护点】
1.一种多区域多活服务的数据同步方法,其特征在于:包括以下步骤:S11:在模型数据更新后,获取待更新的模型数据的相关信息;S12:将所述相关信息序列化成中间消息体;S13:通过REST接口将所述中间消息体同步到被同步端;S14:检测所述中间消息体的同步结果,若所述中间消息体同步失败,则将其同步失败记录写入到异常同步消息队列;S15:通过服务检测来判断是否可以向被同步端重新发送数据;若为是,则依据异常同步消息队列内的同步失败记录重新向被同步端同步相应的所述中间消息体;若为否,则等待若干时间后,重新执行S15。

【技术特征摘要】
1.一种多区域多活服务的数据同步方法,其特征在于:包括以下步骤:S11:在模型数据更新后,获取待更新的模型数据的相关信息;S12:将所述相关信息序列化成中间消息体;S13:通过REST接口将所述中间消息体同步到被同步端;S14:检测所述中间消息体的同步结果,若所述中间消息体同步失败,则将其同步失败记录写入到异常同步消息队列;S15:通过服务检测来判断是否可以向被同步端重新发送数据;若为是,则依据异常同步消息队列内的同步失败记录重新向被同步端同步相应的所述中间消息体;若为否,则等待若干时间后,重新执行S15。2.根据权利要求1所述的多区域多活服务的数据同步方法,其特征在于:所述S14包括以下步骤:通过HTTP返回状态码,若所述状态码的值非200,则将其同步失败记录写入到异常同步消息队列。3.根据权利要求1所述的多区域多活服务的数据同步方法,其特征在于:所述模型数据的相关信息包括:模型名称、模型数据键值、模型数据版本、模型数据的上层类基本属性。4.根据权利要求3所述的多区域多活服务的数据同步方法,其特征在于:所述中间消息体包括:模型名称数据体、模型数据键值数据体、模型数据版本数据体、模型数据的上层类基本属性数据体,以及更新类型数据体、数据变化发生端标识数据体、模型数据变化时间数据体。5.一种多区域多活服务的数据同步方法,其特征在于:包括以下步骤:S21:接收数据变化发生端同步的中间消息体;所述中间消息体由数据变化发生端根据待更新的模型数据的相关信息生成;所述中间消息体包括:模型名称数据体、模型数据键值数据体、模型数据版本数据体、模型数据的上层类基本属性...

【专利技术属性】
技术研发人员:张伟曾希柳
申请(专利权)人:珠海全志科技股份有限公司
类型:发明
国别省市:广东,44

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

1