[发明专利]消息处理方法以及消息处理装置在审
申请号: | 201610903595.0 | 申请日: | 2016-10-18 |
公开(公告)号: | CN107957910A | 公开(公告)日: | 2018-04-24 |
发明(设计)人: | 方琪 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 中原信达知识产权代理有限责任公司11219 | 代理人: | 张一军,姜劲 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 处理 方法 以及 装置 | ||
技术领域
本发明涉及计算机及其软件技术领域,特别地涉及一种消息处理方法以及消息处理装置。
背景技术
在互联网和软件领域,数据库是非常重要的。现实场景中,经常需要进行数据迁移工作。通过消息队列技术来实现数据迁移,已经是业内较为常用的办法。
消息队列技术是一种异步的消息订阅/生产/消费的通讯方法。现有的消息队列技术比较多,如rocketMQ,kafka,zeroMQ等。
通过消息队列来进行数据迁移的具体过程是:服务端通过消息队列,把源库的插入(insert)操作、更新(update)操作或删除(delete)操作封装成特定格式的消息生产出来,客户端程序获取这些消息,然后消费消息,即把消息还原成对应的sql语句执行,以达到数据迁移的目的。
现有技术的缺点在于:由于消息队列的生产消息和客户端消费消息都是并行、多线程进行的,因此很多消息队列无法保证消息的严格时序性。比如说,同一条记录的update消息和insert消息,可能update消息比insert消息先到达客户端,这样给目标库和源库的一致性造成了极大的困扰。
发明内容
有鉴于此,本发明提供一种稳定可靠、时序性好的消息处理方法以及消息处理装置。
为实现上述目的,根据本发明的一个方面,提供了一种消息处理方法,包括:判断接收到的当前消息所属的类型,该类型包括更新类型、插入类型和删除类型;若判断所述当前消息属于更新类型,则在所述当前消息中加入时间限制条件以得到修饰后的当前消息,所述时间限制条件为数据库最近操作时间戳小于当前消息时间戳;执行所述修饰后的当前消息;若执行所述修饰后的当前消息失败,则生成与所述当前消息对应的插入类型的衍生消息;执行所述插入类型的衍生消息;若执行所述插入类型的衍生消息失败,则重新执行所述修饰后的当前消息。
可选地,所述生成与所述当前消息对应的插入类型的衍生消息的步骤包括:将所述当前消息中的java对象的操作属性重新赋值为插入属性,以得到所述插入类型的衍生消息。
可选地,在所述判断接收到的当前消息所属的类型的步骤之后,还包括:若判断所述当前消息属于插入类型,则执行所述当前消息。
可选地,在所述判断接收到的当前消息所属的类型的步骤之后,还包括:若判断所述当前消息属于删除类型,则执行所述当前消息。
根据本发明的另一方面,提供了一种消息处理装置,包括:判断模块,用于判断接收到的当前消息所属的类型,该类型包括更新类型、插入类型和删除类型;第一处理模块,用于在所述判断模块判断所述当前消息属于更新类型的情况下,在所述当前消息中加入时间限制条件以得到修饰后的当前消息,所述时间限制条件为数据库最近操作时间戳小于当前消息时间戳;第一执行模块,用于执行所述修饰后的当前消息;第二处理模块,用于在所述第一执行模块执行失败的情况下,生成与所述当前消息对应的插入类型的衍生消息;第二执行模块,用于执行所述插入类型的衍生消息;第三执行模块,用于在所述第二执行模块执行失败的情况下,重新执行所述修饰后的当前消息。
可选地,所述第二处理模块还用于,将所述当前消息中的java对象的操作属性重新赋值为插入属性,以得到所述插入类型的衍生消息。
可选地,还包括:第四执行模块,用于在所述判断模块判断所述当前消息属于插入类型的情况下,执行所述当前消息。
可选地,还包括:第五执行模块,用于在所述判断模块判断所述当前消息属于删除类型的情况下,执行所述当前消息。
根据本发明的技术方案,针对接收到的更新消息加上了“数据库最近操作时间戳小于当前消息时间戳”的限制条件,因此能够保证各条更新消息之间的执行顺序正确。同时,在更新消息首次执行失败后重新包装为插入消息,这样可以保证同一条记录的插入消息和更新消息的执行顺序正确。因此本发明的技术方案具有稳定可靠、时序性好等优点。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施方式的消息处理方法的主要步骤的示意图;
图2是根据本发明实施方式的消息处理装置的主要模块的示意图;
图3是根据本发明实施方式的消息处理方法的工作原理示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610903595.0/2.html,转载请声明来源钻瓜专利网。