一种基于消息中间件的数据同步方法、装置及系统制造方法及图纸

技术编号:31928636 阅读:29 留言:0更新日期:2022-01-15 13:17
本发明专利技术实施例公开了一种基于消息中间件的数据同步方法、装置及系统,所述方法包括:在进行了数据更新需要进行数据同步的情况下,获取数据更新的日志文件,将所述日志文件发送到消息中间件;根据预设的多个用户的订阅数据列表,在所述消息中间件中的日志文件中筛选出与每个用户对应的同步数据,并发送给各个用户对应的客户端,以使各个用户对应的客户端在接收到同步数据后执行数据同步操作。采用本发明专利技术实施例,可以实现多用户数据同步的时效性和数据一致性。一致性。一致性。

【技术实现步骤摘要】
一种基于消息中间件的数据同步方法、装置及系统


[0001]本专利技术涉及大数据
,尤其涉及一种基于消息中间件的数据同步方法、装置及系统。

技术介绍

[0002]数据同步是数据处理及应用中常见的场景,在将数据同步分发给多个外部用户时,数据一致性、数据同步时效性都至关重要。目前在进行多用户数据同步时,常见的有基于接口数据同步和基于SFTP文件数据同步。对于基于接口的数据同步,在处理大批量数据同步时通常会存在同步性能和效率问题,同时还在考虑网络情况及失败重试等。对于基于SFTP的数据文件同步,需要考虑大批量数据时文件大小问题,文件格式兼容问题以及文件下载解析等问题,同时基于SFTP的数据同步在同步时间性方便存在比较大的挑战。
[0003]如何保证多用户数据同步的数据一致性、数据同步时效性是数据处理一个待处理的重要问题。

技术实现思路

[0004]基于此,在本专利技术实施例中,提供了一种基于消息中间件的数据同步方法和系统,可以利用消息中间件的发布订阅机制实现多用户数据同步的时效性。
[0005]在本专利技术的第一部分,提供了一种基于消息中间件的数据同步方法,所述方法包括:在进行了数据更新需要进行数据同步的情况下,获取数据更新的日志文件,将所述日志文件发送到消息中间件;根据预设的多个用户的订阅数据列表,在所述消息中间件中的日志文件中筛选出与每个用户对应的同步数据,并发送给各个用户对应的客户端,以使各个用户对应的客户端在接收到同步数据后执行数据同步操作。
[0006]可选的,所述获取数据更新的日志文件的步骤,还包括:监听mysql binlog,以得到二进制的日志文件。
[0007]可选的,所述方法还包括:获取数据更新请求,根据数据更新请求更新数据库数据,并触发所述监听mysql binlog,以得到二进制的日志文件的步骤;所述监听mysql binlog,以得到二进制的日志文件的步骤,还包括:通过监听mysql binlog,以提取对数据库数据进行更新的数据DML操作记录,作为所述日志文件。
[0008]可选的,所述将所述日志文件发送到消息中间件的步骤,还包括:将所述日志文件发送到所述消息中间件的topic中,以通过消息中间件实现对同步数据的缓存。
[0009]可选的,所述根据预设的多个用户的订阅数据列表,在所述消息中间件中的日志
文件中筛选出与每个用户对应的同步数据的步骤,还包括:获取多个用户的订阅数据列表,并加载至redis缓存中;通过预设的过滤模块,从所述消息中间件中筛选出与每个用户的订阅数据列表对应的数据作为同步数据,并发送给每个用户对应的topic,以使每个用户对应的客户端接收topic中的同步数据。
[0010]可选的,所述方法还包括:客户端在接收到同步数据之后,根据接收到的同步数据进行数据更新,将更新的数据写入到客户端的数据库中。
[0011]在本专利技术的第二部分,提供了一种基于消息中间件的数据同步装置,所述装置包括:日志文件传递模块,用于在进行了数据更新需要进行数据同步的情况下,获取数据更新的日志文件,将所述日志文件发送到消息中间件;数据筛选模块,用于根据预设的多个用户的订阅数据列表,在所述消息中间件中的日志文件中筛选出与每个用户对应的同步数据;数据同步模块,用于将筛选出来的同步数据分别发送给各个用户对应的客户端,以使各个用户对应的客户端在接收到同步数据后执行数据同步操作。
[0012]在本专利技术的第三部分,提供了一种基于消息中间件的数据同步系统,所述系统包括服务器以及与所述服务器连接的多个用户的客户端;所述服务器在进行了数据更新需要进行数据同步的情况下,获取数据更新的日志文件,将所述日志文件发送到消息中间件;根据预设的多个用户的订阅数据列表,在所述消息中间件中的日志文件中筛选出与每个用户对应的同步数据;所述服务器将筛选出来的同步数据分别发送给各个用户对应的客户端;所述客户端在接收到同步数据之后,根据接收到的同步数据进行数据更新,将更新的数据写入到客户端的数据库中。
[0013]可选的,所述服务器监听mysql binlog,以得到二进制的日志文件。
[0014]可选的,所述服务器将所述日志文件发送到所述消息中间件的topic中,以通过消息中间件实现对同步数据的缓存;所述服务器获取多个用户的订阅数据列表,并加载至redis缓存中;通过所述服务器中预设的过滤模块,从所述消息中间件中筛选出与每个用户的订阅数据列表对应的数据作为同步数据,并发送给每个用户对应的topic;所述客户端接收topic中的同步数据。
[0015]在本专利技术的第四部分,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:在进行了数据更新需要进行数据同步的情况下,获取数据更新的日志文件,将所述日志文件发送到消息中间件;根据预设的多个用户的订阅数据列表,在所述消息中间件中的日志文件中筛选出与每个用户对应的同步数据,并发送给各个用户对应的客户端,以使各个用户对应的客户端在接收到同步数据后执行数据同步操作。
[0016]采用本专利技术实施例,具有如下有益效果:
采用了上述基于消息中间件的数据同步方法和系统之后,在需要进行大批量数据同步的情况下,监听并获取数据更新的日志文件,然后将日志文件投递到消息中间件中,通过消息中间件的发布订阅机制,基于每个用户预先设定的订阅数据列表,筛选出与每个用户的订阅数据列表对应的数据,并投递给各个用户对应的客户端,以实现将数据同步给多个用户,实现用户定制化的数据同步分发,保障了数据同步的时效性。
附图说明
[0017]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]其中:图1为一个实施例中一种基于消息中间件的数据同步系统的结构示意图;图2为一个实施例中一种基于消息中间件的数据同步方法的流程示意图;图3为一个实施例中一种基于消息中间件的数据同步系统的框架示意图;图4为一个实施例中一种基于消息中间件的数据同步装置的结构示意图;图5为一个实施例中运行上述基于消息中间件的数据同步方法的计算机设备的结构示意图。
具体实施方式
[0019]现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例。相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
[0020]此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于消息中间件的数据同步方法,其特征在于,所述方法包括:在进行了数据更新需要进行数据同步的情况下,获取数据更新的日志文件,将所述日志文件发送到消息中间件;根据预设的多个用户的订阅数据列表,在所述消息中间件中的日志文件中筛选出与每个用户对应的同步数据,并发送给各个用户对应的客户端,以使各个用户对应的客户端在接收到同步数据后执行数据同步操作。2.根据权利要求1所述的基于消息中间件的数据同步方法,其特征在于,所述获取数据更新的日志文件的步骤,还包括:监听mysql binlog,以得到二进制的日志文件。3.根据权利要求2所述的基于消息中间件的数据同步方法,其特征在于,所述方法还包括:获取数据更新请求,根据数据更新请求更新数据库数据,并触发所述监听mysql binlog,以得到二进制的日志文件的步骤;所述监听mysql binlog,以得到二进制的日志文件的步骤,还包括:通过监听mysql binlog,以提取对数据库数据进行更新的数据DML操作记录,作为所述日志文件。4.根据权利要求1所述的基于消息中间件的数据同步方法,其特征在于,所述将所述日志文件发送到消息中间件的步骤,还包括:将所述日志文件发送到所述消息中间件的topic中,以通过消息中间件实现对同步数据的缓存。5.根据权利要求4所述的基于消息中间件的数据同步方法,其特征在于,所述根据预设的多个用户的订阅数据列表,在所述消息中间件中的日志文件中筛选出与每个用户对应的同步数据的步骤,还包括:获取多个用户的订阅数据列表,并加载至redis缓存中;通过预设的过滤模块,从所述消息中间件中筛选出与每个用户的订阅数据列表对应的数据作为同步数据,并发送给每个用户对应的topic,以使每个用户对应的客户端接收topic中的同步数据。6.根据权利要求1所述的基于消息中间件的数据同步方法,其特征在于,所述方法...

【专利技术属性】
技术研发人员:施震杨助林
申请(专利权)人:中证信用增进股份有限公司
类型:发明
国别省市:

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

1