[发明专利]一种基于RocketMq消息中间件并行同步数据的方法在审
申请号: | 201910485111.9 | 申请日: | 2019-06-05 |
公开(公告)号: | CN110209740A | 公开(公告)日: | 2019-09-06 |
发明(设计)人: | 刘亚坤;张亚飞 | 申请(专利权)人: | 浪潮软件股份有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜明 |
地址: | 250100 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息中间件 同步数据 数据传输 并行 多个数据库 消息主题 数据库 标签 消息处理机制 单一数据库 数据提供端 捕获数据 程序执行 传输过程 传输异常 记录数据 数据使用 消息机制 业务数据 异常处理 异常信息 日志 补救 删除 传输 共享 保证 | ||
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中数据,然后批量插入。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮软件股份有限公司,未经浪潮软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910485111.9/1.html,转载请声明来源钻瓜专利网。