一种基于数据库binlog的事件分发方法及系统与流程

文档序号:34644109发布日期:2023-06-29 17:35阅读:24来源:国知局
一种基于数据库binlog的事件分发方法及系统与流程

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


背景技术:

1、随着当今社会信息化程度的不断提高,企业在运行过程中产生的数据日益增多,企业之间、企业内部各部门之间进行数据交换和数据共享成为目前数据库系统发展的重要需求。

2、目前已有的数据交换方式以批量数据推送模式为主,具体表现为数据库批量按每天或每月等固定的时间间隔向订阅者定时推送。但随着互联网的飞速发展,企业对数据的多样性、可复用性、实时性、可扩展性的要求逐步提高,以前批量数据定时推送的模式已经不能满足企业的要求。因此,需要在不进行二次开发的基础上,提供一种在业务数据库发生变更时,把数据高效、准确的推送给多个目标终端的方法。


技术实现思路

1、针对现有技术中存在的问题,本申请提供了一种基于数据库binlog的事件分发方法。本申请提出的方法将多个业务数据库的binlog转化成事件,根据消费端的需求实时的将事件推送给消费端。

2、根据本申请的第一个方面,提出一种基于数据库binlog的事件分发方法,应用于事件分发中心,包括:

3、接收业务数据中心发送的一个或多个binlog日志;

4、根据所述binlog日志生成事件合集;

5、根据消费端提供的事件消费规则,基于所述事件合集生成事件消费队列。

6、根据一些实施例,所述事件消费规则包括所述消费端订阅的事件列表及所述事件列表中各个事件对应的事件消费类型,所述事件消费类型包括主动消费事件和被动消费事件。

7、根据一些实施例,所述根据消费端提供的事件消费规则,基于所述事件合集生成事件消费队列包括:

8、判断所述事件合集中的第一事件是否属于所述事件列表;

9、在所述第一事件属于所述事件列表的情况下,确定所述第一事件对应的事件消费类型;

10、在所述第一事件为所述主动消费事件的情况下,将所述第一事件投递到与所述消费端相对应的主动消费队列;

11、在所述第一事件为所述被动消费事件的情况下,将所述第一事件投递到与所述消费端相对应的被动消费队列;

12、重复上述过程直到所述事件合集中的所有事件都判断完成。

13、根据一些实施例,一种基于数据库binlog的事件分发方法还包括:

14、响应于所述消费端的主动事件消费请求,将所述主动消费队列中的事件发送到所述消费端。

15、根据一些实施例,一种基于数据库binlog的事件分发方法还包括:

16、将所述被动消费队列中的事件通过http协议回调所述消费端。

17、根据一些实施例,一种基于数据库binlog的事件分发方法还包括:

18、基于所述事件的来源binlog日志、事件投递记录和事件消费记录,生成事件日志。

19、根据一些实施例,所述根据所述binlog日志生成事件合集包括:

20、在多个所述binlog日志的格式不同的情况下,将所述不同格式的binlog日志转化成统一的预设格式;

21、筛选所述binlog日志中和消费端业务相关的部分,生成binlog业务记录;

22、根据事件转换规则,将所述binlog业务记录转换成事件合集。

23、根据一些实施例,所述事件消费队列的类型包括rocketmq、rabbitmq、kafka。

24、根据本申请的第二个方面,提出一种基于数据库binlog的事件分发装置,包括binlog接收模块、事件生成模块、消费队列生成模块,其中:

25、所述binlog接收模块用于接收业务数据中心发送的一个或多个binlog日志;

26、所述事件生成模块用于根据所述binlog日志生成事件合集;

27、所述消费队列生成模块用于根据消费端提供的事件消费规则,基于所述事件合集生成事件消费队列。

28、根据本申请的第三个方面,提出一种基于数据库binlog的事件分发系统,包括业务数据中心、事件分发中心和消费端,所述业务数据中心包括一个或多个业务数据库,其中:

29、所述业务数据中心用于发送和业务数据库相对应的一个或多个binlog日志到事件分发中心;

30、所述事件分发中心用于执行如本申请第一方面所述的方法;

31、所述消费端用于消费所述事件消费队列中的所述事件。

32、根据本申请的第四个方面,提出一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请第一个方面所述的方法。

33、根据本申请的第五个方面,提出一种计算机可读存储介质,其特征在于,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如本申请第一个方面所述的方法。

34、本申请提出的一种基于数据库binlog的事件分发方法及系统,将多个不同数据来源的业务数据库的binlog日志进行处理,生成消费端可以消费的事件格式,并根据消费端的订阅需求将数据库事件推送给消费端。本申请提出的方案面向多个数据来源及多个订阅目标消费端,实现无需二次开发,将发生变化的业务数据库内的数据实时准确的推送给目标消费端的效果。



技术特征:

1.一种基于数据库binlog的事件分发方法,应用于事件分发中心,包括:

2.如权利要求1所述的方法,其特征在于,所述事件消费规则包括所述消费端订阅的事件列表及所述事件列表中各个事件对应的事件消费类型,所述事件消费类型包括主动消费事件和被动消费事件。

3.如权利要求2所述的方法,其特征在于,所述根据消费端提供的事件消费规则,基于所述事件合集生成事件消费队列包括:

4.如权利要求3所述的方法,其特征在于,还包括:

5.如权利要求3所述的方法,其特征在于,还包括:

6.如权利要求1所述的方法,其特征在于,还包括:

7.如权利要求1所述的方法,其特征在于,所述根据所述binlog日志生成事件合集包括:

8.如权利要求1所述的方法,其特征在于,所述事件消费队列的类型包括rocketmq、rabbitmq、kafka。

9.一种基于数据库binlog的事件分发装置,包括binlog接收模块、事件生成模块、消费队列生成模块,其中:

10.一种基于数据库binlog的事件分发系统,包括业务数据中心、事件分发中心和消费端,所述业务数据中心包括一个或多个业务数据库,其中:

11.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-8任一者所述的方法。

12.一种计算机可读存储介质,其特征在于,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-8任一者所述的方法。


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

技术研发人员:许永正,赵旭宁,黎雄兵
受保护的技术使用者:北京微吼时代科技有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1