CN110209740A - 一种基于RocketMq消息中间件并行同步数据的方法 - Google Patents
一种基于RocketMq消息中间件并行同步数据的方法 Download PDFInfo
- Publication number
- CN110209740A CN110209740A CN201910485111.9A CN201910485111A CN110209740A CN 110209740 A CN110209740 A CN 110209740A CN 201910485111 A CN201910485111 A CN 201910485111A CN 110209740 A CN110209740 A CN 110209740A
- Authority
- CN
- China
- Prior art keywords
- data
- message
- class
- tags
- rocketmq
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 19
- 230000005540 biological transmission Effects 0.000 claims abstract description 48
- 230000007246 mechanism Effects 0.000 claims abstract description 6
- 241001269238 Data Species 0.000 claims abstract description 5
- 230000005856 abnormality Effects 0.000 claims abstract description 5
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 238000003780 insertion Methods 0.000 claims description 5
- 230000037431 insertion Effects 0.000 claims description 5
- 238000012217 deletion Methods 0.000 abstract 1
- 230000037430 deletion Effects 0.000 abstract 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
Classifications
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明特别涉及一种基于RocketMq消息中间件并行同步数据的方法。该基于RocketMq消息中间件并行同步数据的方法,用于单一数据库同时与多个数据库之间的数据传输,利用Mq消息处理机制,在数据提供端定义生产者类,在数据使用端定义消费者类,根据不同业务定义不同消息主题及标签,并记录数据传输中的程序执行日志,建立异常处理机制。该基于RocketMq消息中间件并行同步数据的方法,通过定义不同的消息主题及标签,利用RocketMq消息机制对不同数据库的业务数据的增加和删除,最终实现多个数据库数据同时向某一数据库进行数据传输和共享,并且能够捕获数据传输过程中的异常信息,对传输异常的数据做出补救,保证了数据传输的及时性、完整性和准确性。
Description
技术领域
本发明涉及订单实时监控技术领域,特别涉及一种基于RocketMq消息中间件并行同步数据的方法。
背景技术
原有行业内的数据传输机制是通过应用程序直接读写数据提供端和数据使用端数据库实现的。在传输过程中对两端数据库的压力较大,数据传输性能存在问题,经常无法及时完成两端数据库的数据交互。并且在执行数据传输的过程中大量占用数据库连接资源,导致应用系统性能变差,最终导致一些系统功能无法正常使用。
另外,对于数据传输过程中出现的异常问题无法方便快速的定位原因。数据传输出现问题时,很难定位问题并快速的进行数据补救。
基于上述情况,本发明设计了一种基于RocketMq消息中间件并行同步数据的方法,旨在实现多个数据库同时向单一数据库的数据传输及单一数据库同时向多个数据库的数据下发,并在数据传输及下发过程中建立异常处理机制,以实现数据传输过程中的数据准确性及完整性。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于RocketMq消息中间件并行同步数据的方法。
本发明是通过如下技术方案实现的:
一种基于RocketMq消息中间件并行同步数据的方法,其特征在于:用于单一数据库同时与多个数据库之间的数据传输,利用Mq消息处理机制,在数据提供端定义生产者类,在数据使用端定义消费者类,根据不同业务定义不同消息主题及标签,并记录数据传输中的程序执行日志,建立异常处理机制,确保数据传输中的数据及时性、数据完整性及数据准确性;
具体包括以下三部分:
(1)数据传输并发性
定义不同的消息主题及标签,通过Rocket Mq消息机制增加或删除不同数据库的业务数据,最终实现多个数据库数据同时向某一数据库进行数据传输;
(2)数据传输过程监控
通过数据传输的日志表记录数据传输中出现的异常数据,对传输异常情况进行监控分析;
(3)数据传输补救
对于数据传输过程中出现错误的情况进行手工补救,以确保数据的完整性。
在所述数据提供端定义Mq生产者类,将Mq生产者类放在数据提供端的应用程序下,Mq生产者类继承父类Rocket Mq的Base Producer,在所述数据使用端定义Mq消费者类,将Mq消费者类放在数据使用端的应用程序下。
所述数据提供端的应用程序每天零点使用定时器调用Mq生产者类,在Mq生产者类中对每张表都使用先删除后插入的方式逐一进行处理,并记录上传日志。
所述数据提供端的应用程序在Mq生产者类中对每张表逐一进行处理,包括以下几种调用方法:
(1)调用父类方法addMsgs,将该表开始上传的消息放入待发送;
(2)调用父类方法addMsgs,将删除该表上传范围内数据sql的消息放入待发送;
(3)调用父类方法addMsgs,将该表上传范围内数据的消息放入待发送;
(4)调用父类方法addMsgs,将该表结束上传的消息放入待发送;
(5)调用父类方法startSendMsgs,将待发送的消息放入Mq队列,在发送时将同一张表的所有消息放到Mq的同一队列中;在startSendMsgs方法中将每个表以及每天的数据上传情况记录到Mq数据传输日志表中。
所述数据使用端的应用程序中Mq消费者类接收消息,一次性接收一个长度为100的msgList,声明临时数据列表dataList,循环msgList。
定义Mq消息参数,包括TOPIC,Mq_KEY,QUERY_ID,开始消息的TAGS,删除消息的TAGS,上传数据消息的TAG和结束消息的TAGS;其中,TOPIC为CMR_PCOM_DATA,Mq_KEY为数据提供端标准编码+‘_’+表名,QUERY_ID为随机数,开始消息的TAGS为TART_+表名,删除消息的TAGS为DELETE_+表名,上传数据消息的TAGS为表名,结束消息的TAGS为END_+表名。
当消息的TAGS以DELETE_开头时,执行删除数据的sql;当消息的TAGS以START_开头时,插入数据接收日志表SCMR_RECEIVE_LOG一条记录;当消息的TAGS以END_开头时,更新数据接收日志表END_TIME和IS_SUCCESS,循环取出dataList中数据然后批量插入,在插入出现异常时更新数据接收日志表IS_EXCEPTION字段为1;批量插入数据后重新初始化dataList;当消息的TAGS为其他情况时,将消息中数据放入dataList。
在循环处理完msgList后,如果dataList长度大于0,循环取出dataList中数据,然后批量插入。
本发明的有益效果是:该基于RocketMq消息中间件并行同步数据的方法,通过定义不同的消息主题及标签,利用RocketMq消息机制对不同数据库的业务数据的增加和删除,最终实现多个数据库数据同时向某一数据库进行数据传输和共享,并且能够捕获数据传输过程中的异常信息,对传输异常的数据做出补救,保证了数据传输的及时性、完整性和准确性。
具体实施方式
附图1为本发明基于RocketMq消息中间件并行同步数据的方法示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
该基于RocketMq消息中间件并行同步数据的方法,用于单一数据库同时与多个数据库之间的数据传输,利用Mq消息处理机制,在数据提供端定义生产者类,在数据使用端定义消费者类,根据不同业务定义不同消息主题及标签,并记录数据传输中的程序执行日志,建立异常处理机制,确保数据传输中的数据及时性、数据完整性及数据准确性;
具体包括以下三部分:
(1)数据传输并发性
定义不同的消息主题及标签,通过Rocket Mq消息机制增加或删除不同数据库的业务数据,最终实现多个数据库数据同时向某一数据库进行数据传输;
(2)数据传输过程监控
通过数据传输的日志表记录数据传输中出现的异常数据,对传输异常情况进行监控分析;
(3)数据传输补救
对于数据传输过程中出现错误的情况进行手工补救,以确保数据的完整性。
在所述数据提供端定义Mq生产者类,将Mq生产者类放在数据提供端的应用程序下,Mq生产者类继承父类Rocket Mq的Base Producer,在所述数据使用端定义Mq消费者类,将Mq消费者类放在数据使用端的应用程序下。
所述数据提供端的应用程序每天零点使用定时器调用Mq生产者类,在Mq生产者类中对每张表都使用先删除后插入的方式逐一进行处理,并记录上传日志。
所述数据提供端的应用程序在Mq生产者类中对每张表逐一进行处理,包括以下几种调用方法:
(1)调用父类方法addMsgs,将该表开始上传的消息放入待发送;
(2)调用父类方法addMsgs,将删除该表上传范围内数据sql的消息放入待发送;
(3)调用父类方法addMsgs,将该表上传范围内数据的消息放入待发送;
(4)调用父类方法addMsgs,将该表结束上传的消息放入待发送;
(5)调用父类方法startSendMsgs,将待发送的消息放入Mq队列,在发送时将同一张表的所有消息放到Mq的同一队列中;在startSendMsgs方法中将每个表以及每天的数据上传情况记录到Mq数据传输日志表中。
所述数据使用端的应用程序中Mq消费者类接收消息,一次性接收一个长度为100的msgList,声明临时数据列表dataList,循环msgList。
定义Mq消息参数,包括TOPIC,Mq_KEY,QUERY_ID,开始消息的TAGS,删除消息的TAGS,上传数据消息的TAG和结束消息的TAGS;其中,TOPIC为CMR_PCOM_DATA,Mq_KEY为数据提供端标准编码+‘_’+表名,QUERY_ID为随机数,开始消息的TAGS为TART_+表名,删除消息的TAGS为DELETE_+表名,上传数据消息的TAGS为表名,结束消息的TAGS为END_+表名。
当消息的TAGS以DELETE_开头时,执行删除数据的sql;当消息的TAGS以START_开头时,插入数据接收日志表SCMR_RECEIVE_LOG一条记录;当消息的TAGS以END_开头时,更新数据接收日志表END_TIME和IS_SUCCESS,循环取出dataList中数据然后批量插入,在插入出现异常时更新数据接收日志表IS_EXCEPTION字段为1;批量插入数据后重新初始化dataList;当消息的TAGS为其他情况时,将消息中数据放入dataList。
在循环处理完msgList后,如果dataList长度大于0,循环取出dataList中数据,然后批量插入。
以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (8)
1.一种基于RocketMq消息中间件并行同步数据的方法,其特征在于:用于单一数据库同时与多个数据库之间的数据传输,利用Mq消息处理机制,在数据提供端定义生产者类,在数据使用端定义消费者类,根据不同业务定义不同消息主题及标签,并记录数据传输中的程序执行日志,建立异常处理机制,确保数据传输中的数据及时性、数据完整性及数据准确性;
具体包括以下三部分:
(1)数据传输并发性
定义不同的消息主题及标签,通过Rocket Mq消息机制增加或删除不同数据库的业务数据,最终实现多个数据库数据同时向某一数据库进行数据传输;
(2)数据传输过程监控
通过数据传输的日志表记录数据传输中出现的异常数据,对传输异常情况进行监控分析;
(3)数据传输补救
对于数据传输过程中出现错误的情况进行手工补救,以确保数据的完整性。
2.根据权利要求1所述的基于RocketMq消息中间件并行同步数据的方法,其特征在于:在所述数据提供端定义Mq生产者类,将Mq生产者类放在数据提供端的应用程序下,Mq生产者类继承父类Rocket Mq的Base Producer,在所述数据使用端定义Mq消费者类,将Mq消费者类放在数据使用端的应用程序下。
3.根据权利要求2所述的基于RocketMq消息中间件并行同步数据的方法,其特征在于:所述数据提供端的应用程序每天零点使用定时器调用Mq生产者类,在Mq生产者类中对每张表都使用先删除后插入的方式逐一进行处理,并记录上传日志。
4.根据权利要求3所述的基于RocketMq消息中间件并行同步数据的方法,其特征在于:所述数据提供端的应用程序在Mq生产者类中对每张表逐一进行处理,包括以下几种调用方法:
(1)调用父类方法addMsgs,将该表开始上传的消息放入待发送;
(2)调用父类方法addMsgs,将删除该表上传范围内数据sql的消息放入待发送;
(3)调用父类方法addMsgs,将该表上传范围内数据的消息放入待发送;
(4)调用父类方法addMsgs,将该表结束上传的消息放入待发送;
(5)调用父类方法startSendMsgs,将待发送的消息放入Mq队列,在发送时将同一张表的所有消息放到Mq的同一队列中;在startSendMsgs方法中将每个表以及每天的数据上传情况记录到Mq数据传输日志表中。
5.根据权利要求2所述的基于RocketMq消息中间件并行同步数据的方法,其特征在于:所述数据使用端的应用程序中Mq消费者类接收消息,一次性接收一个长度为100的msgList,声明临时数据列表dataList,循环msgList。
6.根据权利要求3或5所述的基于RocketMq消息中间件并行同步数据的方法,其特征在于:定义Mq消息参数,包括TOPIC,Mq_KEY,QUERY_ID,开始消息的TAGS,删除消息的TAGS,上传数据消息的TAG和结束消息的TAGS;其中,TOPIC为CMR_PCOM_DATA,Mq_KEY为数据提供端标准编码+‘_’+表名,QUERY_ID为随机数,开始消息的TAGS为TART_+表名,删除消息的TAGS为DELETE_+表名,上传数据消息的TAGS为表名,结束消息的TAGS为END_+表名。
7.根据权利要求6所述的基于RocketMq消息中间件并行同步数据的方法,其特征在于:当消息的TAGS以DELETE_开头时,执行删除数据的sql;当消息的TAGS以START_开头时,插入数据接收日志表SCMR_RECEIVE_LOG一条记录;当消息的TAGS以END_开头时,更新数据接收日志表END_TIME和IS_SUCCESS,循环取出dataList中数据然后批量插入,在插入出现异常时更新数据接收日志表IS_EXCEPTION字段为1;批量插入数据后重新初始化dataList;当消息的TAGS为其他情况时,将消息中数据放入dataList。
8.根据权利要求7所述的基于RocketMq消息中间件并行同步数据的方法,其特征在于:在循环处理完msgList后,如果dataList长度大于0,循环取出dataList中数据,然后批量插入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910485111.9A CN110209740A (zh) | 2019-06-05 | 2019-06-05 | 一种基于RocketMq消息中间件并行同步数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910485111.9A CN110209740A (zh) | 2019-06-05 | 2019-06-05 | 一种基于RocketMq消息中间件并行同步数据的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110209740A true CN110209740A (zh) | 2019-09-06 |
Family
ID=67790920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910485111.9A Pending CN110209740A (zh) | 2019-06-05 | 2019-06-05 | 一种基于RocketMq消息中间件并行同步数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110209740A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488324A (zh) * | 2020-04-14 | 2020-08-04 | 浪潮商用机器有限公司 | 一种基于消息中间件的分布式网络文件系统及其工作方法 |
CN112800139A (zh) * | 2021-02-23 | 2021-05-14 | 浪潮云信息技术股份公司 | 一种基于消息队列的第三方应用数据同步系统 |
CN115333978A (zh) * | 2022-10-11 | 2022-11-11 | 中化现代农业有限公司 | 一种数据监控方法以及装置 |
CN118689943A (zh) * | 2024-08-27 | 2024-09-24 | 山东浪潮数字商业科技有限公司 | 基于消息中间件并行同步数据的方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050192989A1 (en) * | 2004-02-27 | 2005-09-01 | Adiba Nicolas G. | Techniques to preserve data constraints and referential integrity in asynchronous transactional replication of relational tables |
CN106407366A (zh) * | 2016-09-09 | 2017-02-15 | 浪潮软件股份有限公司 | 一种分布式系统数据提取方法 |
CN107995242A (zh) * | 2016-10-27 | 2018-05-04 | 北京京东尚科信息技术有限公司 | 一种业务处理方法及系统 |
-
2019
- 2019-06-05 CN CN201910485111.9A patent/CN110209740A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050192989A1 (en) * | 2004-02-27 | 2005-09-01 | Adiba Nicolas G. | Techniques to preserve data constraints and referential integrity in asynchronous transactional replication of relational tables |
CN106407366A (zh) * | 2016-09-09 | 2017-02-15 | 浪潮软件股份有限公司 | 一种分布式系统数据提取方法 |
CN107995242A (zh) * | 2016-10-27 | 2018-05-04 | 北京京东尚科信息技术有限公司 | 一种业务处理方法及系统 |
Non-Patent Citations (1)
Title |
---|
徐进等: "基于消息通信的分布式系统最终一致性平台", 《计算机应用》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488324A (zh) * | 2020-04-14 | 2020-08-04 | 浪潮商用机器有限公司 | 一种基于消息中间件的分布式网络文件系统及其工作方法 |
CN111488324B (zh) * | 2020-04-14 | 2023-12-29 | 浪潮商用机器有限公司 | 一种基于消息中间件的分布式网络文件系统及其工作方法 |
CN112800139A (zh) * | 2021-02-23 | 2021-05-14 | 浪潮云信息技术股份公司 | 一种基于消息队列的第三方应用数据同步系统 |
CN115333978A (zh) * | 2022-10-11 | 2022-11-11 | 中化现代农业有限公司 | 一种数据监控方法以及装置 |
CN118689943A (zh) * | 2024-08-27 | 2024-09-24 | 山东浪潮数字商业科技有限公司 | 基于消息中间件并行同步数据的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209740A (zh) | 一种基于RocketMq消息中间件并行同步数据的方法 | |
US9432455B2 (en) | Synchronizing events between mobile devices and servers | |
US8023934B2 (en) | Synchronizing communications and data between mobile devices and servers | |
US8219920B2 (en) | Methods and systems for managing to do items or notes or electronic messages | |
CN107094158B (zh) | 一种自动化内网安全脆弱分析系统 | |
US9720920B2 (en) | Employing user-context in connection with backup or restore of data | |
CN101227379B (zh) | 一种实现数据同步的系统和方法 | |
US20070094336A1 (en) | Asynchronous server synchronously storing persistent data batches | |
US20130332547A1 (en) | Synchronizing conversation structures in web-based email systems | |
US11641312B2 (en) | Consolidating manufacturing intelligence event queue items | |
US20060253499A1 (en) | System and method for automatically transferring data from one database to another | |
US20100058355A1 (en) | Firewall data transport broker | |
US20140351345A1 (en) | Generating instant messaging contacts for customer relationship management systems | |
US7756811B2 (en) | Agenda awareness in a communication client | |
CN111460038A (zh) | 一种数据准实时同步方法及装置 | |
US7072912B1 (en) | Identifying a common point in time across multiple logs | |
CN101179436B (zh) | 实现调试日志的关联方法及装置 | |
CN101714105A (zh) | 应用程序的错误回报及错误解决回复系统及其方法 | |
CN107483635A (zh) | 一种业务请求处理方法、处理系统及消息中间件 | |
CN115525449A (zh) | 微服务数据传输系统、方法及存储介质 | |
CN114297216B (zh) | 数据同步方法及其装置、计算机存储介质、电子设备 | |
CN114064778B (zh) | 一种基于redis实时用户数据采集传输及数据监控的方法 | |
CN113347245B (zh) | 一种基于消息队列的文件分片断点传输方法及装置 | |
US20090300652A1 (en) | Queue dispatch using deferred acknowledgement | |
US20080059538A1 (en) | Method and system for synchronizing offline records |
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: 20190906 |
|
RJ01 | Rejection of invention patent application after publication |