【技术实现步骤摘要】
一种增量数据实时同步的方法及相关设备
本说明书一个或多个实施例涉及数据同步
,尤其涉及一种增量数据实时同步的方法及相关设备。
技术介绍
目前网络技术飞速发展,数据以指数级的速度增长,各种系统之间的数据有一定的内在联系,如何打通数据之间的壁垒,实现各系统数据之间的有效融合,挖掘数据的价值,对公司的发展有着至关重要的作用。MongoDB是一个高性能、无模式的文档型数据库,是当前noSql数据库产品中最热门的一种,他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型,而且支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它是一个面向集合的,模式自由的文档型数据库。oplog是Mongodb保存操作日志的固定集合,MongoDB主节点应用业务操作修改到数据库中,然后记录这些操作到oplog中,从节点复制这些oplog,然后应用这些修改,保持主从同步,可以利用oplog实现MongoDB增量数据的实时 ...
【技术保护点】
1.一种增量数据实时同步的方法,其特征在于,包括:/n从配置文件中读取需要同步的MongoDB数据集合,创建数据的同步线程;/n所述同步线程从oplog中读取对应的所述MongoDB数据集合的数据,将读取到的所述MongoDB数据集合的数据转换成json格式;/n所述同步线程将所述json格式的数据加入到发送列表中并异步发送到与所述MongoDB数据集合对应的Kafka的主题中,同时将异步发送立刻返回的返回值加入到发送列表中;/n判断所述发送列表的数据量是否达到预设的阈值,如果未达到预设的阈值,则继续发送所述json格式的数据,如果达到阈值,则使用所述Kafka提供的接口判 ...
【技术特征摘要】
1.一种增量数据实时同步的方法,其特征在于,包括:
从配置文件中读取需要同步的MongoDB数据集合,创建数据的同步线程;
所述同步线程从oplog中读取对应的所述MongoDB数据集合的数据,将读取到的所述MongoDB数据集合的数据转换成json格式;
所述同步线程将所述json格式的数据加入到发送列表中并异步发送到与所述MongoDB数据集合对应的Kafka的主题中,同时将异步发送立刻返回的返回值加入到发送列表中;
判断所述发送列表的数据量是否达到预设的阈值,如果未达到预设的阈值,则继续发送所述json格式的数据,如果达到阈值,则使用所述Kafka提供的接口判断是否所述发送列表中的所有数据都发送成功,如果所述发送列表中的所有数据都发送成功,则返回上一步骤,继续发送下一个批次的所述json格式的数据,如果所述发送列表中的数据存在一个或多个发送失败,则对所述发送列表中的所有数据进行重复发送,直至发送成功,返回上一步骤,继续发送下一个批次的所述json格式的数据。
2.根据权利要求1所述的方法,其特征在于,所述同步线程从oplog中读取对应的所述MongoDB数据集合的数据,还包括所述同步线程从Redis读取同步时间标记,根据所述同步时间标记从oplog中读取对应的所述MongoDB数据集合的数据;
所述同步线程所有数据都发送成功之后,将该批次最后一条数据的时间标记记录到所述Redis中,以实现断点续传。
3.根据权利要求2所述的方法,其特征在于,所述根据所述同步时间标记从oplog中读取对应的所述MongoDB数据集合的数据,包括:
如果所述Redis中有对应的所述MongoDB数据集合的时间标记,则从所述oplog中读取所述时间标记之后的所述MongoDB数据集合的数据,如果所述Redis中没有对应的所述MongoDB数据集合的时间标记,则从所述oplog中读取最新产生的所述MongoDB数据集合的数据。
4.根据权利要求1所述的方法,其特征在于,所述创建数据的同步线程的数量不少于一个;当同步线程多于一个时,每个线程分别执行所述创建数据的同步线程之后的操作。
5.一种增量数据实时同步的装置,其特征在于,包括:
获取模块,被配置为从配置文件中读取需要同步的MongoDB数据集合,创建数据的同步线程;
转换模块,被配置为所述同步线程从oplog中读取对应...
【专利技术属性】
技术研发人员:宋洋,安靖,胡潇涵,刘佳,王毅,崔贝贝,
申请(专利权)人:中国人寿保险股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。