CN110209740A - 一种基于RocketMq消息中间件并行同步数据的方法 - Google Patents

一种基于RocketMq消息中间件并行同步数据的方法 Download PDF

Info

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
Application number
CN201910485111.9A
Other languages
English (en)
Inventor
刘亚坤
张亚飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Co Ltd
Original Assignee
Inspur Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Software Co Ltd filed Critical Inspur Software Co Ltd
Priority to CN201910485111.9A priority Critical patent/CN110209740A/zh
Publication of CN110209740A publication Critical patent/CN110209740A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, 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消息中间件并行同步数据的方法。
本发明是通过如下技术方案实现的:
一种基于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中数据,然后批量插入。
CN201910485111.9A 2019-06-05 2019-06-05 一种基于RocketMq消息中间件并行同步数据的方法 Pending CN110209740A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 北京京东尚科信息技术有限公司 一种业务处理方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
徐进等: "基于消息通信的分布式系统最终一致性平台", 《计算机应用》 *

Cited By (5)

* Cited by examiner, † Cited by third party
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