一种数据同步方法、装置、电子设备和存储介质制造方法及图纸

技术编号:31227935 阅读:24 留言:0更新日期:2021-12-08 09:37
本发明专利技术实施例公开了一种数据同步方法、装置、电子设备和存储介质。该方法包括从数据库的日志文件中读取数据更新事件信息;将所述数据更新事件信息进行解析,获得至少一个行数据,为各所述行数据分别分配唯一性标识;其中,各所述行数据分别包含一项数据更新操作数据;生成至少一个包含所述行数据和所述行数据对应的唯一性标识的同步消息,将所述同步消息发送至存储单元中进行存储,以使业务端在从所述存储单元中获取所述同步消息后根据所述同步消息中的唯一性标识确定所述同步消息是否为重复消息。通过本发明专利技术实施例的技术方案,使业务处理不需要幂等操作也可以实现消息精准去重,减小了业务端操作的复杂度,并且提升了消息去重的准确性。息去重的准确性。息去重的准确性。

【技术实现步骤摘要】
一种数据同步方法、装置、电子设备和存储介质


[0001]本专利技术实施例涉及数据操作技术,尤其涉及一种数据同步方法、装置、电子设备和存储介质。

技术介绍

[0002]互联网业务中有一些业务场景需要将数据库(比如MySQL)中的数据变化同步给业务端。基于binlog的数据同步是MySQL实时同步数据变化常用的方式。具体实现方式是同步服务实时抽取MySQL的binlog事件,解析后将消息发送到一个流式存储单元比如消息队列(MQ)中,下游业务通过消费流式存储单元中的消息获取数据变化。
[0003]在实现本专利技术的过程中,专利技术人发现现有技术中至少存在如下问题:
[0004]对于有些业务,需要保证一个消息只被业务端处理一次,因此需要一种消息去重的方法。目前的去重方式大概有两种:第一种是业务端采用幂等去重方案来实现,这种方式在业务端需要增加额外的幂等处理操作,增加了业务实现的难度。第二种是通过binlog文件名和binlog文件偏移去重,具体是同步服务发送给MQ的消息中携带binlog文件名和binlog文件偏移,业务端从MQ获取到各条消息后可以缓存其中携带的binlog文件名和binlog文件偏移,如果当前消息中携带的binlog文件名和binlog文件偏移已经存在于缓存中,则认为当前消息已经被处理过,不再对当前消息进行处理。采用这种方式实现消息去重的准确度较低。

技术实现思路

[0005]本专利技术实施例提供了一种数据同步方法、装置、电子设备和存储介质,以提升消息去重的准确性。
[0006]第一方面,本专利技术实施例提供了一种数据同步方法,该方法包括:
[0007]从数据库的日志文件中读取数据更新事件信息;
[0008]将所述数据更新事件信息进行解析,获得至少一个行数据,为各所述行数据分别分配唯一性标识;其中,各所述行数据分别包含一项数据更新操作数据;
[0009]生成至少一个包含所述行数据和所述行数据对应的唯一性标识的同步消息,将所述同步消息发送至存储单元中进行存储,以使业务端在从所述存储单元中获取所述同步消息后根据所述同步消息中的唯一性标识确定所述同步消息是否为重复消息。
[0010]第二方面,本专利技术实施例还提供了一种数据同步方法,该方法包括:
[0011]从存储单元中获取同步消息;其中,所述同步消息是服务端对从数据库的日志文件中读取的数据更新事件信息进行解析,获得至少一个行数据,并为各所述行数据分别分配唯一性标识后,生成的至少一个包含所述行数据和所述行数据对应的唯一性标识的同步消息;各所述行数据分别包含一项数据更新操作数据;
[0012]对所述同步消息进行解析,获得唯一性标识,确定缓存单元中是否保存有所述唯一性标识;
[0013]若是,则确定所述同步消息为重复消息,放弃对所述同步消息进行处理;否则,确定所述同步消息不为重复消息,对所述同步消息进行处理,并将所述唯一性标识保存至所述缓存单元。
[0014]第三方面,本专利技术实施例还提供了一种数据同步装置,该装置包括:
[0015]信息读取模块,用于从数据库的日志文件中读取数据更新事件信息;
[0016]信息解析模块,用于将所述数据更新事件信息进行解析,获得至少一个行数据,为各所述行数据分别分配唯一性标识;其中,各所述行数据分别包含一项数据更新操作数据;
[0017]信息确定模块,用于生成至少一个包含所述行数据和所述行数据对应的唯一性标识的同步消息,将所述同步消息发送至存储单元中进行存储,以使业务端在从所述存储单元中获取所述同步消息后根据所述同步消息中的唯一性标识确定所述同步消息是否为重复消息。
[0018]第四方面,本专利技术实施例还提供了一种电子设备,所述电子设备包括:
[0019]一个或多个处理器;
[0020]存储装置,用于存储一个或多个程序,
[0021]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术任意实施例提供的数据同步方法。
[0022]第五方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本专利技术任意实施例提供的数据同步方法。
[0023]第六方面,本专利技术实施例还提供了一种数据同步系统,该系统包括:
[0024]服务端,用于从数据库的日志文件中读取数据更新事件信息;将所述数据更新事件信息进行解析,获得至少一个行数据,为各所述行数据分别分配唯一性标识;生成至少一个包含所述行数据和所述行数据对应的唯一性标识的同步消息,将所述同步消息发送至存储单元中进行存储;其中,各所述行数据分别包含一项数据更新操作数据;
[0025]业务端,用于从所述存储单元中获取所述同步消息;对所述同步消息进行解析,获得唯一性标识,确定缓存单元中是否保存有所述唯一性标识;若是,则确定所述同步消息为重复消息,放弃对所述同步消息进行处理;否则,确定所述同步消息不为重复消息,对所述同步消息进行处理,并将所述唯一性标识保存至所述缓存单元。
[0026]上述专利技术中的实施例具有如下优点或有益效果:
[0027]本专利技术实施例通过从数据库的日志文件中读取数据更新事件信息;将所述数据更新事件信息进行解析,获得至少一个行数据,为各所述行数据分别分配唯一性标识;其中,各所述行数据分别包含一项数据更新操作数据;生成至少一个包含所述行数据和所述行数据对应的唯一性标识的同步消息,将所述同步消息发送至存储单元中进行存储,以使业务端在从所述存储单元中获取所述同步消息后根据所述同步消息中的唯一性标识确定所述同步消息是否为重复消息,从而实现消息的精准去重。解决了现有技术中业务处理需要幂等操作难度大和因为相同binlog文件名和偏移可能对应多个MQ消息导致消息去重准确度低的问题,实现了减小业务端操作的复杂度,并且提升消息去重的准确性的效果。
附图说明
[0028]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0029]图1是本专利技术实施例一提供的数据同步方法的流程示意图;
[0030]图2是本专利技术实施例一提供的MySQL实例的数据库表示意图;
[0031]图3是本专利技术实施例一提供的业务端消息消费示意图;
[0032]图4为本专利技术实施例二提供的数据同步方法的流程图;
[0033]图5为本专利技术实施例三提供的数据同步方法的流程图;
[0034]图6为本专利技术实施例四提供的数据同步装置的结构示意图;
[0035]图7为本专利技术实施例五提供的电子设备的结构示意图;
[0036]图8为本专利技术实施例七提供的数据同步系统的结构示意图。
具体实施方式
[0037]下面结合附图和实施例对本专利技术作进一步的详细本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:从数据库的日志文件中读取数据更新事件信息;将所述数据更新事件信息进行解析,获得至少一个行数据,为各所述行数据分别分配唯一性标识;其中,各所述行数据分别包含一项数据更新操作数据;生成至少一个包含所述行数据和所述行数据对应的唯一性标识的同步消息,将所述同步消息发送至存储单元中进行存储,以使业务端在从所述存储单元中获取所述同步消息后根据所述同步消息中的唯一性标识确定所述同步消息是否为重复消息。2.根据权利要求1所述的方法,其特征在于,将所述同步消息发送至存储单元中进行存储,包括:通过多个线程将生成的至少一个同步消息,并行发送至存储单元中进行存储。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:定时将当前发送至所述存储单元的同步消息中包含的行数据在日志文件中的位置标识信息、以及所述行数据对应的唯一性标识作为一条快照信息保存在快照文件中。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:在接收到任务重启请求时,从所述快照文件中读取保存的最后一条快照信息;确定所述最后一条快照信息中的位置标识信息在所述日志文件中的对应位置,从该对应位置处开始继续读取所述日志文件中的数据更新事件信息,并根据所述最后一条快照信息中的唯一性标识为继续读取的数据更新事件信息对应的行数据分配唯一性标识。5.根据权利要求3所述的方法,其特征在于,所述快照信息中还包括时间信息;所述方法还包括:在接收到回退位点请求时,根据所述回退位点请求中的回退时间从所述快照文件中读取所述回退时间对应的目标快照信息;确定所述目标快照信息中的位置标识信息在所述日志文件中的对应位置,从该对应位置处开始继续读取所述日志文件中的数据更新事件信息,并根据所述目标快照信息中的唯一性标识为继续读取的数据更新事件信息对应的行数据分配唯一性标识。6.根据权利要求3-5中任一项所述的方法,其特征在于,所述位置标识信息包括:数据库的主机地址、数据库的名称、数据表的名称、所述日志文件的名称、以及当前发送的同步消息中的行数据在所述日志文件中的位置偏移值。7.一种数据同步方法,其特征在于,包括:从存储单元中获取同步消息;其中,所述同步消息是服务端对从数据库的日志文件中读取的数据更新事件信息进行解...

【专利技术属性】
技术研发人员:朱铎辉程志良林德强
申请(专利权)人:北京京东世纪贸易有限公司
类型:发明
国别省市:

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

1