CN108255621A - 一种基于binlog的MySQL增量消息解析方法 - Google Patents
一种基于binlog的MySQL增量消息解析方法 Download PDFInfo
- Publication number
- CN108255621A CN108255621A CN201810023456.8A CN201810023456A CN108255621A CN 108255621 A CN108255621 A CN 108255621A CN 201810023456 A CN201810023456 A CN 201810023456A CN 108255621 A CN108255621 A CN 108255621A
- Authority
- CN
- China
- Prior art keywords
- message
- mysql
- incremental
- data
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于binlog的MySQL增量消息解析方法,该方法步骤为:步骤1):将业务写入到业务数据中;步骤2):将写好的业务数据发送到对应的MySQL数据库中;步骤3):在MySQL数据库中设置需要监听的数据库表;步骤4):数据有变更会写入数据库中;步骤5):对数据进行解析;步骤6):获取增量数据;步骤7):发送增量消息;步骤8):将增量消息发送到消息服务端;步骤9);业务***订阅消息服务端的消息;步骤10):业务***按需消费消息。采用本发明的方法,不仅能够使数据***方便修改和维护,而且解析能力强,提高了数据抗堆积能力。
Description
技术领域
本发明涉及一种数据库的数据解析技术,尤其涉及一种关系型数据库***与二进制通讯和数据解析方法。
背景技术
目前,在关系型数据库***(MySQL)中写入日志,如果在业务***代码里面进行打点输入,会产生大量的代码入侵,使***变得难以维护和造成代码混乱。
参看图1,现有MySQL***中写入日志的方法是:1、业务功能写入各种业务数据到对应的数据库中;2、事先建立好数据库对应的触发器(trigger);3、数据写入触发器(trigger)中,触发器(trigger)往结果表写入增量数据;4、业务***通过服务框架(dubbo)数据库查询结果。
现现有MySQL***中写入日志的方法缺陷有:1)、触发器(trigger)里面包含有大量的业务代码,后续会变得难以维护;2)、数据库本不应该承载太多的业务,而现在大部分业务逻辑都融入到触发器(trigger)当中;3)、跟业务***紧紧耦合在一起,不利于***解耦。
发明内容
本发明的目的是克服现有技术的不足,提供一种不仅能够方便修改和维护,而且解析能力强,数据抗堆积能力大的数据***增量消息解析方法。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于binlog的MySQL增量消息解析方法,其步骤为:
步骤1):将业务功能写入到业务数据中;
步骤2):将写好的业务数据发送到对应的MySQL数据库中;
步骤3):在MySQL数据库中设置需要监听的数据库表;
步骤4):将有变更的数据写入数据库中;
步骤5):对业务数据进行解析;
步骤6):获取增量数据;
步骤7):发送增量消息;
步骤8):将增量消息发送到消息服务端;
步骤9);业务***订阅消息服务端的消息;
步骤10):业务***按需消费消息。
所述的MySQL数据库中设置需要监听的数据库表是通过MySQL数据库中数据同步工具中设置需要监听的数据库表。
所述的数据有变更会写入数据库中是数据有变更会写入数据库本身的binlog。
所述的对数据进行解析是同步工具服务器端会实时解析binlog。
所述的获取增量数据是通过同步工具客户端的方式连接同步工具服务器获取解析好的增量数据。
所述发送增量消息是通过消息队列发送消息。
所述的将增量消息发送到消息服务端是发送到消息队列的消息服务端。
本发明的有益效果是:1、数据***处理一般都在java代码中完成,方便后续各种业务逻辑代码的修改和维护;2、采取了消息队列(MQ)异步流程,即使出现故障也不会影响主业务其他功能;3、采用了二进制(binlog)和消息队列(MQ)的方式能与主业务***进行解耦,便于整个***的后续维护;4、解析能力强,支持并可以发大量消息,通过消息队列(MQ)有海量的数据抗堆积能力。
附图说明
图1为本发明现有技术解析方法流程图;
图2为本发明实施例解析方法流程图。
具体实施方式
下面结合附图及本发明的实施例对发明作进一步详细的说明。
参看图1,传统的MySQL***消息解析方法为:1、业务功能写入各种业务数据到对应的数据库中进行数据更新11;2、事先建立好数据库对应的触发器(trigger)12;3、数据写入触发器(trigger)中,触发器(trigger)往结果表写入增量数据13;4、业务***通过服务框架(dubbo)数据库查询结果14。
由于触发器(trigger)里面包含有大量的业务代码,后续维护成本很高,而且数据库本不应该承载太多的业务,而现在大部分业务逻辑都融入到触发器(trigger)当中,跟业务***紧紧耦合在一起,不利于***解耦。
本发明是一种基于binlog的MySQL增量消息解析方法,所说的binlog是一种二进制日志,记录对数据的发生或潜在发生更改的语句,并以二进制的形式保存到数据库中。而MySQL是一种关系数据库管理***,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了***数据的速度并提高了灵活性。
参看图2,为本发明实施例基于binlog的MySQL增量消息解析方法,主要包括一下步骤:
步骤1):将业务功能写入到业务数据1中;
所述的业务功能包括***下单功能;***支付功能;***录入单据功能等多种功能,本发明将这些业务功能可以直接写入到业务数据1中。
步骤2):将写好的业务数据发送到对应的MySQL数据库2中;
步骤3):通过MySQL数据库中数据同步工具(cannal)中设置需要监听的数据库表31;
这里,所述的canal是MySQL数据同步工具,纯Java开发;基于数据库增量日志解析,提供增量数据订阅、消费,目前主要支持MySQL数据库。由于数据库处理一般都在java代码中完成,方便后续各种业务逻辑代码的修改和维护。
较佳地,还可以包括:步骤4):当数据有变更时,写入数据库本身的binlog32;
步骤5):采用同步工具服务器(cannal-server)端会实时解析binlog33;
步骤6):采用同步工具客户端(cannal-client)的方式连接同步工具服务器(cannal-server)获取解析后的增量消息数据34;
Client/Server结构(C/S结构)是客户机和服务器结构。它是软件***体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了***的通讯开销。Client/Server结构的***把较复杂的计算和管理任务交给网络上的服务器,而把一些频繁与用户打交道的任务交给前端较简单的计算机—客户机。通过这种方式,将任务合理分配到客户端和服务器端,既充分利用了两端硬件环境的优势,又实现了网络上信息资源的共享。由于这种结构比较适于局域网运行环境,因此逐渐得到了广泛的应用。
步骤7):通过消息队列(Rocketmq)发送消息6;
RocketMQ作为一款分布式的消息中间件,它可以保证严格的消息顺序,提供亿级消息的堆积能力,是堆积了亿级的消息后,依然保持写入低延迟。由于本发明采用了RocketMQ,所以,本发明方法解析能力强,支持并可以发大量消息,通过消息队列(MQ)有海量的数据抗堆积能力。
步骤8):将增量消息发送到消息队列(Rocketmq)的消息服务端4;
步骤9):业务***可以通过Rocketmq订阅消息服务端的的消息5;
步骤10):业务***按需消费消息7。
采用本发明一种基于binlog的MySQL增量消息解析方法,不仅便与修改和维护代码,而且成本低廉,还可以与主业务***解耦,方便整个***的后续维护。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (7)
1.一种基于binlog的MySQL增量消息解析方法,其特征在于:
步骤1):将业务功能写入到业务数据中;
步骤2):将写好的业务数据发送到对应的MySQL数据库中;
步骤3):在MySQL数据库中设置需要监听的数据库表;
步骤4):将有变更的数据写入数据库中;
步骤5):对业务数据进行解析;
步骤6):获取增量数据;
步骤7):发送增量消息;
步骤8):将增量消息发送到消息服务端;
步骤9);业务***订阅消息服务端的消息;
步骤10):业务***按需消费消息。
2.根据权利要求1所述的一种基于binlog的MySQL增量消息解析方法,其特征在于:所述的MySQL数据库中设置需要监听的数据库表是通过MySQL数据库中数据同步工具中设置需要监听的数据库表。
3.根据权利要求1或2所述的一种基于binlog的MySQL增量消息解析方法,其特征在于:所述的数据有变更会写入数据库中是数据有变更会写入数据库本身的binlog。
4.根据权利要求3所述的一种基于binlog的MySQL增量消息解析方法,其特征在于:所述的对数据进行解析是同步工具服务器端会实时解析binlog。
5.根据权利要求1或2或4所述的一种基于binlog的MySQL增量消息解析方法,其特征在于:所述的获取增量数据是通过同步工具客户端的方式连接同步工具服务器获取解析好的增量数据。
6.根据权利要求1所述的一种基于binlog的MySQL增量消息解析方法,其特征在于:所述发送增量消息是通过消息队列发送消息。
7.根据权利要求1所述的一种基于binlog的MySQL增量消息解析方法,其特征在于:所述的将增量消息发送到消息服务端是发送到消息队列的消息服务端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810023456.8A CN108255621A (zh) | 2018-01-10 | 2018-01-10 | 一种基于binlog的MySQL增量消息解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810023456.8A CN108255621A (zh) | 2018-01-10 | 2018-01-10 | 一种基于binlog的MySQL增量消息解析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108255621A true CN108255621A (zh) | 2018-07-06 |
Family
ID=62726127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810023456.8A Pending CN108255621A (zh) | 2018-01-10 | 2018-01-10 | 一种基于binlog的MySQL增量消息解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108255621A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110866022A (zh) * | 2019-10-24 | 2020-03-06 | 贝壳技术有限公司 | 基于日志文件的数据解析方法、***及装置 |
CN112214543A (zh) * | 2019-07-11 | 2021-01-12 | 深圳市优必选科技股份有限公司 | 一种数据同步方法、装置及终端设备 |
CN112231324A (zh) * | 2019-06-26 | 2021-01-15 | 中兴通讯股份有限公司 | 一种实现增量数据比对的***及方法 |
CN112883367A (zh) * | 2021-01-26 | 2021-06-01 | 北京高因科技有限公司 | 触发器数据安全传输方法及装置 |
CN113055484A (zh) * | 2021-03-19 | 2021-06-29 | 北京星汉博纳医药科技有限公司 | 一套通用的医药数据智能同步*** |
CN113495879A (zh) * | 2020-03-18 | 2021-10-12 | 上海擎感智能科技有限公司 | 增量数据解析方法、***、介质及装置 |
CN114328750A (zh) * | 2021-12-31 | 2022-04-12 | 北京发现角科技有限公司 | 一种将业务数据同步ods层的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183377A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种基于消息中间件的高可用性数据库集群 |
US20130318044A1 (en) * | 2010-07-27 | 2013-11-28 | Oracle International Corporation | Mysql database heterogeneous log based replication |
CN104516989A (zh) * | 2015-01-26 | 2015-04-15 | 北京京东尚科信息技术有限公司 | 增量数据推送***和方法 |
CN106250543A (zh) * | 2016-08-10 | 2016-12-21 | 深圳市彬讯科技有限公司 | 一种自动化数据查询同步存储方法 |
CN107885824A (zh) * | 2017-11-07 | 2018-04-06 | 北京锐安科技有限公司 | 一种数据读写方法及*** |
-
2018
- 2018-01-10 CN CN201810023456.8A patent/CN108255621A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183377A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种基于消息中间件的高可用性数据库集群 |
US20130318044A1 (en) * | 2010-07-27 | 2013-11-28 | Oracle International Corporation | Mysql database heterogeneous log based replication |
CN104516989A (zh) * | 2015-01-26 | 2015-04-15 | 北京京东尚科信息技术有限公司 | 增量数据推送***和方法 |
CN106250543A (zh) * | 2016-08-10 | 2016-12-21 | 深圳市彬讯科技有限公司 | 一种自动化数据查询同步存储方法 |
CN107885824A (zh) * | 2017-11-07 | 2018-04-06 | 北京锐安科技有限公司 | 一种数据读写方法及*** |
Non-Patent Citations (1)
Title |
---|
DUANXZ: "canal入门", 《HTTPS://WWW.CNBLOGS.COM/DUANXZ/P/5008806.HTML》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231324A (zh) * | 2019-06-26 | 2021-01-15 | 中兴通讯股份有限公司 | 一种实现增量数据比对的***及方法 |
CN112214543A (zh) * | 2019-07-11 | 2021-01-12 | 深圳市优必选科技股份有限公司 | 一种数据同步方法、装置及终端设备 |
CN110866022A (zh) * | 2019-10-24 | 2020-03-06 | 贝壳技术有限公司 | 基于日志文件的数据解析方法、***及装置 |
CN113495879A (zh) * | 2020-03-18 | 2021-10-12 | 上海擎感智能科技有限公司 | 增量数据解析方法、***、介质及装置 |
CN112883367A (zh) * | 2021-01-26 | 2021-06-01 | 北京高因科技有限公司 | 触发器数据安全传输方法及装置 |
CN113055484A (zh) * | 2021-03-19 | 2021-06-29 | 北京星汉博纳医药科技有限公司 | 一套通用的医药数据智能同步*** |
CN114328750A (zh) * | 2021-12-31 | 2022-04-12 | 北京发现角科技有限公司 | 一种将业务数据同步ods层的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255621A (zh) | 一种基于binlog的MySQL增量消息解析方法 | |
US7647595B2 (en) | Efficient event notification in clustered computing environments | |
CN108073625B (zh) | 用于元数据信息管理的***及方法 | |
CN108769099A (zh) | 一种消息中间件的消息去重的实现方法 | |
US9246859B2 (en) | Peer-to-peer collaboration of publishers in a publish-subscription environment | |
CN101277272A (zh) | 一种海量广播数据入库的实现方法 | |
CN112527899A (zh) | 数据同步的方法、装置、设备以及存储介质 | |
CN110704484A (zh) | 一种对海量实时数据流进行处理的方法及*** | |
CN113238843B (zh) | 一种任务执行方法、装置、设备及存储介质 | |
CN115033646B (zh) | 一种基于Flink&Doris构建实时数仓***的方法 | |
CN109151056B (zh) | 基于Canal的消息推送方法和*** | |
CN115098567B (zh) | 一种基于bi平台的低代码平台数据传输方法 | |
CN114968953A (zh) | 日志的存储检索方法、***、终端设备及介质 | |
CN112003831A (zh) | 一种分布式环境下的日志收集***及日志收集方法 | |
CN111897604A (zh) | 服务调用的调用数据处理方法及装置 | |
CN114676199A (zh) | 一种同步方法、同步***、计算机设备和存储介质 | |
CN112182086A (zh) | 一种气象数据仓库后端接口数据传输交互***及方法 | |
CN112069137A (zh) | 生成信息的方法、装置、电子设备及计算机可读存储介质 | |
CN116383207A (zh) | 一种数据标签管理方法、装置、电子设备和存储介质 | |
CN116340114A (zh) | 一种流式处理日志告警方法 | |
CN115525666A (zh) | 一种实时数据更新方法、装置、电子设备及存储介质 | |
CN112148705A (zh) | 数据迁移的方法和装置 | |
CN110955722B (zh) | 数据同步方法及装置 | |
CN111770182B (zh) | 数据推送方法和装置 | |
CN114064803A (zh) | 一种数据同步方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180706 |
|
RJ01 | Rejection of invention patent application after publication |