一种基于数据库binlog的事件分发方法及系统技术方案

技术编号:38004583 阅读:14 留言:0更新日期:2023-06-30 10:19
本申请提出的一种基于数据库binlog的事件分发方法及系统,其中方法应用于事件分发中心,具体包括:接收业务数据中心发送的一个或多个binlog日志;根据所述binlog日志生成事件合集;根据消费端提供的事件消费规则,基于所述事件合集生成事件消费队列。本申请提出的方案将多个不同数据来源的业务数据库的binlog日志进行处理,生成消费端可以消费的事件格式,并根据消费端的订阅需求将数据库事件推送给消费端。本申请提出的方案面向多个数据来源及多个订阅目标消费端,实现无需二次开发,将发生变化的业务数据库内的数据实时准确的推送给目标消费端的效果。送给目标消费端的效果。送给目标消费端的效果。

【技术实现步骤摘要】
一种基于数据库binlog的事件分发方法及系统


[0001]本申请涉及数据库数据交换领域,尤其是涉及一种基于数据库binlog的事件分发方法及系统。

技术介绍

[0002]随着当今社会信息化程度的不断提高,企业在运行过程中产生的数据日益增多,企业之间、企业内部各部门之间进行数据交换和数据共享成为目前数据库系统发展的重要需求。
[0003]目前已有的数据交换方式以批量数据推送模式为主,具体表现为数据库批量按每天或每月等固定的时间间隔向订阅者定时推送。但随着互联网的飞速发展,企业对数据的多样性、可复用性、实时性、可扩展性的要求逐步提高,以前批量数据定时推送的模式已经不能满足企业的要求。因此,需要在不进行二次开发的基础上,提供一种在业务数据库发生变更时,把数据高效、准确的推送给多个目标终端的方法。

技术实现思路

[0004]针对现有技术中存在的问题,本申请提供了一种基于数据库binlog的事件分发方法。本申请提出的方法将多个业务数据库的binlog转化成事件,根据消费端的需求实时的将事件推送给消费端。
[0005]根据本申请的第一个方面,提出一种基于数据库binlog的事件分发方法,应用于事件分发中心,包括:接收业务数据中心发送的一个或多个binlog日志;根据所述binlog日志生成事件合集;根据消费端提供的事件消费规则,基于所述事件合集生成事件消费队列。
[0006]根据一些实施例,所述事件消费规则包括所述消费端订阅的事件列表及所述事件列表中各个事件对应的事件消费类型,所述事件消费类型包括主动消费事件和被动消费事件。
[0007]根据一些实施例,所述根据消费端提供的事件消费规则,基于所述事件合集生成事件消费队列包括:判断所述事件合集中的第一事件是否属于所述事件列表;在所述第一事件属于所述事件列表的情况下,确定所述第一事件对应的事件消费类型;在所述第一事件为所述主动消费事件的情况下,将所述第一事件投递到与所述消费端相对应的主动消费队列;在所述第一事件为所述被动消费事件的情况下,将所述第一事件投递到与所述消费端相对应的被动消费队列;重复上述过程直到所述事件合集中的所有事件都判断完成。
[0008]根据一些实施例,一种基于数据库binlog的事件分发方法还包括:响应于所述消费端的主动事件消费请求,将所述主动消费队列中的事件发送到所述消费端。
[0009]根据一些实施例,一种基于数据库binlog的事件分发方法还包括:将所述被动消费队列中的事件通过http协议回调所述消费端。
[0010]根据一些实施例,一种基于数据库binlog的事件分发方法还包括:基于所述事件的来源binlog日志、事件投递记录和事件消费记录,生成事件日志。
[0011]根据一些实施例,所述根据所述binlog日志生成事件合集包括:在多个所述binlog日志的格式不同的情况下,将所述不同格式的binlog日志转化成统一的预设格式;筛选所述binlog日志中和消费端业务相关的部分,生成binlog业务记录;根据事件转换规则,将所述binlog业务记录转换成事件合集。
[0012]根据一些实施例,所述事件消费队列的类型包括RocketMQ、RabbitMQ、Kafka。
[0013]根据本申请的第二个方面,提出一种基于数据库binlog的事件分发装置,包括binlog接收模块、事件生成模块、消费队列生成模块,其中:所述binlog接收模块用于接收业务数据中心发送的一个或多个binlog日志;所述事件生成模块用于根据所述binlog日志生成事件合集;所述消费队列生成模块用于根据消费端提供的事件消费规则,基于所述事件合集生成事件消费队列。
[0014]根据本申请的第三个方面,提出一种基于数据库binlog的事件分发系统,包括业务数据中心、事件分发中心和消费端,所述业务数据中心包括一个或多个业务数据库,其中:所述业务数据中心用于发送和业务数据库相对应的一个或多个binlog日志到事件分发中心;所述事件分发中心用于执行如本申请第一方面所述的方法;所述消费端用于消费所述事件消费队列中的所述事件。
[0015]根据本申请的第四个方面,提出一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请第一个方面所述的方法。
[0016]根据本申请的第五个方面,提出一种计算机可读存储介质,其特征在于,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如本申请第一个方面所述的方法。
[0017]本申请提出的一种基于数据库binlog的事件分发方法及系统,将多个不同数据来源的业务数据库的binlog日志进行处理,生成消费端可以消费的事件格式,并根据消费端的订阅需求将数据库事件推送给消费端。本申请提出的方案面向多个数据来源及多个订阅目标消费端,实现无需二次开发,将发生变化的业务数据库内的数据实时准确的推送给目标消费端的效果。
附图说明
[0018]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图,而并不超出本申请要求保护的范围。
[0019]图1为本申请的基于数据库binlog的事件分发方法的流程图;图2为本申请的基于数据库binlog的事件分发装置的示意图;图3为本申请的基于数据库binlog的事件分发系统的整体框架示意图;图4为本申请的基于数据库binlog的事件分发方法的一个具体实施例的步骤流程图;图5为本申请提供的一种电子设备的结构图。
具体实施方式
[0020]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0021]图1为本申请的基于数据库binlog的事件分发方法的流程图。
[0022]步骤S101,接收业务数据中心发送的一个或多个binlog日志。
[0023]在一些具体实施例中,业务数据中心包括一个或多个业务数据库,每个业务数据库包括与之对应的binlog日志。在一些具体实施例中,业务数据中心的多个binlog日志的格式存在不同。在一些具体实施例中,业务数据中心发送一个或多个binlog日志到事件分发中心。在一些具体实施例中,业务数据库包括不同的业务系统所对应的数据库。
[0024]步骤S102,根据所述binlog日志生成事件合集。
[0025]在一些具体实施例中,事件分发中心接收业务数据中心发送的一个或多个业务数据库相对应的binlog日志。在一些具体实施例中,事件分发中心统一接收到的多个binlog日志的格式。在一些具体实施例中,筛选统本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于数据库binlog的事件分发方法,应用于事件分发中心,包括:接收业务数据中心发送的一个或多个binlog日志;根据所述binlog日志生成事件合集;根据消费端提供的事件消费规则,基于所述事件合集生成事件消费队列。2.如权利要求1所述的方法,其特征在于,所述事件消费规则包括所述消费端订阅的事件列表及所述事件列表中各个事件对应的事件消费类型,所述事件消费类型包括主动消费事件和被动消费事件。3.如权利要求2所述的方法,其特征在于,所述根据消费端提供的事件消费规则,基于所述事件合集生成事件消费队列包括:判断所述事件合集中的第一事件是否属于所述事件列表;在所述第一事件属于所述事件列表的情况下,确定所述第一事件对应的事件消费类型;在所述第一事件为所述主动消费事件的情况下,将所述第一事件投递到与所述消费端相对应的主动消费队列;在所述第一事件为所述被动消费事件的情况下,将所述第一事件投递到与所述消费端相对应的被动消费队列;重复上述过程直到完成对所述事件合集中的所有事件的判断。4.如权利要求3所述的方法,其特征在于,还包括:响应于所述消费端的主动事件消费请求,将所述主动消费队列中的事件发送到所述消费端。5.如权利要求3所述的方法,其特征在于,还包括:将所述被动消费队列中的事件通过http协议回调所述消费端。6.如权利要求1所述的方法,其特征在于,还包括:基于所述事件的来源binlog日志、事件投递记录和事件消费记录,生成事件日志。7.如权利要求1所述的方法,其特征在于,所述根据所述binlog日志生成事件合集包括:在多个所述binlog日志的格式不同的情况下,将所述...

【专利技术属性】
技术研发人员:许永正赵旭宁黎雄兵
申请(专利权)人:北京微吼时代科技有限公司
类型:发明
国别省市:

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

1