[发明专利]分布式事务的处理方法、装置及消息生产方、消费方系统有效
申请号: | 202010146490.1 | 申请日: | 2020-03-05 |
公开(公告)号: | CN111367628B | 公开(公告)日: | 2023-05-23 |
发明(设计)人: | 钱峰 | 申请(专利权)人: | 中国银行股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/54;G06F11/14;G06F11/07 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 薛平;许曼 |
地址: | 100818 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 事务 处理 方法 装置 消息 生产 消费 系统 | ||
本发明提供一种分布式事务的处理方法、装置及消息生产方、消费方系统,其中,该方法包括:消息生产方系统在接收到分布式事务处理触发指令时,处理消息生产方系统内的事务;在处理分布式事务的同时,将处理分布式事务所涉及的各数据写入本地事件表;事务处理成功后,发送第一处理结果消息至消息消费方系统;消息消费方系统根据第一处理结果消息,处理消息消费方系统内的事务,将第二处理结果反馈信息发送至消息生产方系统;消息生产方系统根据反馈信息,更新本地事件表;其中,在整个分布式事务处理过程出现异常时,执行重试处理的步骤;在重试处理的步骤执行失败时,执行批量补偿处理的步骤。上述技术方案实现了最终严格一致性的分布式事务处理。
技术领域
本发明涉及数据处理技术领域,特别涉及一种分布式事务的处理方法、装置及消息生产方、消费方系统。
背景技术
随着微服务架构的大行其道,各系统间的调用是越来越多。微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践,但同时系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现,服务调用的分布式事务问题变的非常突出,现在还没有一个通用方案很好的解决微服务产生的事务问题,分布式事务已经成为微服务落地最大的阻碍,也是最具挑战性的一个技术难题,分布式事务处理数据的一致性模型可以分成以下三类:
1.强一致性:数据更新成功后,任意时刻所有副本中的数据都是一致的,一般采用同步的方式实现。
2.弱一致性:数据更新成功后,系统不承诺立即可以读到最新写入的值,也不承诺具体多久之后可以读到。
3.最终一致性:弱一致性的一种形式,数据更新成功后,系统不承诺立即可以返回最新写入的值,但是保证最终会返回上一次更新操作的值。
目前业界主流的分布式事务主要聚焦于强一致性和最终一致性的实现上。
分布式事务处理典型方案主要包括:
1.两阶段提交;
2.TCC补偿模式;
3.基于事件表的异步确保;
4.最大努力通知。
其中,两阶段提交和TCC补偿模式用于实现强一致性,基于事件表的异步确保和最大努力通知用于实现最终一致性。然而,基于事件表的异步确保和最大努力通知的分布式处理方案存在:业务方(消息产生方)处理负担重、由于消息出现丢失等情况导致事务无法最终一致的问题。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种分布式事务的处理方法,用以实现最终严格一致性的分布式事务处理,该方法包括:
消息生产方系统在接收到分布式事务处理触发指令时,处理消息生产方系统内的事务;在处理分布式事务的同时,将处理分布式事务所涉及的各数据写入本地事件表;在消息生产方系统内的事务处理成功后,发送第一处理结果消息至消息消费方系统;
消息消费方系统执行如下事务处理及反馈的步骤:根据第一处理结果消息,处理消息消费方系统内的事务,将第二处理结果反馈信息发送至消息生产方系统;
消息生产方系统根据所述第二处理结果反馈信息,更新所述本地事件表;
其中,在整个分布式事务处理过程出现异常时,执行如下重试处理的步骤:
消息生产方系统定时轮询所述本地事件表,通过预先配置的最大重试次数和重试间隔,将本地事件表中处理失败或预设时间段内未处理成功的数据重新发送;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国银行股份有限公司,未经中国银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010146490.1/2.html,转载请声明来源钻瓜专利网。