[发明专利]基于消息队列实现数据库事务处理的方法及装置有效
| 申请号: | 201510862134.9 | 申请日: | 2015-11-30 |
| 公开(公告)号: | CN105512244B | 公开(公告)日: | 2019-03-01 |
| 发明(设计)人: | 魏亚文;孙政 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
| 主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F9/50 |
| 代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;姜劲 |
| 地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 消息队列 数据库事务 数据库访问请求 消息状态 重试 处理消息 监控机构 顺序执行 回退 服务器 成功 | ||
1.一种基于消息队列实现数据库事务处理的方法,其特征在于,包括:
接收数据库访问请求,所述数据库访问请求包括一个或多个数据库操作;
根据所述数据库访问请求生成有序的消息队列,其中,所述消息队列中的消息对应数据库操作,每个消息包括消息状态和重试次数;
通过监控机构按顺序执行所述消息队列的处理,直到所述消息队列中所有消息被成功处理或者该消息队列中消息状态为“异常”的消息的重试次数超过预定阈值;其中,所述消息队列的处理包括:按顺序查找所述消息队列中消息状态为初始状态的第一个消息;调用相应的数据库服务来处理该消息对应的数据库操作;根据处理的结果更新该消息的消息状态和重试次数,其中,如果该消息对应的数据库操作成功完成,则修改该消息的消息状态,否则把该消息的消息状态设为“异常”并把该消息的重试次数递增1;
当所述消息队列中的消息状态为“异常”的消息的重试次数超过预定阈值,则回退所述消息队列中已执行的消息。
2.根据权利要求1所述的方法,其特征在于,
所述消息队列保存在消息状态表中,所述消息状态表以双向链表形式实现。
3.根据权利要求2所述的方法,其特征在于,
所述消息状态表还保存消息的回退消息。
4.根据权利要求3所述的方法,其特征在于,回退所述消息队列中已执行的消息包括:
从所述消息状态表中倒序读取所述消息队列中已执行消息对应的回退消息并根据所述回退消息执行回退,直至将所述消息队列回退至初始状态。
5.根据权利要求4所述的方法,其特征在于,所述回退消息根据当前消息的数据库操作类型包括以下情况:
若当前消息是做插入操作的,则根据当前消息待执行插入操作对象的标识符生成删除操作指令作为回退消息;
若当前消息是做更新操作的,则根据当前消息需要更新的对象及更新前的初始值生成更新操作指令作为回退消息;
若当前消息是做删除操作的,则根据当前消息待执行删除操作对象的标识符生成插入操作指令作为回退消息。
6.一种基于消息队列实现数据库事务处理的装置,其特征在于,包括:
访问请求接收模块,用于接收数据库访问请求,所述数据库访问请求包括一个或多个数据库操作;
消息队列生成模块,用于根据所述数据库访问请求生成有序的消息队列,其中,所述消息队列中的消息对应数据库操作,每个消息包括消息状态和重试次数;
监控机构,用于按顺序执行所述消息队列的处理,直到所述消息队列中所有消息被成功处理或者该消息队列中消息状态为“异常”的消息的重试次数超过预定阈值;其中,所述消息队列的处理包括:按顺序查找所述消息队列中消息状态为初始状态的第一个消息;调用相应的数据库服务来处理该消息对应的数据库操作;根据处理的结果更新该消息的消息状态和重试次数,其中,如果该消息对应的数据库操作成功完成,则修改该消息的消息状态,否则把该消息的消息状态设为“异常”并把该消息的重试次数递增1;
回退模块,用于当所述消息队列中的消息状态为“异常”的消息的重试次数超过预定阈值时回退所述消息队列中已执行的消息。
7.根据权利要求6所述的装置,其特征在于,
所述消息队列保存在消息状态表中,所述消息状态表以双向链表形式实现。
8.根据权利要求7所述的装置,其特征在于,
所述消息状态表还保存消息的回退消息。
9.根据权利要求8所述的装置,其特征在于,所述回退模块还用于:
从所述消息状态表中倒序读取所述消息队列中已执行消息对应的回退消息并根据所述回退消息执行回退,直至将所述消息队列回退至初始状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510862134.9/1.html,转载请声明来源钻瓜专利网。





