一种支持多数据源的数据同步方法、装置及计算机设备制造方法及图纸

技术编号:33085014 阅读:16 留言:0更新日期:2022-04-15 10:46
本发明专利技术适用于数据处理技术领域,特别涉及一种支持多数据源的数据同步方法,包括如下步骤:获取程序节点的负载值、作业的压力指数和数据库增量日志;根据所述负载值和所述压力指数,将作业分配至对应的程序节点;根据所述数据库增量日志,将分配好的所述作业放入对应的内存消息队列进行并行解析;将并行解析出的增量数据写入存储消息队列。本发明专利技术还提供一种支持多数据源的数据同步装置、计算机设备及计算机可读存储介质。本发明专利技术实施例提供的支持多数据源的数据同步方法,可针对不同的业务,支持不同场景的安全配置和性能配置;同时,任务分配均匀,尽可能使每个节点的计算机资源既不浪费也不空闲。费也不空闲。费也不空闲。

【技术实现步骤摘要】
一种支持多数据源的数据同步方法、装置及计算机设备


[0001]本专利技术属于数据处理领域,尤其涉及一种支持多数据源的数据同步方法、装置、计算机设备及计算机可读存储介质。

技术介绍

[0002]数据处理是对数据的采集、传输、存储和加工等。针对某些业务场景,有很多的mysql(一种关系型数据库系统)数据需要同步到kafka(一种高吞吐量的分布式发布订阅消息系统),然后做实时的大数据分析、归类和查询。
[0003]现有的解决方案是采用轮询方式去查询数据库,查看数据是否有改变;或者采用Canal(同步mysql增量数据)方案通过模拟mysql从库,订阅数据库的binlog(mysql的二进制日志)方式,实时地从数据库中抓取最新的实时数据。
[0004]在多数据源、多进程节点的情况下,现有技术的方法存在任务分配不均匀,不支持局部有序,无法拦截异常流量的问题。

技术实现思路

[0005]本专利技术实施例提供一种支持多数据源的数据同步方法,以解决现有技术中的方法在多数据源、多进程节点的情况下,存在任务分配不均匀,不支持局部有序,无法拦截异常流量的问题。
[0006]本专利技术实施例是这样实现的,提出一种支持多数据源的数据同步方法,包括如下步骤:
[0007]获取程序节点的负载值、作业的压力指数和数据库增量日志;
[0008]根据所述负载值和所述压力指数,将作业分配至对应的程序节点;
[0009]根据所述数据库增量日志,将分配好的所述作业放入对应的内存消息队列进行并行解析;
[0010]将并行解析出的增量数据写入存储消息队列。
[0011]本专利技术实施例还提供了一种支持多数据源的数据同步装置,包括:
[0012]数据获取单元,用于获取程序节点的负载值、作业的压力指数和数据库增量日志;
[0013]作业分配单元,用于根据所述负载值和所述压力指数,将作业分配至对应的程序节点;
[0014]并行解析单元,用于根据所述数据库增量日志,将分配好的所述作业放入对应的内存消息队列进行并行解析;
[0015]存储单元,用于将并行解析出的增量数据写入存储消息队列。
[0016]本专利技术实施例还提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序可被所述处理器执行,所述处理器包括上述的装置。
[0017]本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述方法的步骤。
[0018]在本专利技术实施例中,先获取程序节点的负载值、作业的压力指数和数据库增量日志,根据负载值和压力指数,将作业分配至对应的程序节点;再根据数据库增量日志,将分配好的作业放入对应的内存消息队列进行并行解析;最后将并行解析出的增量数据写入存储消息队列,可针对不同的业务,支持不同场景的安全配置和性能配置;同时,任务分配均匀,尽可能使每个节点的计算机资源既不浪费也不空闲。
附图说明
[0019]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0020]图1是本专利技术一个实施例提供的支持多数据源的数据同步方法的流程图;
[0021]图2是本专利技术另一实施例提供的支持多数据源的数据同步方法的流程图;
[0022]图3是本专利技术另一实施例提供的支持多数据源的数据同步方法的流程图;
[0023]图4是本专利技术一个实施例提供的支持多数据源的数据同步装置的结构框图;
[0024]图5是本专利技术另一实施例提供的支持多数据源的数据同步装置的结构框图;
[0025]图6是本专利技术另一实施例提供的支持多数据源的数据同步装置的结构框图。
具体实施方式
[0026]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0027]在本专利技术实施例中,通过先获取程序节点的负载值、作业的压力指数和数据库增量日志;根据负载值和压力指数,将作业分配至对应的程序节点;再根据数据库增量日志,将分配好的作业放入对应的内存消息队列进行并行解析;最后将并行解析出的增量数据写入存储消息队列。通过上述支持多数据源的数据同步方法以解决现有技术中的方法在多数据源、多进程节点的情况下,任务分配不均匀,不支持局部有序,无法拦截异常流量的问题。
[0028]图1示出了适用于本专利技术一个实施例提供的支持多数据源的数据同步方法流程图,包括如下步骤:
[0029]步骤S101,获取程序节点的负载值、作业的压力指数和数据库增量日志。
[0030]在本专利技术实施例中,可通过压力感知组件自动感知程序节点的负载值和作业的压力指数。
[0031]例如,程序节点每隔一段时间(假设为30秒),将自己的内存、网络、节点负载值等信息上报到redis(一种分布式的key

value内存数据库)。通过分布式锁,确定唯一的主节点(master node),主节点定期拉取各个程序节点的负载情况,获取程序节点的负载值。
[0032]作为本专利技术的一个实施例,作业的压力指数是通过程序节点待处理的任务预估得到的。
[0033]在本专利技术实施例中,数据库增量日志可通过相应的组件从数据库同步获取。
[0034]上述组件包括但不限于dbsync(一款异构数据库之间同步的工具)、maxwell(基于
mysql的binlog)。
[0035]步骤S102,根据负载值和压力指数,将作业分配至对应的程序节点。
[0036]在本专利技术实施例中,根据上述获取的程序节点的负载值,计算出当前程序节点的空闲情况,再根据获取到的预估的作业的压力指数,将作业分配给对应的程序节点。
[0037]本专利技术实施例通过自动感知程序节点的负载值,根据预估的作业的压力指数,可智能地分配作业任务到最佳程序节点。例如,可通过程序节点的负载值计算出当前最空闲的程序节点,再根据作业的压力指数,将作业任务分配到该最空闲的程序节点。
[0038]优选的,预先部署程序节点,然后将程序节点注册为空闲节点。空闲节点可以是一个,也可以是多个。
[0039]作为本专利技术的一个实施例,也可以预先注册作业集合,作业集合在运行过程中,可用于新增作业。
[0040]步骤S103,根据数据库增量日志,将分配的作业放入对应的内存消息队列进行并行解析。
[0041]在本专利技术实施例中,根据获取的数据库增量日志,可以解析出表名和库名,然后再根据解析出的表名和库名的哈希值(即hash(库名+表名)),将已分配好的作业放入到对应的内存消息队列进行并本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持多数据源的数据同步方法,其特征在于,包括如下步骤:获取程序节点的负载值、作业的压力指数和数据库增量日志;根据所述负载值和所述压力指数,将作业分配至对应的程序节点;根据所述数据库增量日志,将分配好的所述作业放入对应的内存消息队列进行并行解析;将并行解析出的增量数据写入存储消息队列。2.根据权利要求1所述的支持多数据源的数据同步方法,其特征在于,所述根据所述负载值和所述压力指数,将作业分配至对应的程序节点的步骤具体包括:根据所述负载值确定出空闲程序节点;根据所述压力指数将所述作业分配至对应的所述空闲程序节点。3.根据权利要求1所述的支持多数据源的数据同步方法,其特征在于,所述根据所述数据库增量日志,将分配好的所述作业放入对应的内存消息队列进行并行解析的步骤具体包括:加载配置数据;根据所述数据库增量日志和配置数据,解析出哈希值;根据所述哈希值,将分配好的所述作业放入对应的内存消息队列进行并行解析。4.根据权利要求1所述的支持多数据源的数据同步方法,其特征在于,所述方法还包括:根据并行解析结果判断是否有异常流量;若有,则拦截所述异常流量;将所述异常流量慢速写入存储消息队列。5.一种支持多数据源的数据同步装置,其特征在于,包括:数据获取单元,用于获取程序节点的负载值、作业的压力指数和数据库增量日志;作业分配单元,用于根据所述负载值和所述压力指数,将作业分配至对应的程序节点;并行解析单元,用于根据所述数据库增量日志,将分配好的所...

【专利技术属性】
技术研发人员:张星亮石昌义
申请(专利权)人:深圳市六度人和科技有限公司
类型:发明
国别省市:

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

1