System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于消息队列的数据同步方法、设备及介质技术_技高网

一种基于消息队列的数据同步方法、设备及介质技术

技术编号:40636820 阅读:6 留言:0更新日期:2024-03-13 21:20
本申请公开了基于消息队列的数据同步方法、设备及介质,方法包括:根据业务需求,确定业务数据的并发度,确定业务数据的分类列表的数量,在消息队列中创建所有的分类列表,对每个分类列表添加发送锁,创建分类列表对应的缓冲区,获取变更数据集,将变更数据集封装为消息,对消息添加sequence属性,对应的分类列表,获取发送锁,将消息添加到对应的缓冲区中,对缓冲区添加消息锁并执行,将消息发送到消息队列中对应的分类列表中,在消息发送完成后,释放发送锁和消息锁。通过对每类业务数据在消息队列中设置多个topic,保证发送端和消费端之间的消息时序性,通过设置topic对应的缓冲区,以及设置发送锁和缓冲区的机制,实现了消息的批量发送。

【技术实现步骤摘要】

本申请涉及数据管理领域,具体涉及一种基于消息队列的数据同步方法、设备及介质


技术介绍

1、随着现代信息化的环境发展,越来越多的企业需要对不同系统或者数据源进行数据同步,而数据源则可能是由不同的平台、数据库在不同的地区、不同时间段内产生,各数据源之间存在着差异,比如数据格式、数据类型、数据结构等,为了保证数据的准确性和一致性,需要对这些数据进行同步。

2、数据同步通常的做法,是使用数据同步技术(change data capture,cdc)是定时或准实时拉取数据库内的变更数据,将捕获的数据同步到其他数据库存储,但是有些数据库没有提供cdc的接口,无法通过cdc做数据同步,只能通过在应用层做拦截,收集数据变更,将变更数据集发送到消息队列,来实现数据同步,而这种数据同步的方法,将数据先发送到消息队列暂存,再从消息队列同步到其他数据库,有多个发送步骤,如果不加以处理,容易发生性能延迟较大,造成数据的不一致性的情况。


技术实现思路

1、为了解决上述问题,本申请提出了一种基于sdn的交换机命令行注释方法,包括:

2、根据业务需求,确定业务数据的并发度,根据所述并发度,确定所述业务数据的分类列表的数量;

3、在消息队列中创建所有的所述分类列表,对每个所述分类列表添加发送锁,并创建所述分类列表对应的缓冲区;

4、获取变更数据集,将所述变更数据集封装为消息,并对所述消息添加sequence属性;

5、基于所述sequence属性确定对应的所述分类列表,从而确定对应的所述缓冲区,获取所述发送锁,将所述消息添加到对应的所述缓冲区中;

6、对所述缓冲区添加消息锁并执行,将所述消息从所述缓冲区,发送到消息队列中对应的分类列表中,在所述消息发送完成后,释放所述发送锁和所述消息锁。

7、另一方面,本申请还提出基于消息队列的数据同步设备,包括:

8、至少一个处理器;以及,

9、与所述至少一个处理器通信连接的存储器;其中,

10、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如:上述示例所述的基于消息队列的数据同步方法。

11、另一方面,本申请还提出了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:上述示例所述的基于消息队列的数据同步方法。

12、通过本申请提出一种基于消息队列的数据同步方法能够带来如下有益效果:

13、通过对每类业务数据在消息队列中设置多个topic,能够解决业务数据并发度高带来的性能延迟较大的问题,保证发送端和消费端之间的消息时序性,并提升了消息发送的性能以及吞吐量。

14、在同步发送消息的方式下,通过设置topic对应的缓冲区,以及设置发送锁和缓冲区的机制,实现了消息的批量发送,防止消息发送时出现新消息而导致的消息不一致,并且消息发送的批次大小、发送时机可以自动控制,不需要在用额外的线程进行管理,简便了消息同步的管理。

本文档来自技高网...

【技术保护点】

1.一种基于消息队列的数据同步方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述对每个所述分类列表添加发送锁,并创建所述分类列表对应的缓冲区,具体包括:

3.根据权利要求1所述的方法,其特征在于,所述获取变更数据集,将所述变更数据集封装为消息,并对所述消息添加sequence属性,具体包括:

4.根据权利要求3所述的方法,其特征在于,所述基于所述sequence属性确定对应的所述分类列表,从而确定对应的所述缓冲区,获取所述发送锁,将所述消息添加到对应的所述缓冲区中,具体包括:

5.根据权利要求4所述的方法,其特征在于,所述获取所述分类列表对应的所述发送锁,根据所述缓冲区的ID判断所述缓冲区是否存在,以将所述消息添加到对应的所述缓冲区中,具体包括:

6.根据权利要求3所述的方法,其特征在于,将所述消息从所述缓冲区,发送到消息队列中对应的topic中,在所述消息发送完成后,释放所述发送锁之后,所述方法还包括:

7.根据权利要求1所述的方法,其特征在于,所述对所述缓冲区添加消息锁并执行,将所述消息从所述缓冲区,发送到消息队列中对应的分类列表中,在所述消息发送完成后,释放所述发送锁和所述消息锁,具体包括:

8.根据权利要求7所述的方法,其特征在于,所述对所述缓冲区添加消息锁,并执行所述消息锁,以防止新的所述消息添加到所述缓冲区中之后,所述方法还包括:

9.一种基于消息队列的数据同步设备,其特征在于,包括:

10.一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:权利要求1~8中任一项权利要求所述的基于消息队列的数据同步方法。

...

【技术特征摘要】

1.一种基于消息队列的数据同步方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述对每个所述分类列表添加发送锁,并创建所述分类列表对应的缓冲区,具体包括:

3.根据权利要求1所述的方法,其特征在于,所述获取变更数据集,将所述变更数据集封装为消息,并对所述消息添加sequence属性,具体包括:

4.根据权利要求3所述的方法,其特征在于,所述基于所述sequence属性确定对应的所述分类列表,从而确定对应的所述缓冲区,获取所述发送锁,将所述消息添加到对应的所述缓冲区中,具体包括:

5.根据权利要求4所述的方法,其特征在于,所述获取所述分类列表对应的所述发送锁,根据所述缓冲区的id判断所述缓冲区是否存在,以将所述消息添加到对应的所述缓冲区中,具体包括:

6.根据权利要求3...

【专利技术属性】
技术研发人员:李兆锐孙立新李文峰胡天岳时凯旋
申请(专利权)人:浪潮通用软件有限公司
类型:发明
国别省市:

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

1