[发明专利]分布式系统事务管理方法及装置在审
申请号: | 201710521704.7 | 申请日: | 2017-06-30 |
公开(公告)号: | CN107332906A | 公开(公告)日: | 2017-11-07 |
发明(设计)人: | 郭涛 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 系统 事务管理 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,特别是涉及一种分布式系统事务管理方法及装置。
背景技术
分布式系统是建立在网络之上的装置,它可以将一个庞大复杂的装置分解为若干个小的服务节点,各节点之间通过远程调用的方式实现互相通信。共享物理和逻辑资源,并且协同处理事务。分布式系统由于具有高可用、高开发的特点越来越受到开发者的青睐。
对于传统的单节点网络装置,由于是单节点部署,因此可以使用本地事务进行事务管理,来保证数据的一致性。然而对于分布式系统,每一服务模块作为一个独立装置拥有自己的事务管理机制,当发生模块和模块之间的调用时,就必须解决因为其调用方执行发生异常被调用方回滚自己数据,或者被调用方发生异常调用方需回滚数据的问题,否则会导致数据的不一致。举例来说,服务A中的业务是在数据库中插入一条数据,然后调用服务B的业务方法,服务B的业务也是在数据库中插入一条数据。假设服务B的方法在执行过程中发生异常,那么服务A中之前插入的数据需要从数据库中删除,避免脏数据的出现。而整个过程中服务A和服务B是相互隔离的,如何通知服务A自动完成数据的回滚操作是需要考虑的问题。
现有分布式系统主流采用的事务管理方案,处理效率低,如果应用于目前的分布式架构,数据会锁定跨整个事务,直至事务结束,这会导致装置性能非常低,影响用户体验。
发明内容
本发明的目的是提供一种分布式系统事务管理方法及装置,能够实现分布式系统中各服务节点间数据的一致性,并可克服现有方法存在的缺陷。
为实现上述目的,本发明提供如下技术方案:
一种分布式系统事务管理方法,包括:
在接收到主动方节点发送的消息时,对消息进行存储并将消息状态标记为待确认,并向所述主动方节点发送所述消息的存储结果;
在接收到所述主动方节点发送的已开始执行业务操作的指示消息时,将消息状态更新为待发送,所述主动方节点在接收到所述存储结果并且所述存储结果为存储成功时开始执行业务操作;
在所述主动方节点执行完业务操作后,当接收到所述主动方节点返回的业务操作结果时,若所述业务操作结果为业务处理成功,则将所述消息发送给被动方节点,并将消息状态更新为已发送;
在所述被动方节点接收到所述消息,执行完业务操作后,当所述被动方节点返回的业务操作结果为业务处理失败时,则将该业务操作结果发送给所述主动方节点,以指示所述主动方节点进行回滚操作。
可选地,还包括:
对所述主动方节点与所述被动方节点之间进行调用的调用信息保存,并将所述调用信息展示给用户;
将存储的所述消息、接收到的所述指示消息、接收到的主动方节点的业务操作结果以及被动方节点的业务操作结果展示给用户,并可由用户根据展示信息进行人为管理各类消息以及干预调用事务。
可选地,还包括:查询消息状态为待发送的消息的存储时长,若存储时长超过第一阈值,则将存储的所述消息删除。
可选地,还包括:查询消息状态为已发送的消息的存储时长,若存储时长已超过第二阈值,但未收到所述被动方节点返回的业务操作结果,则将所述消息重新发送给所述被动方节点。
可选地,当监测到出现未预知的问题阻断事务进行时,以预设方式恢复事务。
一种分布式系统事务管理装置,包括:
消息存储模块,用于在接收到主动方节点发送的消息时,对消息进行存储;
消息状态标记模块,用于在接收到主动方节点发送的所述消息时,将消息状态标记为待确认,并在接收到所述主动方节点发送的已开始执行业务操作的指示消息时,将消息状态更新为待发送,所述主动方节点在接收到存储结果并且所述存储结果为存储成功时开始执行业务操作;还用于在所述主动方节点执行完业务操作后,当接收到所述主动方节点返回的业务操作结果时,若所述业务操作结果为业务处理成功,则将所述消息发送给被动方节点,并将消息状态更新为已发送;
消息处理模块,用于在对所述消息存储后,向所述主动方节点发送所述消息的存储结果,并在所述主动方节点执行完业务操作后,当接收到所述主动方节点返回的业务操作结果时,若所述业务操作结果为业务处理成功,则将所述消息发送给被动方节点;还用于在所述被动方节点接收到所述消息,执行完业务操作后,当所述被动方节点返回的业务操作结果为业务处理失败时,则将该业务操作结果发送给所述主动方节点,以指示所述主动方节点进行回滚操作。
可选地,还包括:
数据库,用于对所述主动方节点与所述被动方节点之间进行调用的调用信息保存;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710521704.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:信息推送方法、装置及服务器
- 下一篇:一种三维阵列式多沉陷门模型试验系统